From: Ira Weiny <ira.weiny@intel.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Catalin Marinas <catalin.marinas@arm.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Will Deacon <will@kernel.org>,
Peter Collingbourne <pcc@google.com>,
Vlastimil Babka <vbabka@suse.cz>,
linux-kernel@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, outreachy@lists.linux.dev,
"Acked-by : Mike Rapoport" <rppt@linux.ibm.com>
Subject: Re: [PATCH v2 1/4] mm/highmem: Fix kernel-doc warnings in highmem*.h
Date: Wed, 25 May 2022 09:03:12 -0700 [thread overview]
Message-ID: <Yo5TQOByKbMbvE8m@iweiny-desk3> (raw)
In-Reply-To: <Yo34GGK62yVkPzZy@linutronix.de>
On Wed, May 25, 2022 at 11:34:16AM +0200, Sebastian Andrzej Siewior wrote:
> On 2022-04-29 08:59:26 [-0700], Ira Weiny wrote:
> > I think some discussion needs to happen around this API.
> >
> > Highmem has little use. I don't think anyone disagrees with Linus there.
> > (Although I think there are still a few users out there.)
>
> arm32 is still built and they have sometimes 1 - 2 GiB of memory.
Yep :-) I was thinking of arm when I said this.
>
> > kmap may be a poor name for an API without the highmem functionality. But
> > perhaps not. One could interpret it to mean simply getting the kernel mapping
> > of the page rather than creating one. After all that is what 64bit has done
> > all along.
> >
> > This interpretation helps when you consider features which attempt to layer the
> > direct map with additional protections like PKS.[1] Those protections mean
> > that a simple page_address() is insufficient to access the direct map.
> >
> > As far as calling kmap() and kmap_atomic() deprecated I'm ok with that if the
> > community is.
> >
> > The current kmap() call sites need work and Fabio's work on auditing them is
> > extremely helpful. That said, if we officially deprecate kmap_atomic() then
> > those sites could be added to the list for rework.
>
> Maybe I oversee something obvious but there is no problem with removing
> kmap_atomic*() and keeping only kmap_local*() around, is there?
No there is not. But some kmap_atomic() sites may have to open code the
preempt_disable() while others may not.
I have not done a full audit of the kmap_atomic() sites but I suspect most
don't really need the preempt_disable() but many may need to. I just don't
know.
Regardless marking it deprecated can stop the growth of kmap_atomic() calls.
> I never intended to deprecated kmap(), only kmap_atomic*() in favour of
> kmap_local*().
Ok. But I do want to see kmap() use removed. The PKS code can't work with
kmap() and in general we are seeing more and more restrictions on the direct
map which may or may not be compatible with kmap(). What I presented at LSFmm
was to turn the kmap* interfaces into a more generic 'get me a temp kernel
address' interface instead of a highmem interface.
Any user who needs a long term address will need something other than kmap().
To that end there was some discussion on making vmap() more efficient or other
alternatives.
First we need to focus on reducing the kmap() call sites. This documentation
change, making kmap() deprecated, will help ensure the kernel does not grow
more of them.
Ira
>
> > Ira
>
> Sebastian
next prev parent reply other threads:[~2022-05-25 16:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-25 16:23 [PATCH v2 0/4] Extend and reorganize Highmem's documentation Fabio M. De Francesco
2022-04-25 16:23 ` [PATCH v2 1/4] mm/highmem: Fix kernel-doc warnings in highmem*.h Fabio M. De Francesco
2022-04-26 7:01 ` Sebastian Andrzej Siewior
2022-04-26 9:43 ` Fabio M. De Francesco
2022-04-26 11:04 ` Sebastian Andrzej Siewior
2022-04-27 5:28 ` Fabio M. De Francesco
2022-04-29 15:59 ` Ira Weiny
2022-05-25 9:34 ` Sebastian Andrzej Siewior
2022-05-25 16:03 ` Ira Weiny [this message]
2022-04-25 16:23 ` [PATCH v2 2/4] Documentation/vm: Include kdocs into highmem.rst Fabio M. De Francesco
2022-04-25 16:23 ` [PATCH v2 3/4] Documentation/vm: Move section from highmem.rst to highmem.h Fabio M. De Francesco
2022-04-25 16:24 ` [PATCH v2 4/4] Documentation/vm: Rework "Temporary Virtual Mappings" section Fabio M. De Francesco
2022-04-26 7:17 ` Sebastian Andrzej Siewior
2022-04-26 10:45 ` Fabio M. De Francesco
2022-04-26 11:47 ` Sebastian Andrzej Siewior
2022-04-26 18:31 ` Fabio M. De Francesco
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=Yo5TQOByKbMbvE8m@iweiny-desk3 \
--to=ira.weiny@intel.com \
--cc=akpm@linux-foundation.org \
--cc=bigeasy@linutronix.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=fmdefrancesco@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=outreachy@lists.linux.dev \
--cc=pcc@google.com \
--cc=rppt@linux.ibm.com \
--cc=vbabka@suse.cz \
--cc=will@kernel.org \
--cc=willy@infradead.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