mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-01-31 13:39:47 +00:00
580.94.13
This commit is contained in:
@@ -61,6 +61,7 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += mmu_notifier_ops_arch_invalidate_secondary_tlb
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += migrate_vma_added_flags
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += migrate_device_range
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += handle_mm_fault_has_pt_regs_arg
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += get_dev_pagemap_has_pgmap_arg
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_unified_nodes
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_home_node
|
||||
NV_CONFTEST_TYPE_COMPILE_TESTS += mpol_preferred_many_present
|
||||
|
||||
@@ -132,6 +132,12 @@
|
||||
|
||||
#define NV_UVM_GFP_FLAGS (GFP_KERNEL | __GFP_NOMEMALLOC)
|
||||
|
||||
#if defined(NV_GET_DEV_PAGEMAP_HAS_PGMAP_ARG)
|
||||
#define NV_GET_DEV_PAGEMAP(pfn) get_dev_pagemap(pfn, NULL)
|
||||
#else
|
||||
#define NV_GET_DEV_PAGEMAP get_dev_pagemap
|
||||
#endif
|
||||
|
||||
/* Return a nanosecond-precise value */
|
||||
static inline NvU64 NV_GETTIME(void)
|
||||
{
|
||||
|
||||
@@ -43,8 +43,6 @@
|
||||
|
||||
#ifdef UVM_MIGRATE_VMA_SUPPORTED
|
||||
|
||||
static struct kmem_cache *g_uvm_migrate_vma_state_cache __read_mostly;
|
||||
|
||||
static const gfp_t g_migrate_vma_gfp_flags = NV_UVM_GFP_FLAGS | GFP_HIGHUSER_MOVABLE | __GFP_THISNODE;
|
||||
|
||||
static uvm_sgt_t *uvm_select_sgt(uvm_processor_id_t src_id, int src_nid, migrate_vma_state_t *state)
|
||||
@@ -1497,7 +1495,7 @@ NV_STATUS uvm_migrate_pageable(uvm_migrate_args_t *uvm_migrate_args)
|
||||
uvm_migrate_args->dst_node_id = uvm_gpu_numa_node(gpu);
|
||||
}
|
||||
|
||||
state = nv_kmem_cache_zalloc(g_uvm_migrate_vma_state_cache, NV_UVM_GFP_FLAGS);
|
||||
state = uvm_kvmalloc_zero(sizeof(migrate_vma_state_t));
|
||||
if (!state)
|
||||
return NV_ERR_NO_MEMORY;
|
||||
|
||||
@@ -1519,22 +1517,17 @@ NV_STATUS uvm_migrate_pageable(uvm_migrate_args_t *uvm_migrate_args)
|
||||
out:
|
||||
uvm_kvfree(state->dma.sgt_cpu);
|
||||
uvm_kvfree(state->cpu_page_mask);
|
||||
kmem_cache_free(g_uvm_migrate_vma_state_cache, state);
|
||||
uvm_kvfree(state);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
NV_STATUS uvm_migrate_pageable_init(void)
|
||||
{
|
||||
g_uvm_migrate_vma_state_cache = NV_KMEM_CACHE_CREATE("migrate_vma_state_t", migrate_vma_state_t);
|
||||
if (!g_uvm_migrate_vma_state_cache)
|
||||
return NV_ERR_NO_MEMORY;
|
||||
|
||||
return NV_OK;
|
||||
}
|
||||
|
||||
void uvm_migrate_pageable_exit(void)
|
||||
{
|
||||
kmem_cache_destroy_safe(&g_uvm_migrate_vma_state_cache);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -360,7 +360,7 @@ static NV_STATUS alloc_device_p2p_mem(uvm_gpu_t *gpu,
|
||||
// a reference to them, so take one now if using DEVICE_COHERENT pages.
|
||||
if (gpu->parent->cdmm_enabled) {
|
||||
get_page(page);
|
||||
get_dev_pagemap(page_to_pfn(page), NULL);
|
||||
NV_GET_DEV_PAGEMAP(page_to_pfn(page));
|
||||
}
|
||||
#else
|
||||
// CDMM P2PDMA will never be enabled for this case
|
||||
|
||||
Reference in New Issue
Block a user