linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Walmsley <paul.walmsley@sifive.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
	Alexandre Ghiti <alex@ghiti.fr>
Subject: Re: [PATCH] riscv: kbuild: add virtual memory system selection
Date: Tue, 6 Aug 2019 17:02:03 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.21.9999.1908061648220.13971@viisi.sifive.com> (raw)
In-Reply-To: <20190802084453.GA1410@infradead.org>

On Fri, 2 Aug 2019, Christoph Hellwig wrote:

> On Fri, Jul 26, 2019 at 01:00:49PM -0700, Paul Walmsley wrote:
> > 
> > The RISC-V specifications currently define three virtual memory
> > translation systems: Sv32, Sv39, and Sv48.  Sv32 is currently specific
> > to 32-bit systems; Sv39 and Sv48 are currently specific to 64-bit
> > systems.  The current kernel only supports Sv32 and Sv39, but we'd
> > like to start preparing for Sv48.  As an initial step, allow the
> > virtual memory translation system to be selected via kbuild, and stop
> > the build if an option is selected that the kernel doen't currently
> > support.
> > 
> > This patch currently has no functional impact.
> 
> It cause the user to be able to select a config which thus won't build.
> So it is not just useless, which already is a reason not to merge it,

The rationale is to encourage others to start laying the groundwork for 
future Sv48 support.  The immediate trigger for it was Alex's mmap 
randomization support patch series, which needs to set some Kconfig 
options differently depending on the selection of Sv32/39/48.  

> but actively harmful, which is even worse.

Reflecting on this assertion, the only case that I could come up with is 
that randconfig or allyesconfig build testing could fail.  Is this the 
case that you're thinking of, or is there a different one?  If that's the 
one, I do agree that it would be best to avoid this case, and it looks 
like there's no obvious way to work around that issue.

> Even if we assume we want to implement Sv48 eventually (which seems
> to be a bit off), we need to make this a runtime choice and not a
> compile time one to not balloon the number of configs that distributions
> (and kernel developers) need to support.

The expectation is that kernels that support multiple virtual memory 
system modes at runtime will probably incur either a performance or a 
memory layout penalty for doing so.  So performance-sensitive embedded 
applications will select only the model that they use, while distribution 
kernels will likely take the performance hit for broader single-kernel 
support.


- Paul

  reply	other threads:[~2019-08-07  0:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-26 20:00 Paul Walmsley
2019-07-28 13:38 ` Bin Meng
2019-07-31 19:37   ` Paul Walmsley
2019-08-01  8:56     ` Bin Meng
2019-08-02  8:44 ` Christoph Hellwig
2019-08-07  0:02   ` Paul Walmsley [this message]
2019-08-07  5:42     ` Christoph Hellwig
2019-08-07  7:04       ` Alexandre Ghiti
2019-08-07 15:12         ` Christoph Hellwig
2019-08-07 16:20           ` Palmer Dabbelt
2019-08-07 16:42         ` Paul Walmsley

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=alpine.DEB.2.21.9999.1908061648220.13971@viisi.sifive.com \
    --to=paul.walmsley@sifive.com \
    --cc=alex@ghiti.fr \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --subject='Re: [PATCH] riscv: kbuild: add virtual memory system selection' \
    /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

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).