Re: [PATCH] x86: Remove unnecessary kmap() from sgx_ioc_enclave_init()

From: Dave Hansen
Date: Tue Feb 02 2021 - 13:59:08 EST


On 2/1/21 5:37 PM, ira.weiny@xxxxxxxxx wrote:
> kmap is inefficient and we are trying to reduce the usage in the kernel.
> There is no readily apparent reason why the initp_page page needs to be
> allocated and kmap'ed() but sigstruct needs to be page aligned and token
> 512 byte aligned.

Hi Ira,

It's a *relatively* recent guaranteed, but:

https://www.kernel.org/doc/Documentation/core-api/memory-allocation.rst

says:

> The address of a chunk allocated with `kmalloc` is aligned to at least
> ARCH_KMALLOC_MINALIGN bytes. For sizes which are a power of two, the
> alignment is also guaranteed to be at least the respective size.

So, if you allocate a page with kmalloc(), you get an aligned page. Yay!