From: Ingo Molnar <mingo@elte.hu>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Matt Turner <mattst88@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
linux-alpha@vger.kernel.org
Subject: Re: Discrepancy between comments for sched_find_first_bit
Date: Fri, 2 Apr 2010 22:16:48 +0200 [thread overview]
Message-ID: <20100402201648.GA15498@elte.hu> (raw)
In-Reply-To: <1269858302.12097.272.camel@laptop>
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Sun, 2010-03-28 at 23:37 -0400, Matt Turner wrote:
> > include/asm-generic/bitops/sched.h says
> > /*
> > * Every architecture must define this function. It's the fastest
> > * way of searching a 100-bit bitmap. It's guaranteed that at least
> > * one of the 100 bits is cleared.
> > */
> >
> > arch/alpha/include/asm/bitops.h says
> > /*
> > * Every architecture must define this function. It's the fastest
> > * way of searching a 140-bit bitmap where the first 100 bits are
> > * unlikely to be set. It's guaranteed that at least one of the 140
> > * bits is set.
> > */
> >
> > Is the guarantee that one of the first 100-bits set (and that the last
> > 40 are useless?), or 140-bits? If it's just the first 100 bits we care
> > about, then the alpha version needs to be fixed.
> >
> > I'm just checking this out, because gcc produces horrendous code for
> > sched_find_first_bit on alpha. I rewrote it in assembly and it's
> > better than 4 times faster.
> >
> > Also, is it even worth optimizing that function? It looks like it's
> > only used in kernel/sched_rt.c.
>
> (might help if you CC the scheduler people on scheduler functions :-)
>
> Right, so it used to be 140 bits with the old O(1) scheduler, currently
> (as you noted) sched_rt is the only user left and will therefore only
> care about the first 100 bits.
>
> As it stands I think it might still make sense to optimize this as for
> rt loads it still on a hot path.
>
> As to the 100 vs 140 length, would it really make much of difference to
> shorten the implementation to 100? If not I'd leave it at 140.
>
> Ingo, any comments?
I guess getting below the 128 bits boundary would shave an instruction and a
branch off or so?
Ingo
next prev parent reply other threads:[~2010-04-02 20:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-29 3:37 Discrepancy between comments for sched_find_first_bit Matt Turner
2010-03-29 10:25 ` Peter Zijlstra
2010-04-02 20:16 ` Ingo Molnar [this message]
2010-04-02 20:50 ` Matt Turner
2010-04-02 20:50 ` Matt Turner
2010-04-02 21:25 ` Ingo Molnar
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=20100402201648.GA15498@elte.hu \
--to=mingo@elte.hu \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mattst88@gmail.com \
--cc=peterz@infradead.org \
/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.