From: Con Kolivas <kernel@kolivas.org>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Ingo Molnar <mingo@elte.hu>,
ck@vds.kolivas.org, Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] sched: activate SCHED BATCH expired
Date: Sat, 18 Mar 2006 00:36:10 +1100 [thread overview]
Message-ID: <200603180036.11326.kernel@kolivas.org> (raw)
In-Reply-To: <441AB8FA.10609@yahoo.com.au>
On Saturday 18 March 2006 00:26, Nick Piggin wrote:
> Con Kolivas wrote:
> > -static inline void __activate_task(task_t *p, runqueue_t *rq)
> > +static void __activate_task(task_t *p, runqueue_t *rq)
> > {
> > - enqueue_task(p, rq->active);
> > + if (batch_task(p))
> > + enqueue_task(p, rq->expired);
> > + else
> > + enqueue_task(p, rq->active);
> > inc_nr_running(p, rq);
> > }
>
> I prefer:
>
> prio_array_t *target = rq->active;
> if (batch_task(p))
> target = rq->expired;
> enqueue_task(p, target);
>
> Because gcc can use things like predicated instructions for it.
> But perhaps it is smart enough these days to recognise this?
> At least in the past I have seen it start using cmov after doing
> such a conversion.
>
> At any rate, I think it looks nicer as well. IMO, of course.
Well on my one boring architecture here is a before and after, gcc 4.1.0 with
optimise for size kernel config:
0xb01127da <__activate_task+0>: push %ebp
0xb01127db <__activate_task+1>: mov %esp,%ebp
0xb01127dd <__activate_task+3>: push %esi
0xb01127de <__activate_task+4>: push %ebx
0xb01127df <__activate_task+5>: mov %eax,%esi
0xb01127e1 <__activate_task+7>: mov %edx,%ebx
0xb01127e3 <__activate_task+9>: cmpl $0x3,0x58(%eax)
0xb01127e7 <__activate_task+13>: jne 0xb01127ee <__activate_task+20>
0xb01127e9 <__activate_task+15>: mov 0x44(%edx),%edx
0xb01127ec <__activate_task+18>: jmp 0xb01127f1 <__activate_task+23>
0xb01127ee <__activate_task+20>: mov 0x40(%edx),%edx
0xb01127f1 <__activate_task+23>: mov %esi,%eax
0xb01127f3 <__activate_task+25>: call 0xb01124bb <enqueue_task>
0xb01127f8 <__activate_task+30>: incl 0x8(%ebx)
0xb01127fb <__activate_task+33>: mov 0x18(%esi),%eax
0xb01127fe <__activate_task+36>: add %eax,0xc(%ebx)
0xb0112801 <__activate_task+39>: pop %ebx
0xb0112802 <__activate_task+40>: pop %esi
0xb0112803 <__activate_task+41>: pop %ebp
0xb0112804 <__activate_task+42>: ret
Your version:
0xb01127da <__activate_task+0>: push %ebp
0xb01127db <__activate_task+1>: mov %esp,%ebp
0xb01127dd <__activate_task+3>: push %esi
0xb01127de <__activate_task+4>: push %ebx
0xb01127df <__activate_task+5>: mov %eax,%esi
0xb01127e1 <__activate_task+7>: mov %edx,%ebx
0xb01127e3 <__activate_task+9>: mov 0x40(%edx),%edx
0xb01127e6 <__activate_task+12>: cmpl $0x3,0x58(%eax)
0xb01127ea <__activate_task+16>: jne 0xb01127ef <__activate_task+21>
0xb01127ec <__activate_task+18>: mov 0x44(%ebx),%edx
0xb01127ef <__activate_task+21>: mov %esi,%eax
0xb01127f1 <__activate_task+23>: call 0xb01124bb <enqueue_task>
0xb01127f6 <__activate_task+28>: incl 0x8(%ebx)
0xb01127f9 <__activate_task+31>: mov 0x18(%esi),%eax
0xb01127fc <__activate_task+34>: add %eax,0xc(%ebx)
0xb01127ff <__activate_task+37>: pop %ebx
0xb0112800 <__activate_task+38>: pop %esi
0xb0112801 <__activate_task+39>: pop %ebp
0xb0112802 <__activate_task+40>: ret
I'm not attached to the style, just the feature. If you think it's warranted
I'll change it.
Cheers,
Con
next prev parent reply other threads:[~2006-03-17 13:36 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-07 23:13 [PATCH] mm: yield during swap prefetching Con Kolivas
2006-03-07 23:26 ` Andrew Morton
2006-03-07 23:32 ` Con Kolivas
2006-03-08 0:05 ` Andrew Morton
2006-03-08 0:51 ` Con Kolivas
2006-03-08 1:11 ` Andrew Morton
2006-03-08 1:12 ` Con Kolivas
2006-03-08 1:19 ` Con Kolivas
2006-03-08 1:23 ` Andrew Morton
2006-03-08 1:28 ` Con Kolivas
2006-03-08 2:08 ` Lee Revell
2006-03-08 2:12 ` Con Kolivas
2006-03-08 2:18 ` Lee Revell
2006-03-08 2:22 ` Con Kolivas
2006-03-08 2:27 ` Lee Revell
2006-03-08 2:30 ` Con Kolivas
2006-03-08 2:52 ` [ck] " André Goddard Rosa
2006-03-08 3:03 ` Lee Revell
2006-03-08 3:05 ` Con Kolivas
2006-03-08 21:07 ` Zan Lynx
2006-03-08 23:00 ` Con Kolivas
2006-03-08 23:48 ` Zan Lynx
2006-03-09 0:07 ` Con Kolivas
2006-03-09 3:13 ` Zan Lynx
2006-03-09 4:08 ` Con Kolivas
2006-03-09 4:54 ` Lee Revell
2006-03-08 7:51 ` Jan Knutar
2006-03-08 8:39 ` Con Kolivas
2006-03-09 8:57 ` Helge Hafting
2006-03-09 9:08 ` Con Kolivas
[not found] ` <4410AFD3.7090505@bigpond.net.au>
2006-03-10 9:01 ` [ck] " Andreas Mohr
2006-03-10 9:11 ` Con Kolivas
2006-03-08 22:24 ` Pavel Machek
2006-03-09 2:22 ` Nick Piggin
2006-03-09 2:30 ` Con Kolivas
2006-03-09 2:57 ` Nick Piggin
2006-03-09 9:11 ` Con Kolivas
2006-03-08 13:36 ` [ck] " Con Kolivas
2006-03-17 9:06 ` Ingo Molnar
2006-03-17 10:46 ` interactive task starvation Mike Galbraith
2006-03-17 17:15 ` Mike Galbraith
2006-03-20 7:09 ` Mike Galbraith
2006-03-20 10:22 ` Ingo Molnar
2006-03-21 6:47 ` Willy Tarreau
2006-03-21 7:51 ` Mike Galbraith
2006-03-21 9:13 ` Willy Tarreau
2006-03-21 9:14 ` Ingo Molnar
2006-03-21 11:15 ` Willy Tarreau
2006-03-21 11:18 ` Ingo Molnar
2006-03-21 11:53 ` Con Kolivas
2006-03-21 13:10 ` Mike Galbraith
2006-03-21 13:13 ` Con Kolivas
2006-03-21 13:33 ` Mike Galbraith
2006-03-21 13:37 ` Con Kolivas
2006-03-21 13:44 ` Willy Tarreau
2006-03-21 13:45 ` Con Kolivas
2006-03-21 14:01 ` Mike Galbraith
2006-03-21 14:17 ` Con Kolivas
2006-03-21 15:20 ` Con Kolivas
2006-03-21 17:50 ` Willy Tarreau
2006-03-22 4:18 ` Mike Galbraith
2006-03-21 17:51 ` Mike Galbraith
2006-03-21 13:38 ` Willy Tarreau
2006-03-21 13:48 ` Mike Galbraith
2006-03-21 12:07 ` Mike Galbraith
2006-03-21 12:59 ` Willy Tarreau
2006-03-21 13:24 ` Mike Galbraith
2006-03-21 13:53 ` Con Kolivas
2006-03-21 14:17 ` Mike Galbraith
2006-03-21 14:19 ` Con Kolivas
2006-03-21 14:25 ` Ingo Molnar
2006-03-21 14:28 ` Con Kolivas
2006-03-21 14:30 ` Ingo Molnar
2006-03-21 14:28 ` Mike Galbraith
2006-03-21 14:30 ` Con Kolivas
2006-03-21 14:32 ` Ingo Molnar
2006-03-21 14:44 ` Willy Tarreau
2006-03-21 14:52 ` Ingo Molnar
2006-03-29 3:01 ` Lee Revell
2006-03-29 5:56 ` Ray Lee
2006-03-29 6:16 ` Lee Revell
2006-03-21 14:36 ` Mike Galbraith
2006-03-21 14:39 ` Con Kolivas
2006-03-21 14:39 ` Willy Tarreau
2006-03-21 18:39 ` Rafael J. Wysocki
2006-03-21 19:32 ` Willy Tarreau
2006-03-21 21:47 ` Rafael J. Wysocki
2006-03-21 22:51 ` Peter Williams
2006-03-22 3:49 ` Mike Galbraith
2006-03-22 3:59 ` Peter Williams
2006-03-22 12:14 ` [interbench numbers] " Mike Galbraith
2006-03-22 20:27 ` Con Kolivas
2006-03-23 3:22 ` Mike Galbraith
2006-03-23 5:43 ` Con Kolivas
2006-03-23 5:53 ` Mike Galbraith
2006-03-23 11:07 ` Mike Galbraith
2006-03-24 0:21 ` Con Kolivas
2006-03-24 5:02 ` Mike Galbraith
2006-03-24 5:04 ` Con Kolivas
2006-03-17 12:38 ` [PATCH] sched: activate SCHED BATCH expired Con Kolivas
2006-03-17 13:07 ` Ingo Molnar
2006-03-17 13:26 ` Nick Piggin
2006-03-17 13:36 ` Con Kolivas [this message]
2006-03-17 13:46 ` Nick Piggin
2006-03-17 13:51 ` Nick Piggin
2006-03-17 14:11 ` Con Kolivas
2006-03-17 14:59 ` Ingo Molnar
2006-03-17 13:47 ` [ck] " Andreas Mohr
2006-03-17 13:59 ` Con Kolivas
2006-03-17 14:06 ` Nick Piggin
2006-03-08 8:48 ` [ck] Re: [PATCH] mm: yield during swap prefetching Andreas Mohr
2006-03-08 8:52 ` Con Kolivas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200603180036.11326.kernel@kolivas.org \
--to=kernel@kolivas.org \
--cc=akpm@osdl.org \
--cc=ck@vds.kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=nickpiggin@yahoo.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome