All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@zip.com.au>
To: nigel@nrg.org
Cc: Robert Love <rml@tech9.net>,
	Linus Torvalds <torvalds@transmeta.com>,
	viro@math.psu.edu, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 2.5: push BKL out of llseek
Date: Tue, 29 Jan 2002 19:19:36 -0800	[thread overview]
Message-ID: <3C576648.84CE142B@zip.com.au> (raw)
In-Reply-To: <1012357211.817.67.camel@phantasy> <Pine.LNX.4.40.0201291821030.15838-100000@cosmic.nrg.org>

Nigel Gamble wrote:
> 
> On 29 Jan 2002, Robert Love wrote:
> > On Tue, 2002-01-29 at 20:26, Andrew Morton wrote:
> > > Just a little word of caution here.  Remember the
> > > apache-flock-synchronisation fiasco, where removal
> > > of the BKL halved Apache throughput on 8-way x86.
> > >
> > > This was because the BKL removal turned serialisation
> > > on a quick codepath from a spinlock into a schedule().
> 
> Yes, but the other factor to consider here is why did the extra schedule
> take place at all?  I think this is a actually a scheduler issue, and
> I'm hoping that the new scheduler will behave better in this case.  A
> call to schedule() should not happen unless the woken process has a
> higher priority than the process that did the unlock, but the old
> scheduler evidently always calculated this to be the case.  But we
> really want the process that did the unlock to continue running (until
> the end of its timeslice, if not preempted or blocked before then), just
> as it would when the lock was a spinlock.  It would be interesting to
> see whether the new scheduler gets this right.
> 
> Am I remembering the problem correctly?
> 

I don't think so :)

The problem was that the semaphore was highly contended, so the
losing process was explicitly scheduling away.

This doesn't necessarily mean that it was a long-held lock.  In
this case, it was a short-held lock, but it was also very *frequently*
being held and released.   This is a scenario where a spinlock is
heaps more appropriate than a semaphore.

I don't think we need any locking at all in the default lseek()
path, btw.  Apart from the non-atomic i_size thing, which is
only an issue for 32-bit machines.


-

  reply	other threads:[~2002-01-30  3:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-30  0:00 [PATCH] 2.5: push BKL out of llseek Robert Love
2002-01-30  0:09 ` Linus Torvalds
2002-01-30  0:41   ` Robert Love
2002-01-30  0:52     ` Linus Torvalds
2002-01-30  2:24       ` Robert Love
2002-01-30  1:26     ` Andrew Morton
2002-01-30  2:16       ` Linus Torvalds
2002-01-30  2:20       ` Robert Love
2002-01-30  2:20         ` Andrew Morton
2002-01-30  2:21         ` Dave Jones
2002-01-30  2:37           ` Robert Love
2002-01-30  2:50         ` Nigel Gamble
2002-01-30  3:19           ` Andrew Morton [this message]
2002-01-30  9:34             ` Nigel Gamble
2002-01-30 10:36         ` Russell King
2002-01-30  4:54   ` Alexander Viro
2002-01-30  8:00     ` Trond Myklebust
2002-01-30 13:39       ` Robert Love
2002-01-30  4:50 ` Anton Blanchard
2002-01-30  5:03 ` Robert Love
  -- strict thread matches above, loose matches on Subject: below --
2002-01-30 21:14 Martin Wirth
2002-01-31 15:39 Martin Wirth
2002-01-31 21:06 ` Nigel Gamble
2002-02-01 19:29 John Hawkes

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=3C576648.84CE142B@zip.com.au \
    --to=akpm@zip.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nigel@nrg.org \
    --cc=rml@tech9.net \
    --cc=torvalds@transmeta.com \
    --cc=viro@math.psu.edu \
    /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.