Pull Hyper-V updates from Sasha Levin: - support for new VMBus protocols (Andrea Parri) - hibernation support (Dexuan Cui) - latency testing framework (Branden Bonaby) - decoupling Hyper-V page size from guest page size (Himadri Pandya) * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: (22 commits) Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic drivers/hv: Replace binary semaphore with mutex drivers: iommu: hyperv: Make HYPERV_IOMMU only available on x86 HID: hyperv: Add the support of hibernation hv_balloon: Add the support of hibernation x86/hyperv: Implement hv_is_hibernation_supported() Drivers: hv: balloon: Remove dependencies on guest page size Drivers: hv: vmbus: Remove dependencies on guest page size x86: hv: Add function to allocate zeroed page for Hyper-V Drivers: hv: util: Specify ring buffer size using Hyper-V page size Drivers: hv: Specify receive buffer size using Hyper-V page size tools: hv: add vmbus testing tool drivers: hv: vmbus: Introduce latency testing video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver video: hyperv: hyperv_fb: Obtain screen resolution from Hyper-V host hv_netvsc: Add the support of hibernation hv_sock: Add the support of hibernation video: hyperv_fb: Add the support of hibernation scsi: storvsc: Add the support of hibernation Drivers: hv: vmbus: Add module parameter to cap the VMBus version ...
Showing the changes to include/linux (1 of 27 files). Show all
Unified · Split
| @@ -182,19 +182,21 @@ static inline u32 hv_get_avail_to_write_percent( · 181 unmodified lines | |||
| 182 | * 2 . 4 (Windows 8) | 182 | * 2 . 4 (Windows 8) |
| 183 | * 3 . 0 (Windows 8 R2) | 183 | * 3 . 0 (Windows 8 R2) |
| 184 | * 4 . 0 (Windows 10) | 184 | * 4 . 0 (Windows 10) |
| 185 | * 4 . 1 (Windows 10 RS3) | ||
| 185 | * 5 . 0 (Newer Windows 10) | 186 | * 5 . 0 (Newer Windows 10) |
| 187 | * 5 . 1 (Windows 10 RS4) | ||
| 188 | * 5 . 2 (Windows Server 2019, RS5) | ||
| 186 | */ | 189 | */ |
| 187 | 190 | ||
| 188 | #define VERSION_WS2008 ((0 << 16) | (13)) | 191 | #define VERSION_WS2008 ((0 << 16) | (13)) |
| 189 | #define VERSION_WIN7 ((1 << 16) | (1)) | 192 | #define VERSION_WIN7 ((1 << 16) | (1)) |
| 190 | #define VERSION_WIN8 ((2 << 16) | (4)) | 193 | #define VERSION_WIN8 ((2 << 16) | (4)) |
| 191 | #define VERSION_WIN8_1 ((3 << 16) | (0)) | 194 | #define VERSION_WIN8_1 ((3 << 16) | (0)) |
| 192 | #define VERSION_WIN10 ((4 << 16) | (0)) | 195 | #define VERSION_WIN10 ((4 << 16) | (0)) |
| 196 | #define VERSION_WIN10_V4_1 ((4 << 16) | (1)) | ||
| 193 | #define VERSION_WIN10_V5 ((5 << 16) | (0)) | 197 | #define VERSION_WIN10_V5 ((5 << 16) | (0)) |
| 194 | 198 | #define VERSION_WIN10_V5_1 ((5 << 16) | (1)) | |
| 195 | #define VERSION_INVAL -1 | 199 | #define VERSION_WIN10_V5_2 ((5 << 16) | (2)) |
| 196 | |||
| 197 | #define VERSION_CURRENT VERSION_WIN10_V5 | ||
| 198 | 200 | ||
| 199 | /* Make maximum size of pipe payload of 16K */ | 201 | /* Make maximum size of pipe payload of 16K */ |
| 200 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) | 202 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) |
| @@ -932,6 +934,21 @@ struct vmbus_channel { · 731 unmodified lines | |||
| 932 | * full outbound ring buffer. | 934 | * full outbound ring buffer. |
| 933 | */ | 935 | */ |
| 934 | u64 out_full_first; | 936 | u64 out_full_first; |
| 937 | |||
| 938 | /* enabling/disabling fuzz testing on the channel (default is false)*/ | ||
| 939 | bool fuzz_testing_state; | ||
| 940 | |||
| 941 | /* | ||
| 942 | * Interrupt delay will delay the guest from emptying the ring buffer | ||
| 943 | * for a specific amount of time. The delay is in microseconds and will | ||
| 944 | * be between 1 to a maximum of 1000, its default is 0 (no delay). | ||
| 945 | * The Message delay will delay guest reading on a per message basis | ||
| 946 | * in microseconds between 1 to 1000 with the default being 0 | ||
| 947 | * (no delay). | ||
| 948 | */ | ||
| 949 | u32 fuzz_testing_interrupt_delay; | ||
| 950 | u32 fuzz_testing_message_delay; | ||
| 951 | |||
| 935 | }; | 952 | }; |
| 936 | 953 | ||
| 937 | static inline bool is_hvsock_channel(const struct vmbus_channel *c) | 954 | static inline bool is_hvsock_channel(const struct vmbus_channel *c) |
| @@ -1180,6 +1197,10 @@ struct hv_device { · 242 unmodified lines | |||
| 1180 | 1197 | ||
| 1181 | struct vmbus_channel *channel; | 1198 | struct vmbus_channel *channel; |
| 1182 | struct kset *channels_kset; | 1199 | struct kset *channels_kset; |
| 1200 | |||
| 1201 | /* place holder to keep track of the dir for hv device in debugfs */ | ||
| 1202 | struct dentry *debug_dir; | ||
| 1203 | |||
| 1183 | }; | 1204 | }; |
| 1184 | 1205 | ||
| 1185 | 1206 | ||