[PATCH v4 00/11] Hyper-V: Support PAGE_SIZE larger than 4K

From: Boqun Feng
Date: Tue Sep 15 2020 - 23:48:49 EST


This patchset add the necessary changes to support guests whose page
size is larger than 4K. And the main architecture which we develop this
for is ARM64 (also it's the architecture that I use to test this
feature).

Previous version:
v1: https://lore.kernel.org/lkml/20200721014135.84140-1-boqun.feng@xxxxxxxxx/
v2: https://lore.kernel.org/lkml/20200902030107.33380-1-boqun.feng@xxxxxxxxx
v3: https://lore.kernel.org/lkml/20200910143455.109293-1-boqun.feng@xxxxxxxxx/

Changes since v3:

* Fix a bug that ringbuffer sizes are not page-aligned when
PAGE_SIZE = 16k. Drop the Acked-by and Reviewed-by tags for
those patches accordingly.

* Code improvement as per suggestion from Michael Kelley.

I've done some tests with PAGE_SIZE=64k and PAGE_SIZE=16k configurations
on ARM64 guests (with Michael's patchset[1] for ARM64 Hyper-V guest
support), everything worked fine ;-)

Looking forwards to comments and suggestions!

Regards,
Boqun

[1]: https://lore.kernel.org/lkml/1598287583-71762-1-git-send-email-mikelley@xxxxxxxxxxxxx/

Boqun Feng (11):
Drivers: hv: vmbus: Always use HV_HYP_PAGE_SIZE for gpadl
Drivers: hv: vmbus: Move __vmbus_open()
Drivers: hv: vmbus: Introduce types of GPADL
Drivers: hv: Use HV_HYP_PAGE in hv_synic_enable_regs()
Drivers: hv: vmbus: Move virt_to_hvpfn() to hyperv header
hv: hyperv.h: Introduce some hvpfn helper functions
hv_netvsc: Use HV_HYP_PAGE_SIZE for Hyper-V communication
Input: hyperv-keyboard: Use VMBUS_RING_SIZE() for ringbuffer sizes
HID: hyperv: Use VMBUS_RING_SIZE() for ringbuffer sizes
Driver: hv: util: Use VMBUS_RING_SIZE() for ringbuffer sizes
scsi: storvsc: Support PAGE_SIZE larger than 4K

drivers/hid/hid-hyperv.c | 4 +-
drivers/hv/channel.c | 461 ++++++++++++++++----------
drivers/hv/hv.c | 4 +-
drivers/hv/hv_util.c | 11 +-
drivers/input/serio/hyperv-keyboard.c | 4 +-
drivers/net/hyperv/netvsc.c | 2 +-
drivers/net/hyperv/netvsc_drv.c | 46 +--
drivers/net/hyperv/rndis_filter.c | 13 +-
drivers/scsi/storvsc_drv.c | 56 +++-
include/linux/hyperv.h | 68 +++-
10 files changed, 442 insertions(+), 227 deletions(-)

--
2.28.0