Messages in this thread | | | Date | Fri, 26 Mar 2021 21:45:24 +0200 | From | Jarkko Sakkinen <> | Subject | Re: [PATCH] x86/sgx: Remove unnecessary kmap() from sgx_ioc_enclave_init() |
| |
On Wed, Mar 24, 2021 at 11:22:46AM -0700, ira.weiny@intel.com wrote: > From: Ira Weiny <ira.weiny@intel.com> > > kmap is inefficient and is being replaced by kmap_local_page(), if > possible.
Nit: just saying that something is inefficient is not enough. Always should have something to back it up.
> That said, there is no readily apparent reason why initp_page needs to > be allocated and kmap'ed() except that 'sigstruct' needs to be page > aligned and 'token' 512 byte aligned. > > Rather than change this kmap() to kmap_local_page() use kmalloc() > instead because kmalloc() can gives this alignment when allocating > PAGE_SIZE bytes. > > Remove the alloc_page()/kmap() and replace with kmalloc(PAGE_SIZE, ...) > to get a page aligned kernel address. > > In addition add a comment to document the alignment requirements so that > others don't attempt to 'fix' this again.
I'm a bit confused based on this commit message. Why is kmap_local_page() better, and why kmalloc() is the ultimate choice of all three options?
> > Cc: Sean Christopherson <seanjc@google.com> > Cc: Jethro Beekman <jethro@fortanix.com> > Cc: Jarkko Sakkinen <jarkko@kernel.org> > Cc: Dave Hansen <dave.hansen@intel.com> > Signed-off-by: Ira Weiny <ira.weiny@intel.com>
/Jarkko
| |