[PATCH 0/6] hv: Remove dependencies on guest page size

From: Maya Nakamura
Date: Thu Apr 04 2019 - 21:12:11 EST


The Linux guest page size and hypervisor page size concepts are
different, even though they happen to be the same value on x86. Hyper-V
code mixes up the two, so this patchset begins to address that by
creating and using a set of Hyper-V specific page definitions.

A major benefit of those new definitions is that they support non-x86
architectures, such as ARM64, that use different page sizes. On ARM64,
the guest page size may not be 4096, and Hyper-V always runs with a page
size of 4096.

In this patchset, the first two patches lay the foundation for the
others, creating definitions and preparing for memory allocations of
Hyper-V pages. Subsequent patches apply the definitions where the guest
VM and Hyper-V communicate, and where the code intends to use the
Hyper-V page size. The last two patches set the ring buffer size to a
fixed value, removing the dependencies on the guest page size.

This is the initial set of changes to the Hyper-V code, and future
patches will make additional changes using the same foundation, for
example, replace __vmalloc() and related functions when Hyper-V pages
are intended.

Maya Nakamura (6):
x86: hv: hyperv-tlfs.h: Create and use Hyper-V page definitions
x86: hv: hv_init.c: Replace alloc_page() with kmem_cache_alloc()
hv: vmbus: Replace page definition with Hyper-V specific one
x86: hv: mmu.c: Replace page definitions with Hyper-V specific ones
HID: hv: Remove dependencies on PAGE_SIZE for ring buffer
Input: hv: Remove dependencies on PAGE_SIZE for ring buffer

arch/x86/hyperv/hv_init.c | 38 +++++++++++++++++++--------
arch/x86/hyperv/mmu.c | 15 ++++++-----
arch/x86/include/asm/hyperv-tlfs.h | 12 ++++++++-
drivers/hid/hid-hyperv.c | 4 +--
drivers/hv/hyperv_vmbus.h | 8 +++---
drivers/input/serio/hyperv-keyboard.c | 4 +--
6 files changed, 54 insertions(+), 27 deletions(-)

--
2.17.1