linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>,
	Gerald Schaefer <gerald.schaefer@linux.ibm.com>,
	 Dave Hansen <dave.hansen@intel.com>,
	John Hubbard <jhubbard@nvidia.com>,
	 LKML <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	 linux-arch <linux-arch@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	 Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@kernel.org>,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	 Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	 Paul Mackerras <paulus@samba.org>, Jeff Dike <jdike@addtoit.com>,
	 Richard Weinberger <richard@nod.at>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	 Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	 Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	 Arnd Bergmann <arnd@arndb.de>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	linux-x86 <x86@kernel.org>,
	 linux-arm <linux-arm-kernel@lists.infradead.org>,
	 linux-power <linuxppc-dev@lists.ozlabs.org>,
	linux-sparc <sparclinux@vger.kernel.org>,
	 linux-um <linux-um@lists.infradead.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	 Vasily Gorbik <gor@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	 Christian Borntraeger <borntraeger@de.ibm.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>
Subject: Re: [RFC PATCH v2 1/3] mm/gup: fix gup_fast with dynamic page table folding
Date: Thu, 10 Sep 2020 10:35:38 -0700	[thread overview]
Message-ID: <CAHk-=wh4SuNvThq1nBiqk0N-fW6NsY5w=VawC=rJs7ekmjAhjA@mail.gmail.com> (raw)
In-Reply-To: <20200910093925.GB29166@oc3871087118.ibm.com>

On Thu, Sep 10, 2020 at 2:40 AM Alexander Gordeev
<agordeev@linux.ibm.com> wrote:
>
> It is only gup_fast case that exposes the issue. It hits because
> pointers to stack copies are passed to gup_pXd_range iterators, not
> pointers to real page tables itself.

Can we possibly change fast-gup to not do the stack copies?

I'd actually rather do something like that, than the "addr_end" thing.

As you say, none of the other page table walking code does what the
GUP code does, and I don't think it's required.

The GUP code is kind of strange, I'm not quite sure why. Some of it
unusually came from the powerpc code that handled their special odd
hugepage model, and that may be why it's so different.

How painful would it be to just pass the pmd (etc) _pointers_ around,
rather than do the odd "take the address of local copies"?

                  Linus


  parent reply	other threads:[~2020-09-10 17:36 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-07 18:00 [RFC PATCH v2 0/3] mm/gup: fix gup_fast with dynamic page table folding Gerald Schaefer
2020-09-07 18:00 ` [RFC PATCH v2 1/3] " Gerald Schaefer
2020-09-08  5:06   ` Christophe Leroy
2020-09-08 12:09     ` Christian Borntraeger
2020-09-08 12:40       ` Christophe Leroy
2020-09-08 13:38         ` Gerald Schaefer
2020-09-08 14:30   ` Dave Hansen
2020-09-08 17:59     ` Gerald Schaefer
2020-09-09 12:29     ` Gerald Schaefer
2020-09-09 16:18       ` Dave Hansen
2020-09-09 17:25         ` Gerald Schaefer
2020-09-09 18:03           ` Jason Gunthorpe
2020-09-10  9:39             ` Alexander Gordeev
2020-09-10 13:02               ` Jason Gunthorpe
2020-09-10 13:28                 ` Gerald Schaefer
2020-09-10 15:10                   ` Jason Gunthorpe
2020-09-10 17:07                     ` Gerald Schaefer
2020-09-10 17:19                       ` Jason Gunthorpe
2020-09-10 17:57                 ` Gerald Schaefer
2020-09-10 23:21                   ` Jason Gunthorpe
2020-09-10 17:35               ` Linus Torvalds [this message]
2020-09-10 18:13                 ` Jason Gunthorpe
2020-09-10 18:33                   ` Linus Torvalds
2020-09-10 19:10                     ` Gerald Schaefer
2020-09-10 19:32                       ` Linus Torvalds
2020-09-10 21:59                         ` Jason Gunthorpe
2020-09-11  7:09                           ` peterz
2020-09-11 11:19                             ` Jason Gunthorpe
2020-09-11 19:03                             ` [PATCH] " Vasily Gorbik
2020-09-11 19:09                               ` Linus Torvalds
2020-09-11 19:40                               ` Jason Gunthorpe
2020-09-11 20:05                                 ` Jason Gunthorpe
2020-09-11 20:36                                   ` [PATCH v2] " Vasily Gorbik
2020-09-15 17:09                                     ` Vasily Gorbik
2020-09-15 17:14                                     ` Jason Gunthorpe
2020-09-15 17:18                                     ` Mike Rapoport
2020-09-15 17:31                                     ` John Hubbard
2020-09-10 21:22                   ` [RFC PATCH v2 1/3] " John Hubbard
2020-09-10 22:11                     ` Jason Gunthorpe
2020-09-10 22:17                       ` John Hubbard
2020-09-11 12:19                       ` Alexander Gordeev
2020-09-11 16:45                         ` Linus Torvalds
2020-09-10 13:11             ` Gerald Schaefer
2020-09-07 18:00 ` [RFC PATCH v2 2/3] mm: make pXd_addr_end() functions page-table entry aware Gerald Schaefer
2020-09-08  5:14   ` Christophe Leroy
2020-09-08  7:46     ` Alexander Gordeev
2020-09-08  8:16       ` Christophe Leroy
2020-09-08 14:15         ` Alexander Gordeev
2020-09-09  8:38           ` Christophe Leroy
2020-09-08 14:25     ` Alexander Gordeev
2020-09-08 13:26   ` Jason Gunthorpe
2020-09-08 14:33   ` Dave Hansen
2020-09-07 18:00 ` [RFC PATCH v2 3/3] mm: make generic pXd_addr_end() macros inline functions Gerald Schaefer
2020-09-07 20:15   ` Mike Rapoport
2020-09-08  5:19   ` Christophe Leroy
2020-09-08 15:48     ` Alexander Gordeev
2020-09-08 17:20       ` Christophe Leroy
2020-09-07 20:12 ` [RFC PATCH v2 0/3] mm/gup: fix gup_fast with dynamic page table folding Mike Rapoport
2020-09-08  5:22   ` Christophe Leroy
2020-09-08 17:36     ` Gerald Schaefer
2020-09-09 16:12       ` Gerald Schaefer
2020-09-08  4:42 ` Christophe Leroy

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='CAHk-=wh4SuNvThq1nBiqk0N-fW6NsY5w=VawC=rJs7ekmjAhjA@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=agordeev@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=aryabinin@virtuozzo.com \
    --cc=benh@kernel.crashing.org \
    --cc=borntraeger@de.ibm.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=jdike@addtoit.com \
    --cc=jgg@ziepe.ca \
    --cc=jhubbard@nvidia.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=richard@nod.at \
    --cc=rppt@kernel.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=will@kernel.org \
    --cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).