Skip to content

Commit 6099080

Browse files
committed
Merge feature/dxgkrnl/6.6 into v6.6.87
* commit 'd4ec8a2216634e7c0ca058214febce3a2f029bc6': (56 commits) Include `linux/types.h` in `d3dkmthk.h` drivers: hv: dxgkrnl: Fix crash at hmgrtable_free_handle drivers: hv: dxgkrnl: Do not print error messages when virtual GPU is not present drivers: hv: dxgkrnl: Use pin_user_pages instead of get_user_pages for DMA accessible memory drivers: hv: dxgkrnl: Implement D3DKMTEnumProcesses to match the Windows implementation drivers: hv: dxgkrnl: Fix build breaks when switching to 6.6 kernel due to removed uuid_le_cmp drivers: hv: dxgkrnl: Fix build breaks when switching to 6.6 kernel due to hv_driver remove callback change. drivers: hv: dxgkrnl: Add support for locking a shared allocation by not the owner drivers: hv: dxgkrnl: Retry sending a VM bus packet when there is no place in the ring buffer drivers: hv: dxgkrnl: Fixed the implementation of D3DKMTQueryClockCalibration drivers: hv: dxgkrnl: Fixed coding style issues drivers: hv: dxgkrnl: Implement known escapes drivers: hv: dxgkrnl: Implement D3DDKMTIsFeatureEnabled API drivers: hv: dxgkrnl: Implement the D3DKMTEnumProcesses API drivers: hv: dxgkrnl: Handle process ID in D3DKMTQueryStatistics drivers: hv: dxgkrnl: Added implementation for D3DKMTInvalidateCache drivers: hv: dxgkrnl: Added support for compute only adapters drivers: hv: dxgkrnl: Fixed dxgkrnl to build for the 6.1 kernel drivers: hv: dxgkrnl: Added missed NULL check for resource object drivers: hv: dxgkrnl: Close shared file objects in case of a failure ...
2 parents 0245800 + d4ec8a2 commit 6099080

File tree

20 files changed

+17468
-0
lines changed

20 files changed

+17468
-0
lines changed

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9771,6 +9771,13 @@ F: Documentation/devicetree/bindings/mtd/ti,am654-hbmc.yaml
97719771
F: drivers/mtd/hyperbus/
97729772
F: include/linux/mtd/hyperbus.h
97739773

9774+
Hyper-V vGPU DRIVER
9775+
M: Iouri Tarassov <[email protected]>
9776+
9777+
S: Supported
9778+
F: drivers/hv/dxgkrnl/
9779+
F: include/uapi/misc/d3dkmthk.h
9780+
97749781
HYPERVISOR VIRTUAL CONSOLE DRIVER
97759782
97769783
S: Odd Fixes

drivers/hv/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,6 @@ config HYPERV_BALLOON
5555
help
5656
Select this option to enable Hyper-V Balloon driver.
5757

58+
source "drivers/hv/dxgkrnl/Kconfig"
59+
5860
endmenu

drivers/hv/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
obj-$(CONFIG_HYPERV) += hv_vmbus.o
33
obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o
44
obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o
5+
obj-$(CONFIG_DXGKRNL) += dxgkrnl/
56

67
CFLAGS_hv_trace.o = -I$(src)
78
CFLAGS_hv_balloon.o = -I$(src)

drivers/hv/dxgkrnl/Kconfig

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Configuration for the hyper-v virtual compute driver (dxgkrnl)
3+
#
4+
5+
config DXGKRNL
6+
tristate "Microsoft Paravirtualized GPU support"
7+
depends on HYPERV
8+
depends on 64BIT || COMPILE_TEST
9+
select DMA_SHARED_BUFFER
10+
select SYNC_FILE
11+
help
12+
This driver supports paravirtualized virtual compute devices, exposed
13+
by Microsoft Hyper-V when Linux is running inside of a virtual machine
14+
hosted by Windows. The virtual machines needs to be configured to use
15+
host compute adapters. The driver name is dxgkrnl.
16+
17+
An example of such virtual machine is a Windows Subsystem for
18+
Linux container. When such container is instantiated, the Windows host
19+
assigns compatible host GPU adapters to the container. The corresponding
20+
virtual GPU devices appear on the PCI bus in the container. These
21+
devices are enumerated and accessed by this driver.
22+
23+
Communications with the driver are done by using the Microsoft libdxcore
24+
library, which translates the D3DKMT interface
25+
<https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/d3dkmthk/>
26+
to the driver IOCTLs. The virtual GPU devices are paravirtualized,
27+
which means that access to the hardware is done in the host. The driver
28+
communicates with the host using Hyper-V VM bus communication channels.

drivers/hv/dxgkrnl/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Makefile for the hyper-v compute device driver (dxgkrnl).
3+
4+
obj-$(CONFIG_DXGKRNL) += dxgkrnl.o
5+
dxgkrnl-y := dxgmodule.o hmgr.o misc.o dxgadapter.o ioctl.o dxgvmbus.o dxgprocess.o dxgsyncfile.o

0 commit comments

Comments
 (0)