All of lore.kernel.org
 help / color / mirror / Atom feed
From: torvalds@transmeta.com (Linus Torvalds)
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] low-latency zap_page_range()
Date: Thu, 29 Aug 2002 22:37:02 +0000 (UTC)	[thread overview]
Message-ID: <akm7me$3s1$1@penguin.transmeta.com> (raw)
In-Reply-To: 20020829213830.GG888@holomorphy.com

In article <20020829213830.GG888@holomorphy.com>,
William Lee Irwin III  <wli@holomorphy.com> wrote:
>Robert Love wrote:
>>> unless we
>>> wanted to unconditionally drop the locks and let preempt just do the
>>> right thing and also reduce SMP lock contention in the SMP case.
>
>On Thu, Aug 29, 2002 at 01:59:17PM -0700, Andrew Morton wrote:
>> That's an interesting point.  page_table_lock is one of those locks
>> which is occasionally held for ages, and frequently held for a short
>> time.
>> I suspect that yes, voluntarily popping the lock during the long holdtimes
>> will allow other CPUs to get on with stuff, and will provide efficiency
>> increases.  (It's a pretty lame way of doing that though).
>> But I don't recall seeing nasty page_table_lock spintimes on
>> anyone's lockmeter reports, so...
>
>You will. There are just bigger fish to fry at the moment.

You will NOT.

The page_table_lock protects against page stealing of the VM and
concurrent page-faults, nothing else.  There is no way you can get
contention on it under any reasonable load that doesn't involve heavy
out-of-memory behaviour, simply because

 - the lock is per-mm
 - all "regular" paths that care about this also get the mmap semaphore

In short, that spinlock has _zero_ scalability impact.  You can
theoretically get contention on it without memory pressure only by
having hundreds of threads page-faulting at the same time (getting a
read-lock on the mmap semaphore), but by then your performance has
nothing to do with the spinlock, and everything to do with the page
faults themselves. 

(In fact, I can almost guarantee that most of the long hold-times are
for exit(), not for munmap().  And in that case the spinlock cannot get
any non-pagestealer contention at all, since nobody else is using the
MM)

			Linus

  reply	other threads:[~2002-08-29 22:31 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-29 15:31 [PATCH] low-latency zap_page_range() Robert Love
2002-08-29 15:31 ` Robert Love
2002-08-29 20:30 ` Andrew Morton
2002-08-29 20:30   ` Andrew Morton
2002-08-29 20:40   ` Robert Love
2002-08-29 20:40     ` Robert Love
2002-08-29 20:46     ` Robert Love
2002-08-29 20:46       ` Robert Love
2002-08-29 20:59     ` Andrew Morton
2002-08-29 20:59       ` Andrew Morton
2002-08-29 21:38       ` William Lee Irwin III
2002-08-29 21:38         ` William Lee Irwin III
2002-08-29 22:37         ` Linus Torvalds [this message]
2002-08-29 23:06           ` William Lee Irwin III
2002-08-29 21:00     ` Andrew Morton
2002-08-29 21:00       ` Andrew Morton
2002-08-29 21:12       ` Robert Love
2002-08-29 21:12         ` Robert Love
2002-08-29 21:22         ` Andrew Morton
2002-08-29 21:22           ` Andrew Morton
2002-08-29 21:46           ` Rik van Riel
2002-08-29 21:46             ` Rik van Riel

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='akm7me$3s1$1@penguin.transmeta.com' \
    --to=torvalds@transmeta.com \
    --cc=linux-kernel@vger.kernel.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.