From: mark gross on
The following patch is to help clean up API abusers of pm_qos where
they call update_request before registering a request.

--mgross

--Signed-off-by: markgross <markgross(a)thegnar.org>


From a0813007ddc7b72cb3da7a533fefba9889aab1d8 Mon Sep 17 00:00:00 2001
From: mgross <mgross(a)mgross-desktop.(none)>
Date: Fri, 28 May 2010 21:36:06 -0700
Subject: [PATCH] complain when users abuse the pm_qos API by updating a request that
isn't registered yet.

---
kernel/pm_qos_params.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/kernel/pm_qos_params.c b/kernel/pm_qos_params.c
index f42d3f7..8e55bf1 100644
--- a/kernel/pm_qos_params.c
+++ b/kernel/pm_qos_params.c
@@ -266,6 +266,10 @@ void pm_qos_update_request(struct pm_qos_request_list *pm_qos_req,
spin_unlock_irqrestore(&pm_qos_lock, flags);
if (pending_update)
update_target(pm_qos_req->pm_qos_class);
+ } else {
+ WARN(true, "pm_qos: updating an unregistered request "
+ "does nothing");
+ dump_stack();
}
}
EXPORT_SYMBOL_GPL(pm_qos_update_request);
--
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Nigel Cunningham on
Hi.

On 30/05/10 06:08, Rafael J. Wysocki wrote:
> On Saturday 29 May 2010, mark gross wrote:
>> The following patch is to help clean up API abusers of pm_qos where
>> they call update_request before registering a request.
>>
>> --mgross
>>
>> --Signed-off-by: markgross<markgross(a)thegnar.org>
>
> Will there be a big issue if I push this during the next merge window?

What's the point to the patch? That is: why is calling update_request
before registering a request such a big problem that it demands a WARN()
and dump stack?

Regards,

Nigel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Rafael J. Wysocki on
On Sunday 30 May 2010, Nigel Cunningham wrote:
> Hi.
>
> On 30/05/10 06:08, Rafael J. Wysocki wrote:
> > On Saturday 29 May 2010, mark gross wrote:
> >> The following patch is to help clean up API abusers of pm_qos where
> >> they call update_request before registering a request.
> >>
> >> --mgross
> >>
> >> --Signed-off-by: markgross<markgross(a)thegnar.org>
> >
> > Will there be a big issue if I push this during the next merge window?
>
> What's the point to the patch? That is: why is calling update_request
> before registering a request such a big problem that it demands a WARN()
> and dump stack?

It is an API violation if I understand that correctly.

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: mark gross on
On Sun, May 30, 2010 at 09:03:18AM +1000, Nigel Cunningham wrote:
> Hi.
>
> On 30/05/10 06:08, Rafael J. Wysocki wrote:
> >On Saturday 29 May 2010, mark gross wrote:
> >>The following patch is to help clean up API abusers of pm_qos where
> >>they call update_request before registering a request.
> >>
> >>--mgross
> >>
> >>--Signed-off-by: markgross<markgross(a)thegnar.org>
> >
> >Will there be a big issue if I push this during the next merge window?
>
> What's the point to the patch? That is: why is calling
> update_request before registering a request such a big problem that
> it demands a WARN() and dump stack?

If e1000e realy needs the latency set and makes assumptions that its
done its part, I would like to let them know that they have not
registerd the request they thought they did.

--mgross

>
> Regards,
>
> Nigel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: mark gross on
On Sun, May 30, 2010 at 09:50:01PM +0200, Rafael J. Wysocki wrote:
> On Sunday 30 May 2010, Nigel Cunningham wrote:
> > Hi.
> >
> > On 30/05/10 06:08, Rafael J. Wysocki wrote:
> > > On Saturday 29 May 2010, mark gross wrote:
> > >> The following patch is to help clean up API abusers of pm_qos where
> > >> they call update_request before registering a request.
> > >>
> > >> --mgross
> > >>
> > >> --Signed-off-by: markgross<markgross(a)thegnar.org>
> > >
> > > Will there be a big issue if I push this during the next merge window?
> >
> > What's the point to the patch? That is: why is calling update_request
> > before registering a request such a big problem that it demands a WARN()
> > and dump stack?
>
> It is an API violation if I understand that correctly.

Yeah, it is, but now that I'm thinking clearly perhaps a better fix
would be to change the prototype of pm_qos_update_request to return
something so callers can check for success.

Lets fix the API rather than use this patch. Please dopt apply it.

--mgross

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/