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: 148+ 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:13 ` Con Kolivas
2006-03-07 23:26 ` Andrew Morton
2006-03-07 23:26 ` Andrew Morton
2006-03-07 23:32 ` Con Kolivas
2006-03-07 23:32 ` Con Kolivas
2006-03-08 0:05 ` Andrew Morton
2006-03-08 0:05 ` Andrew Morton
2006-03-08 0:51 ` Con Kolivas
2006-03-08 0:51 ` Con Kolivas
2006-03-08 1:11 ` Andrew Morton
2006-03-08 1:11 ` Andrew Morton
2006-03-08 1:12 ` Con Kolivas
2006-03-08 1:12 ` Con Kolivas
2006-03-08 1:19 ` Con Kolivas
2006-03-08 1:19 ` Con Kolivas
2006-03-08 1:23 ` Andrew Morton
2006-03-08 1:23 ` Andrew Morton
2006-03-08 1:28 ` Con Kolivas
2006-03-08 1:28 ` Con Kolivas
2006-03-08 2:08 ` Lee Revell
2006-03-08 2:08 ` Lee Revell
2006-03-08 2:12 ` Con Kolivas
2006-03-08 2:12 ` Con Kolivas
2006-03-08 2:18 ` Lee Revell
2006-03-08 2:18 ` Lee Revell
2006-03-08 2:22 ` Con Kolivas
2006-03-08 2:22 ` Con Kolivas
2006-03-08 2:27 ` Lee Revell
2006-03-08 2:27 ` Lee Revell
2006-03-08 2:30 ` Con Kolivas
2006-03-08 2:30 ` Con Kolivas
2006-03-08 2:52 ` [ck] " André Goddard Rosa
2006-03-08 2:52 ` André Goddard Rosa
2006-03-08 3:03 ` Lee Revell
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-09 4:54 ` Lee Revell
2006-03-08 7:51 ` Jan Knutar
2006-03-08 7:51 ` Jan Knutar
2006-03-08 8:39 ` Con Kolivas
2006-03-08 8:39 ` Con Kolivas
2006-03-09 8:57 ` Helge Hafting
2006-03-09 8:57 ` Helge Hafting
2006-03-09 9:08 ` Con Kolivas
2006-03-09 9:08 ` Con Kolivas
2006-03-09 22:44 ` Peter Williams
2006-03-10 9:01 ` [ck] " Andreas Mohr
2006-03-10 9:01 ` Andreas Mohr
2006-03-10 9:11 ` Con Kolivas
2006-03-10 9:11 ` Con Kolivas
2006-03-10 0:58 ` Peter Williams
2006-03-08 22:24 ` Pavel Machek
2006-03-08 22:24 ` Pavel Machek
2006-03-09 2:22 ` Nick Piggin
2006-03-09 2:22 ` Nick Piggin
2006-03-09 2:30 ` Con Kolivas
2006-03-09 2:30 ` Con Kolivas
2006-03-09 2:57 ` Nick Piggin
2006-03-09 2:57 ` Nick Piggin
2006-03-09 9:11 ` Con Kolivas
2006-03-09 9:11 ` Con Kolivas
2006-03-08 13:36 ` [ck] " Con Kolivas
2006-03-08 13:36 ` Con Kolivas
2006-03-17 9:06 ` Ingo Molnar
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:48 ` Andreas Mohr
2006-03-08 8:52 ` Con Kolivas
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 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.