mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  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