All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manfred Spraul <manfred@colorfullife.com>
To: Jamie Lokier <lk@tantalophile.demon.co.uk>
Cc: Linus Torvalds <torvalds@transmeta.com>, linux-kernel@vger.kernel.org
Subject: Re: x86 ptep_get_and_clear question
Date: Fri, 16 Feb 2001 15:59:17 +0100	[thread overview]
Message-ID: <3A8D4045.F8F27782@colorfullife.com> (raw)
In-Reply-To: <3A8C499A.E0370F63@colorfullife.com> <Pine.LNX.4.10.10102151702320.12656-100000@penguin.transmeta.com> <20010216151839.A3989@pcep-jamie.cern.ch>

Jamie Lokier wrote:
> 
> Linus Torvalds wrote:
> > So the only case that ends up being fairly heavy may be a case that is
> > very uncommon in practice (only for unmapping shared mappings in
> > threaded programs or the lazy TLB case).
>
The lazy tlb case is quite fast: lazy tlb thread never write to user
space pages, we don't need to protect the dirty bits. And the first ipi
clears mm->cpu_vm_mask, only one ipi.
>
> I can think of one case where performance is considered quite important:
> mprotect() is used by several garbage collectors, including threaded
> ones.  Maybe mprotect() isn't the best primitive for those anyway, but
> it's what they have to work with atm.
>

Does mprotect() actually care for wrong dirty bits?
The race should be invisible to user space apps.

>>>>>>> mprotect()
for_all_affected_ptes() {
	lock andl ~PERMISSION_MASK, *pte;
	lock orl new_permission, *pte;
}
< now anther cpu could still write to the write protected pages
< and set the dirty bit, but who cares? Shouldn't be a problem.
flush_tlb_range().
< tlb flush before ending the syscall, user space can't notice
< the delay.
<<<<

--
	Manfred

  reply	other threads:[~2001-02-16 14:59 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-15  1:50 x86 ptep_get_and_clear question Kanoj Sarcar
2001-02-15  2:13 ` Ben LaHaise
2001-02-15  2:37   ` Kanoj Sarcar
2001-02-15 10:55   ` Jamie Lokier
2001-02-15 16:06     ` Ben LaHaise
2001-02-15 16:35       ` Jamie Lokier
2001-02-15 17:23         ` Kanoj Sarcar
2001-02-15 17:27           ` Ben LaHaise
2001-02-15 17:38             ` Kanoj Sarcar
2001-02-15 17:46               ` Ben LaHaise
2001-02-15 17:47           ` Jamie Lokier
2001-02-15 17:47             ` Jamie Lokier
2001-02-15 18:05             ` Kanoj Sarcar
2001-02-15 18:05               ` Kanoj Sarcar
2001-02-15 18:23             ` Kanoj Sarcar
2001-02-15 18:23               ` Kanoj Sarcar
2001-02-15 18:42               ` Jamie Lokier
2001-02-15 18:42                 ` Jamie Lokier
2001-02-15 18:57                 ` Kanoj Sarcar
2001-02-15 18:57                   ` Kanoj Sarcar
2001-02-15 19:06                   ` Ben LaHaise
2001-02-15 19:06                     ` Ben LaHaise
2001-02-15 19:19                     ` Kanoj Sarcar
2001-02-15 19:19                       ` Kanoj Sarcar
2001-02-15 20:16                       ` Linus Torvalds
2001-02-15 18:51               ` Manfred Spraul
2001-02-15 18:51                 ` Manfred Spraul
2001-02-15 19:05                 ` Kanoj Sarcar
2001-02-15 19:05                   ` Kanoj Sarcar
2001-02-15 19:19                   ` Jamie Lokier
2001-02-15 19:19                     ` Jamie Lokier
2001-02-15 20:31                     ` Linus Torvalds
2001-02-15 21:26                       ` Manfred Spraul
2001-02-15 21:29                         ` Manfred Spraul
2001-02-16  1:21                         ` Linus Torvalds
2001-02-16 14:18                           ` Jamie Lokier
2001-02-16 14:59                             ` Manfred Spraul [this message]
2001-02-16 15:27                               ` Jamie Lokier
2001-02-16 15:54                                 ` Manfred Spraul
2001-02-16 16:00                                   ` Jamie Lokier
2001-02-16 16:23                                     ` Manfred Spraul
2001-02-16 16:43                                       ` Jamie Lokier
2001-02-16 17:12                                         ` Manfred Spraul
2001-02-16 17:20                                           ` Jamie Lokier
2001-02-16 17:36                                             ` Linus Torvalds
2001-02-16 18:49                                               ` Manfred Spraul
2001-02-16 19:00                                                 ` Linus Torvalds
2001-02-16 19:02                                                 ` Ben LaHaise
2001-02-16 19:32                                                   ` Linus Torvalds
2001-02-16 19:42                                                     ` Ben LaHaise
2001-02-16 17:37                                           ` Jamie Lokier
2001-02-16 18:04                                             ` Manfred Spraul
2001-02-16 18:09                                               ` Jamie Lokier
2001-02-16 18:36                                             ` Hugh Dickins
2001-02-16 17:29                                         ` Ben LaHaise
2001-02-16 17:38                                           ` Linus Torvalds
2001-02-16 17:44                                             ` Ben LaHaise
2001-02-16 17:59                               ` Linus Torvalds
2001-02-15 23:57                       ` Jamie Lokier
2001-02-16  0:55                         ` Linus Torvalds
2001-02-15 19:07                 ` Jamie Lokier
2001-02-15 19:07                   ` Jamie Lokier

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=3A8D4045.F8F27782@colorfullife.com \
    --to=manfred@colorfullife.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lk@tantalophile.demon.co.uk \
    --cc=torvalds@transmeta.com \
    /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.