[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3f096ba0-b6f0-4db7-9d65-ba0550eb98b1@redhat.com>
Date: Fri, 18 Oct 2024 21:27:04 +0200
From: David Hildenbrand <david@...hat.com>
To: Joseph Salisbury <joseph.salisbury@...cle.com>,
Ryan Roberts <ryan.roberts@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Anshuman Khandual <anshuman.khandual@....com>,
Ard Biesheuvel <ardb@...nel.org>, Catalin Marinas <catalin.marinas@....com>,
Greg Marsden <greg.marsden@...cle.com>, Ivan Ivanov <ivan.ivanov@...e.com>,
Kalesh Singh <kaleshsingh@...gle.com>, Marc Zyngier <maz@...nel.org>,
Mark Rutland <mark.rutland@....com>, Matthias Brugger <mbrugger@...e.com>,
Miroslav Benes <mbenes@...e.cz>, Will Deacon <will@...nel.org>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-mm@...ck.org
Subject: Re: [External] : Re: [RFC PATCH v1 00/57] Boot-time page size
selection for arm64
>>> Hi Ryan,
>>>
>>> First off, this is excellent work! Your cover page was very detailed
>>> and made the patch set easier to understand.
>>>
>>> Some questions/comments:
>>>
>>> Once a kernel is booted with a certain page size, could there be issues
>>> if it is booted later with a different page size? How about if this is
>>> done frequently?
>>
>> I think that is the reason why you are only given the option in RHEL
>> to select the kernel (4K vs. 64K) to use at install time.
>>
>> Software can easily use a different data format for persistance based
>> on the base page size. I would suspect DBs might be the usual suspects.
>>
>> One example is swap space I think, where the base page size used when
>> formatting the device is used, and it cannot be used with a different
>> page size unless reformatting it.
>>
>> So ... one has to be a bit careful ...
>>
> Yes, that is what I was thinking. Once a userspace process does an I/O
> and if it is based on PAGE_SIZE things can go south. I think this is
> not an issue with THP, so maybe it's possible with boot-time page selection?
THP is a different beast and has different semantics: the base page size
doesn't change: the result of getpagesize() is unmodified ("transparent").
One would have to emulate for a given user space process a different
page size ... and Ryan can likely tell some stories about that.
Not that I consider it reasonable to have dynamic page sizes in the
kernel and then try emulating a different one for all user space.
--
Cheers,
David / dhildenb
Powered by blists - more mailing lists