* [PATCH 2.6.26-rc3 : schedule] remove unlikely macros in workqueue.c/queue_delayed_work_on
@ 2008-05-29 7:02 youquan_song
2008-05-29 20:29 ` Andrew Morton
0 siblings, 1 reply; 3+ messages in thread
From: youquan_song @ 2008-05-29 7:02 UTC (permalink / raw)
To: linux-kernel; +Cc: venkatesh.pallipadi
cpufreq_ondemand governor call queue_delayed_work_on with entry parameter
"cpu" every sample rate(every logical cpu during 20ms).check the value of
"cpu","cpu>=0" condition meeting rate is over than 90%.
This patch remove the unlikely macros to benefit kernel schedule and
reader comprehension.
Signed-off-by: Youquan Song <youquan.song@intel.com>
---
workqueue.c | 2++++++
1 file changed, 1 insertions(+), 1 deletions(-)
--- linux-2.6/kernel/workqueue.c 2008-05-13 10:10:11.000000000 -0400
+++ linux-2.6-new/kernel/workqueue.c 2008-05-29 09:46:16.000000000 -0400
@@ -230,7 +230,7 @@
timer->data = (unsigned long)dwork;
timer->function = delayed_work_timer_fn;
- if (unlikely(cpu >= 0))
+ if (cpu >= 0)
add_timer_on(timer, cpu);
else
add_timer(timer);
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2.6.26-rc3 : schedule] remove unlikely macros in workqueue.c/queue_delayed_work_on
2008-05-29 7:02 [PATCH 2.6.26-rc3 : schedule] remove unlikely macros in workqueue.c/queue_delayed_work_on youquan_song
@ 2008-05-29 20:29 ` Andrew Morton
2008-05-29 22:50 ` Arjan van de Ven
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2008-05-29 20:29 UTC (permalink / raw)
To: youquan_song; +Cc: linux-kernel, venkatesh.pallipadi
On Thu, 29 May 2008 00:02:50 -0700 (PDT)
youquan_song@linux.intel.com wrote:
> cpufreq_ondemand governor call queue_delayed_work_on with entry parameter
> "cpu" every sample rate(every logical cpu during 20ms).check the value of
> "cpu","cpu>=0" condition meeting rate is over than 90%.
>
> This patch remove the unlikely macros to benefit kernel schedule and
> reader comprehension.
>
> Signed-off-by: Youquan Song <youquan.song@intel.com>
> ---
> workqueue.c | 2++++++
> 1 file changed, 1 insertions(+), 1 deletions(-)
>
> --- linux-2.6/kernel/workqueue.c 2008-05-13 10:10:11.000000000 -0400
> +++ linux-2.6-new/kernel/workqueue.c 2008-05-29 09:46:16.000000000 -0400
> @@ -230,7 +230,7 @@
> timer->data = (unsigned long)dwork;
> timer->function = delayed_work_timer_fn;
>
> - if (unlikely(cpu >= 0))
> + if (cpu >= 0)
> add_timer_on(timer, cpu);
> else
> add_timer(timer);
>
This is very much dependent on what workload the machine is running.
There are 189 queue_delayed_work() callsites and they all want the
unlikely() to be there.
There are six queue_delayed_work_on() callsites and they don't want the
unlikely().
Don't know what to do here. Fortunately it doesn't matter much ;)
-mm has profile-likely-unlikely-macros.patch which can be used to
instrument these things (that feature seems to get broken regularly
though).
But the instrumentation should be performed across a broad range of
workloads.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2.6.26-rc3 : schedule] remove unlikely macros in workqueue.c/queue_delayed_work_on
2008-05-29 20:29 ` Andrew Morton
@ 2008-05-29 22:50 ` Arjan van de Ven
0 siblings, 0 replies; 3+ messages in thread
From: Arjan van de Ven @ 2008-05-29 22:50 UTC (permalink / raw)
To: Andrew Morton; +Cc: youquan_song, linux-kernel, venkatesh.pallipadi
On Thu, 29 May 2008 13:29:15 -0700
Andrew Morton <akpm@linux-foundation.org> wrote:
> On Thu, 29 May 2008 00:02:50 -0700 (PDT)
> youquan_song@linux.intel.com wrote:
>
> > cpufreq_ondemand governor call queue_delayed_work_on with entry
> > parameter "cpu" every sample rate(every logical cpu during
> > 20ms).check the value of "cpu","cpu>=0" condition meeting rate is
> > over than 90%.
> >
> > This patch remove the unlikely macros to benefit kernel schedule and
> > reader comprehension.
> >
> > Signed-off-by: Youquan Song <youquan.song@intel.com>
> > ---
> > workqueue.c | 2++++++
> > 1 file changed, 1 insertions(+), 1 deletions(-)
> >
> > --- linux-2.6/kernel/workqueue.c 2008-05-13
> > 10:10:11.000000000 -0400 +++
> > linux-2.6-new/kernel/workqueue.c 2008-05-29
> > 09:46:16.000000000 -0400 @@ -230,7 +230,7 @@ timer->data =
> > (unsigned long)dwork; timer->function = delayed_work_timer_fn;
> >
> > - if (unlikely(cpu >= 0))
> > + if (cpu >= 0)
> > add_timer_on(timer, cpu);
> > else
> > add_timer(timer);
> >
>
> This is very much dependent on what workload the machine is running.
>
> There are 189 queue_delayed_work() callsites and they all want the
> unlikely() to be there.
>
> There are six queue_delayed_work_on() callsites and they don't want
> the unlikely().
>
> Don't know what to do here. Fortunately it doesn't matter much ;)
>
> -mm has profile-likely-unlikely-macros.patch which can be used to
> instrument these things (that feature seems to get broken regularly
> though).
>
> But the instrumentation should be performed across a broad range of
> workloads.
and on x86 it barely makes any difference at all, at best you can
handwave a little about icache footprint.
/me ponders checking if we get a code size reduction by defining these
animals to be empty passthrough
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-05-29 22:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-29 7:02 [PATCH 2.6.26-rc3 : schedule] remove unlikely macros in workqueue.c/queue_delayed_work_on youquan_song
2008-05-29 20:29 ` Andrew Morton
2008-05-29 22:50 ` Arjan van de Ven
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.