mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-02-03 06:57:27 +00:00
560.28.03
This commit is contained in:
@@ -781,15 +781,6 @@ static NV_STATUS uvm_va_range_enable_peer_managed(uvm_va_range_t *va_range, uvm_
|
||||
|
||||
|
||||
for_each_va_block_in_va_range(va_range, va_block) {
|
||||
// TODO: Bug 1767224: Refactor the uvm_va_block_set_accessed_by logic
|
||||
// into uvm_va_block_enable_peer.
|
||||
uvm_mutex_lock(&va_block->lock);
|
||||
status = uvm_va_block_enable_peer(va_block, gpu0, gpu1);
|
||||
uvm_mutex_unlock(&va_block->lock);
|
||||
|
||||
if (status != NV_OK)
|
||||
return status;
|
||||
|
||||
// For UVM-Lite at most one GPU needs to map the peer GPU if it's the
|
||||
// preferred location, but it doesn't hurt to just try mapping both.
|
||||
if (gpu0_accessed_by) {
|
||||
@@ -868,9 +859,9 @@ static void uvm_va_range_disable_peer_managed(uvm_va_range_t *va_range, uvm_gpu_
|
||||
// preferred location. If peer mappings are being disabled to the
|
||||
// preferred location, then unmap the other GPU.
|
||||
// Nothing to do otherwise.
|
||||
if (uvm_id_equal(uvm_va_range_get_policy(va_range)->preferred_location, gpu0->id))
|
||||
if (uvm_va_policy_preferred_location_equal(uvm_va_range_get_policy(va_range), gpu0->id, NUMA_NO_NODE))
|
||||
uvm_lite_gpu_to_unmap = gpu1;
|
||||
else if (uvm_id_equal(uvm_va_range_get_policy(va_range)->preferred_location, gpu1->id))
|
||||
else if (uvm_va_policy_preferred_location_equal(uvm_va_range_get_policy(va_range), gpu1->id, NUMA_NO_NODE))
|
||||
uvm_lite_gpu_to_unmap = gpu0;
|
||||
else
|
||||
return;
|
||||
@@ -951,7 +942,7 @@ static void va_range_unregister_gpu_managed(uvm_va_range_t *va_range, uvm_gpu_t
|
||||
// Reset preferred location and accessed-by of VA ranges if needed
|
||||
// Note: ignoring the return code of uvm_va_range_set_preferred_location since this
|
||||
// will only return on error when setting a preferred location, not on a reset
|
||||
if (uvm_id_equal(uvm_va_range_get_policy(va_range)->preferred_location, gpu->id))
|
||||
if (uvm_va_policy_preferred_location_equal(uvm_va_range_get_policy(va_range), gpu->id, NUMA_NO_NODE))
|
||||
(void)uvm_va_range_set_preferred_location(va_range, UVM_ID_INVALID, NUMA_NO_NODE, mm, NULL);
|
||||
|
||||
uvm_va_range_unset_accessed_by(va_range, gpu->id, NULL);
|
||||
@@ -1683,7 +1674,7 @@ void uvm_va_range_unset_accessed_by(uvm_va_range_t *va_range,
|
||||
// If a UVM-Lite GPU is being removed from the accessed_by mask, it will
|
||||
// also stop being a UVM-Lite GPU unless it's also the preferred location.
|
||||
if (uvm_processor_mask_test(&va_range->uvm_lite_gpus, processor_id) &&
|
||||
!uvm_id_equal(uvm_va_range_get_policy(va_range)->preferred_location, processor_id)) {
|
||||
!uvm_va_policy_preferred_location_equal(uvm_va_range_get_policy(va_range), processor_id, NUMA_NO_NODE)) {
|
||||
range_unmap(va_range, processor_id, out_tracker);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user