Thread (9 messages) 9 messages, 2 authors, 2021-07-14

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

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help