Re: [PATCH v5 00/38] New page table range API

From: Matthew Wilcox
Date: Wed Jul 12 2023 - 01:29:38 EST


On Tue, Jul 11, 2023 at 05:24:40PM +0200, Claudio Imbrenda wrote:
> On Tue, 11 Jul 2023 13:36:27 +0100
> Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> > > I think we do use PG_arch_1 on s390 for our secure page handling and
> > > making this perf folio instead of physical page really seems wrong
> > > and it probably breaks this code.
> >
> > Per-page flags are going away in the next few years, so you're going to
>
> For each 4k physical page frame, we need to keep track whether it is
> secure or not.

Do you? Wouldn't it make more sense to track that per allocation instead
of per page? ie if we allocate a 16kB anon folio for a VMA, don't you
want the entire folio to be marked as secure vs insecure?

I don't really know what secure means in this context. I think it has
something to do with which of the VM or the hypervisor can access it, but
it feels like something new that I've never had properly explained to me.

> A bit in struct page seems the most logical choice. If that's not
> possible anymore, how would you propose we should do?

The plan is to shrink struct page down to a single pointer (which
includes a few tag bits to say what type that pointer is -- a page
table, anon mem, file mem, slab, etc). So there won't be any bits
available for something like "secure or not". You could use a side
structure if you really need to keep track on a per page basis.