Re: [PATCH 1/3] Drivers: hv: Make portions of Hyper-V init code be arch neutral
From: Wei Liu <wei.liu@kernel.org>
Date: 2021-07-12 18:40:52
Also in:
linux-hyperv, lkml
From: Wei Liu <wei.liu@kernel.org>
Date: 2021-07-12 18:40:52
Also in:
linux-hyperv, lkml
On Mon, Jul 12, 2021 at 06:24:00PM +0000, Wei Liu wrote:
On Sun, Jul 11, 2021 at 08:25:14PM -0700, Michael Kelley wrote: [...]quoted
+int hv_common_cpu_init(unsigned int cpu) +{ + void **inputarg, **outputarg; + u64 msr_vp_index; + gfp_t flags; + int pgcount = hv_root_partition ? 2 : 1; + + /* hv_cpu_init() can be called with IRQs disabled from hv_resume() */ + flags = irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL; + + inputarg = (void **)this_cpu_ptr(hyperv_pcpu_input_arg); + *inputarg = kmalloc(pgcount * HV_HYP_PAGE_SIZE, flags);This is changed from alloc_pages to kmalloc. Does it ensure the alignment is still correct?
kmalloc is rather complex and can be backed by either SLUB, SLAB or SLOB, all of which differ from the others. I _think_ for large allocations (> 1 native page) they tend to pass the request on to the page allocator, but still there is a level of indirection. If the host page size is 64KiB, while the allocation is only 4KiB or 8KiB, could there be a chance that they become misaligned? Wei.
Wei.