[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080511132636.GA22878@parisc-linux.org>
Date: Sun, 11 May 2008 07:26:36 -0600
From: Matthew Wilcox <matthew@....cx>
To: Ingo Molnar <mingo@...e.hu>
Cc: Sven Wegener <sven.wegener@...aler.net>,
Linus Torvalds <torvalds@...ux-foundation.org>,
"Zhang, Yanmin" <yanmin_zhang@...ux.intel.com>,
Andi Kleen <andi@...stfloor.org>,
LKML <linux-kernel@...r.kernel.org>,
Alexander Viro <viro@....linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>
Subject: Re: [git pull] scheduler fixes
On Sun, May 11, 2008 at 07:02:26AM -0600, Matthew Wilcox wrote:
> > + list_move_tail(&waiter->list, &sem->wait_list);
>
> Seems like extra cache line dirtying for no real gain over my solution.
Actually, let me just go into this a little further.
In principle, you'd think that we'd want to wake up all the tasks
possible as soon as possible. In practice, Dave Chinner has said that
the l_flushsema introduces a thundering herd (a few hundred tasks can
build up behind it on systems such as Columbia apparently) that then
run into a bottleneck as soon as they're unleashed.
Current XFS CVS has a fix from myself and Christoph that gets rid of the
l_flushsema and replaces it with a staggered wakeup of each task that's
waiting as the previously woken task clears the critical section.
Obviously, generic up() can't possibly do as well, but by staggering
the release of tasks from __down_common(), we mitigate the herd somewhat.
--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists