mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Add support for unsupported UVM ioctls used by cuda-tests/run_smoke.sh.
Specifically, these are UVM_UNSET_PREFERRED_LOCATION, UVM_UNSET_ACCESSED_BY, and UVM_MIGRATE ioctls. PiperOrigin-RevId: 663543536
This commit is contained in:
@@ -36,7 +36,10 @@ const (
|
||||
UVM_UNREGISTER_GPU = 38
|
||||
UVM_PAGEABLE_MEM_ACCESS = 39
|
||||
UVM_SET_PREFERRED_LOCATION = 42
|
||||
UVM_UNSET_PREFERRED_LOCATION = 43
|
||||
UVM_DISABLE_READ_DUPLICATION = 45
|
||||
UVM_UNSET_ACCESSED_BY = 47
|
||||
UVM_MIGRATE = 51
|
||||
UVM_MIGRATE_RANGE_GROUP = 53
|
||||
UVM_TOOLS_READ_PROCESS_MEMORY = 62
|
||||
UVM_TOOLS_WRITE_PROCESS_MEMORY = 63
|
||||
@@ -260,6 +263,14 @@ type UVM_SET_PREFERRED_LOCATION_PARAMS_V550 struct {
|
||||
RMStatus uint32
|
||||
}
|
||||
|
||||
// +marshal
|
||||
type UVM_UNSET_PREFERRED_LOCATION_PARAMS struct {
|
||||
RequestedBase uint64 `nvproxy:"same"`
|
||||
Length uint64
|
||||
RMStatus uint32
|
||||
Pad0 [4]byte
|
||||
}
|
||||
|
||||
// +marshal
|
||||
type UVM_DISABLE_READ_DUPLICATION_PARAMS struct {
|
||||
RequestedBase uint64 `nvproxy:"same"`
|
||||
@@ -268,6 +279,50 @@ type UVM_DISABLE_READ_DUPLICATION_PARAMS struct {
|
||||
Pad0 [4]byte
|
||||
}
|
||||
|
||||
// +marshal
|
||||
type UVM_UNSET_ACCESSED_BY_PARAMS struct {
|
||||
RequestedBase uint64 `nvproxy:"same"`
|
||||
Length uint64
|
||||
AccessedByUUID NvUUID
|
||||
RMStatus uint32
|
||||
Pad0 [4]byte
|
||||
}
|
||||
|
||||
// +marshal
|
||||
type UVM_MIGRATE_PARAMS struct {
|
||||
Base uint64 `nvproxy:"same"`
|
||||
Length uint64
|
||||
DestinationUUID NvUUID
|
||||
Flags uint32
|
||||
_ [4]byte
|
||||
SemaphoreAddress uint64
|
||||
SemaphorePayload uint32
|
||||
CPUNumaNode uint32
|
||||
UserSpaceStart uint64
|
||||
UserSpaceLength uint64
|
||||
RMStatus uint32
|
||||
_ [4]byte
|
||||
}
|
||||
|
||||
// UVM_MIGRATE_PARAMS_V550 is the updated version of
|
||||
// UVM_MIGRATE_PARAMS since 550.40.07.
|
||||
//
|
||||
// +marshal
|
||||
type UVM_MIGRATE_PARAMS_V550 struct {
|
||||
Base uint64 `nvproxy:"UVM_MIGRATE_PARAMS"`
|
||||
Length uint64
|
||||
DestinationUUID NvUUID
|
||||
Flags uint32
|
||||
_ [4]byte
|
||||
SemaphoreAddress uint64
|
||||
SemaphorePayload uint32
|
||||
CPUNumaNode int32
|
||||
UserSpaceStart uint64
|
||||
UserSpaceLength uint64
|
||||
RMStatus uint32
|
||||
_ [4]byte
|
||||
}
|
||||
|
||||
// +marshal
|
||||
type UVM_MIGRATE_RANGE_GROUP_PARAMS struct {
|
||||
RangeGroupID uint64 `nvproxy:"same"`
|
||||
|
||||
@@ -170,10 +170,22 @@ func Filters() seccomp.SyscallRules {
|
||||
seccomp.NonNegativeFD{},
|
||||
seccomp.EqualTo(nvgpu.UVM_SET_PREFERRED_LOCATION),
|
||||
},
|
||||
seccomp.PerArg{
|
||||
seccomp.NonNegativeFD{},
|
||||
seccomp.EqualTo(nvgpu.UVM_UNSET_PREFERRED_LOCATION),
|
||||
},
|
||||
seccomp.PerArg{
|
||||
seccomp.NonNegativeFD{},
|
||||
seccomp.EqualTo(nvgpu.UVM_DISABLE_READ_DUPLICATION),
|
||||
},
|
||||
seccomp.PerArg{
|
||||
seccomp.NonNegativeFD{},
|
||||
seccomp.EqualTo(nvgpu.UVM_UNSET_ACCESSED_BY),
|
||||
},
|
||||
seccomp.PerArg{
|
||||
seccomp.NonNegativeFD{},
|
||||
seccomp.EqualTo(nvgpu.UVM_MIGRATE),
|
||||
},
|
||||
seccomp.PerArg{
|
||||
seccomp.NonNegativeFD{},
|
||||
seccomp.EqualTo(nvgpu.UVM_MIGRATE_RANGE_GROUP),
|
||||
|
||||
@@ -218,7 +218,10 @@ func Init() {
|
||||
nvgpu.UVM_UNREGISTER_GPU: uvmIoctlSimple[nvgpu.UVM_UNREGISTER_GPU_PARAMS],
|
||||
nvgpu.UVM_PAGEABLE_MEM_ACCESS: uvmIoctlSimple[nvgpu.UVM_PAGEABLE_MEM_ACCESS_PARAMS],
|
||||
nvgpu.UVM_SET_PREFERRED_LOCATION: uvmIoctlSimple[nvgpu.UVM_SET_PREFERRED_LOCATION_PARAMS],
|
||||
nvgpu.UVM_UNSET_PREFERRED_LOCATION: uvmIoctlSimple[nvgpu.UVM_UNSET_PREFERRED_LOCATION_PARAMS],
|
||||
nvgpu.UVM_DISABLE_READ_DUPLICATION: uvmIoctlSimple[nvgpu.UVM_DISABLE_READ_DUPLICATION_PARAMS],
|
||||
nvgpu.UVM_UNSET_ACCESSED_BY: uvmIoctlSimple[nvgpu.UVM_UNSET_ACCESSED_BY_PARAMS],
|
||||
nvgpu.UVM_MIGRATE: uvmIoctlSimple[nvgpu.UVM_MIGRATE_PARAMS],
|
||||
nvgpu.UVM_MIGRATE_RANGE_GROUP: uvmIoctlSimple[nvgpu.UVM_MIGRATE_RANGE_GROUP_PARAMS],
|
||||
nvgpu.UVM_MAP_DYNAMIC_PARALLELISM_REGION: uvmIoctlSimple[nvgpu.UVM_MAP_DYNAMIC_PARALLELISM_REGION_PARAMS],
|
||||
nvgpu.UVM_UNMAP_EXTERNAL: uvmIoctlSimple[nvgpu.UVM_UNMAP_EXTERNAL_PARAMS],
|
||||
@@ -413,7 +416,10 @@ func Init() {
|
||||
nvgpu.UVM_UNREGISTER_GPU: getStructName(nvgpu.UVM_UNREGISTER_GPU_PARAMS{}),
|
||||
nvgpu.UVM_PAGEABLE_MEM_ACCESS: getStructName(nvgpu.UVM_PAGEABLE_MEM_ACCESS_PARAMS{}),
|
||||
nvgpu.UVM_SET_PREFERRED_LOCATION: getStructName(nvgpu.UVM_SET_PREFERRED_LOCATION_PARAMS{}),
|
||||
nvgpu.UVM_UNSET_PREFERRED_LOCATION: getStructName(nvgpu.UVM_UNSET_PREFERRED_LOCATION_PARAMS{}),
|
||||
nvgpu.UVM_DISABLE_READ_DUPLICATION: getStructName(nvgpu.UVM_DISABLE_READ_DUPLICATION_PARAMS{}),
|
||||
nvgpu.UVM_UNSET_ACCESSED_BY: getStructName(nvgpu.UVM_UNSET_ACCESSED_BY_PARAMS{}),
|
||||
nvgpu.UVM_MIGRATE: getStructName(nvgpu.UVM_MIGRATE_PARAMS{}),
|
||||
nvgpu.UVM_MIGRATE_RANGE_GROUP: getStructName(nvgpu.UVM_MIGRATE_RANGE_GROUP_PARAMS{}),
|
||||
nvgpu.UVM_MAP_DYNAMIC_PARALLELISM_REGION: getStructName(nvgpu.UVM_MAP_DYNAMIC_PARALLELISM_REGION_PARAMS{}),
|
||||
nvgpu.UVM_UNMAP_EXTERNAL: getStructName(nvgpu.UVM_UNMAP_EXTERNAL_PARAMS{}),
|
||||
@@ -624,6 +630,7 @@ func Init() {
|
||||
abi.controlCmd[(nvgpu.NV2081_BINAPI<<16)|0x0108] = rmControlSimple
|
||||
abi.controlCmd[nvgpu.NV0000_CTRL_CMD_SYSTEM_GET_P2P_CAPS] = ctrlClientSystemGetP2PCapsV550
|
||||
abi.uvmIoctl[nvgpu.UVM_SET_PREFERRED_LOCATION] = uvmIoctlSimple[nvgpu.UVM_SET_PREFERRED_LOCATION_PARAMS_V550]
|
||||
abi.uvmIoctl[nvgpu.UVM_MIGRATE] = uvmIoctlSimple[nvgpu.UVM_MIGRATE_PARAMS_V550]
|
||||
|
||||
prevNames := abi.getStructNames
|
||||
abi.getStructNames = func() *driverStructNames {
|
||||
@@ -639,6 +646,7 @@ func Init() {
|
||||
names.controlNames[(nvgpu.NV2081_BINAPI<<16)|0x0108] = nil
|
||||
names.controlNames[nvgpu.NV0000_CTRL_CMD_SYSTEM_GET_P2P_CAPS] = getStructName(nvgpu.NV0000_CTRL_SYSTEM_GET_P2P_CAPS_PARAMS_V550{})
|
||||
names.uvmNames[nvgpu.UVM_SET_PREFERRED_LOCATION] = getStructName(nvgpu.UVM_SET_PREFERRED_LOCATION_PARAMS_V550{})
|
||||
names.uvmNames[nvgpu.UVM_MIGRATE] = getStructName(nvgpu.UVM_MIGRATE_PARAMS_V550{})
|
||||
|
||||
return names
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user