From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: mjy@geizhals.at, linux-kernel@vger.kernel.org
Subject: Re: CONFIG_PREEMPT and server workloads
Date: Thu, 18 Mar 2004 19:38:44 +0100 [thread overview]
Message-ID: <20040318183844.GD32573@dualathlon.random> (raw)
In-Reply-To: <20040318102623.04e4fadb.akpm@osdl.org>
On Thu, Mar 18, 2004 at 10:26:23AM -0800, Andrew Morton wrote:
> Andrea Arcangeli <andrea@suse.de> wrote:
> >
> > > They do? kmap_atomic() disables preemption anyway.
> >
> > dunno why but see:
> >
> > spin_lock(&mm->page_table_lock);
> > page_table = pte_offset_map(pmd, address);
> >
> > pte_unmap(page_table);
> > spin_unlock(&mm->page_table_lock);
> >
>
> do_wp_page()? The lock is there to pin the pte down isn't it? Maybe it
> can be optimised - certainly the spin_unlock() in there can be moved up a
> few statements.
It's not needed, we need the lock only when we _read_ the pte, not
during the kmap_atomic. The kmap_atomic is just a window on some highmem
rmap, it has no clue what's there and it can't affect the locking in any
way. The only thing it matters is that we don't schedule.
so taking locks regularly earlier than needed sounds a bit confusing,
since somebody could think they're really needed there.
> Could be. When I did that code I had some printks in the slow path and
> although it did trigger, it was rare. We've already faulted the page in by
I agree it must be _very_ rare ;). Writing zeros isn't very useful
anyways. And while swapping the scalability don't matter much anywyas.
> hand so we should only fall into the kmap() if the page was suddenly stolen
> again.
Oh so you mean the page fault insn't only interrupting the copy-user
atomically, but the page fault is also going to sleep and pagein the
page? I though you didn't want to allow other tasks to steal the kmap
before you effectively run the kunmap_atomic. I see it can be safe if
kunmap_atomic is a noop though, but you're effectively allowing
scheduling inside a kmap this way.
next prev parent reply other threads:[~2004-03-18 18:41 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-18 4:00 CONFIG_PREEMPT and server workloads Marinos J. Yannikos
2004-03-18 5:12 ` Andrew Morton
2004-03-18 6:03 ` Andrea Arcangeli
2004-03-18 9:50 ` Andrew Morton
2004-03-18 14:51 ` Andrea Arcangeli
2004-03-18 15:34 ` Robert Love
2004-03-18 16:01 ` Andrea Arcangeli
2004-03-18 17:39 ` Andrew Morton
2004-03-18 17:58 ` Andrea Arcangeli
2004-03-18 18:26 ` Andrew Morton
2004-03-18 18:38 ` Andrea Arcangeli [this message]
2004-03-18 18:47 ` Andrew Morton
2004-03-18 19:01 ` Andrea Arcangeli
2004-03-18 17:48 ` Robert Love
2004-03-18 18:00 ` Andrea Arcangeli
2004-03-20 10:48 ` Jamie Lokier
2004-03-19 2:17 ` Nick Piggin
[not found] ` <20040319050948.GN2045@holomorphy.com>
2004-03-20 12:14 ` Andrea Arcangeli
2004-03-20 14:51 ` William Lee Irwin III
2004-03-20 15:03 ` Andrea Arcangeli
2004-03-20 15:09 ` William Lee Irwin III
2004-03-24 13:57 ` Takashi Iwai
2004-03-24 14:52 ` Andrea Arcangeli
2004-03-24 15:11 ` William Lee Irwin III
2004-03-18 15:20 ` Tom Sightler
2004-03-18 15:37 ` Andrea Arcangeli
2004-03-18 23:54 ` Tom Sightler
2004-03-18 15:39 ` Robert Love
2004-03-18 15:28 ` Takashi Iwai
2004-03-18 15:40 ` Robert Love
2004-03-18 15:42 ` Andrea Arcangeli
2004-03-18 19:01 ` Andrew Morton
2004-03-18 19:08 ` Takashi Iwai
2004-03-18 19:18 ` Andrew Morton
2004-03-18 19:20 ` Takashi Iwai
2004-03-18 19:43 ` Andrea Arcangeli
2004-03-18 19:50 ` Takashi Iwai
2004-03-18 19:24 ` Robert Love
2004-03-19 22:03 ` Valdis.Kletnieks
2004-03-19 22:12 ` Robert Love
2004-03-24 15:00 ` Takashi Iwai
2004-03-18 19:16 ` Takashi Iwai
2004-03-18 19:29 ` Andrew Morton
2004-03-18 19:48 ` Chris Mason
2004-03-19 11:37 ` Takashi Iwai
2004-03-19 13:46 ` Chris Mason
2004-03-19 14:06 ` Takashi Iwai
[not found] ` <20040318221006.74246648.akpm@osdl.org>
2004-03-19 10:30 ` Takashi Iwai
2004-03-23 9:14 ` Dipankar Sarma
2004-03-19 17:22 ` Dipankar Sarma
2004-03-19 18:03 ` Andrew Morton
2004-03-20 12:24 ` Andrea Arcangeli
2004-03-20 13:13 ` Dipankar Sarma
2004-03-18 19:39 ` Andrea Arcangeli
2004-03-18 22:32 ` Andrew Morton
2004-03-18 22:54 ` Chris Mason
2004-03-18 23:57 ` Andrew Morton
2004-03-19 20:46 ` Takashi Iwai
2004-03-19 21:08 ` Andrew Morton
2004-03-19 3:07 ` Eric St-Laurent
2004-03-19 11:23 ` Takashi Iwai
2004-03-19 13:35 ` Chris Mason
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=20040318183844.GD32573@dualathlon.random \
--to=andrea@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mjy@geizhals.at \
/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