linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: Nadav Amit <namit@vmware.com>, Linux MM <linux-mm@kvack.org>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Axel Rasmussen <axelrasmussen@google.com>,
	Mike Rapoport <rppt@linux.ibm.com>
Subject: Re: [PATCH v1 2/5] userfaultfd: introduce access-likely mode for common operations
Date: Mon, 27 Jun 2022 10:59:08 -0400	[thread overview]
Message-ID: <YrnFvLVBYJIKkC43@xz-m1.local> (raw)
In-Reply-To: <deaf83fb-baa4-9840-7b45-eac0150da000@redhat.com>

On Mon, Jun 27, 2022 at 03:27:49PM +0200, David Hildenbrand wrote:
> > Fundamentally, access bit has more meaningful context (0 means cold, 1
> > means hot), for dirty it's really more a perf thing to me (when clear,
> > it'll take extra cycles to set it when memory write happens to it; being
> > clear _may_ help only for the tlb flush example you mentioned but I'm not
> > fully convinced that's correct).
> > 
> > Maybe with the to be proposed RFC patch for tlb flush we can know whether
> > that should be something we can rely on.  It'll add more dependency on this
> > work which I'm sorry to say.  It's just that IMHO we should think carefully
> > for the write-hint because this is a solid new uABI we're talking about.
> > 
> > The other option is we can introduce the access hint first and think more
> > on the dirty one (we can always add it when proper).  What do you think?
> > Also, David please chim in anytime if I missed the whole point when you
> > proposed the idea.
> 
> Well, if we have an ABI that places pages without further information
> *why* we're doing that makes us having to guess what to do or what not
> to do, and I think the zeropage placement is a prime example for that.
> Personally, I think communicating the intention in forms of hints is
> something that doesn't leak implementation details into an ABI.
> 
> So "no planned access" vs. "read_likely" vs. "write_likely" conceptually
> makes sense to me.
> 
> As I raised previously, *if* we want to let the user affect the dirty
> bit setting (1) is then a pure implementation detail. Or whatever else
> we might want to do.
> 
> But I also want to raise awareness that architectures that don't have a
> hw-set dirty bit have to use page faults to mimic dirty tracking. IIRC,
> s390x is a prime example for that: pte_mkclean() sets the WP bit and
> marks the page dirty from the write fault. So it's even more expensive
> than on other architectures.

The last input seems to be supporting that we'd better even have redundant
dirty bit in ptes rather than accidentally not having it, even when both
are safe.

So to me WRITE_LIKELY was still mostly around dirty bit besides the
ZEROPAGE case.  I don't have a strong opinion on how we should name that
flag, if we want to insist on WRITE_LIKELY but only on ZEROPAGE I think
it's fine, it's just that if I'm the user app I prefer making sure the page
is allocated after UFFDIO_ZEROPAGE returned, rather than only providing a
hint and then the kernels says "we'll do something but nothing is
guaranteed".

I also fully agree we don't want to expose impl details but my question was
more on whether we want that hint at all as a generic one, and in what case
that hint helps outside ZEROPAGE.  For "it can be accessed" hint, I have an
answer and it seems to apply to most of the uffd ioctls; but not so generic
for a "it can be written" hint.

Thanks,

-- 
Peter Xu



  reply	other threads:[~2022-06-27 14:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-22 18:50 [PATCH v1 0/5] userfaultfd: support access/write hints Nadav Amit
2022-06-22 18:50 ` [PATCH v1 1/5] userfaultfd: introduce uffd_flags Nadav Amit
2022-06-23 21:57   ` Peter Xu
2022-06-23 22:04     ` Nadav Amit
2022-06-22 18:50 ` [PATCH v1 2/5] userfaultfd: introduce access-likely mode for common operations Nadav Amit
2022-06-23 23:24   ` Peter Xu
2022-06-23 23:35     ` Nadav Amit
2022-06-23 23:49       ` Peter Xu
2022-06-24  0:03         ` Nadav Amit
2022-06-24  2:05           ` Peter Xu
2022-06-24  2:42             ` Nadav Amit
2022-06-24 21:58               ` Peter Xu
2022-06-24 22:17                 ` Peter Xu
2022-06-25  7:49                   ` Nadav Amit
2022-06-27 13:12                     ` Peter Xu
2022-06-27 13:27                       ` David Hildenbrand
2022-06-27 14:59                         ` Peter Xu [this message]
2022-06-27 23:37                       ` Nadav Amit
2022-06-28 10:55                         ` David Hildenbrand
2022-06-28 19:15                         ` Peter Xu
2022-06-28 20:30                           ` Nadav Amit
2022-06-28 20:56                             ` Peter Xu
2022-06-28 21:03                               ` Nadav Amit
2022-06-28 21:12                                 ` Peter Xu
2022-06-28 21:15                                   ` Nadav Amit
2022-07-12  6:19   ` Nadav Amit
2022-07-12 14:56     ` Peter Xu
2022-07-13  1:09       ` Nadav Amit
2022-07-13 16:02         ` Peter Xu
2022-07-13 16:49           ` Nadav Amit
2022-06-22 18:50 ` [PATCH v1 3/5] userfaultfd: introduce write-likely mode for uffd operations Nadav Amit
2022-06-22 18:50 ` [PATCH v1 4/5] userfaultfd: zero access/write hints Nadav Amit
2022-06-23 23:34   ` Peter Xu
2022-06-22 18:50 ` [PATCH v1 5/5] selftest/userfaultfd: test read/write hints Nadav Amit

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=YrnFvLVBYJIKkC43@xz-m1.local \
    --to=peterx@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=axelrasmussen@google.com \
    --cc=david@redhat.com \
    --cc=hughd@google.com \
    --cc=linux-mm@kvack.org \
    --cc=mike.kravetz@oracle.com \
    --cc=namit@vmware.com \
    --cc=rppt@linux.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox