mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2024-12-02 09:24:21 +01:00
113 lines
4.3 KiB
Plaintext
113 lines
4.3 KiB
Plaintext
###########################################################################
|
|
# Kbuild fragment for nvidia-uvm.ko
|
|
###########################################################################
|
|
|
|
UVM_BUILD_TYPE = release
|
|
|
|
#
|
|
# Define NVIDIA_UVM_{SOURCES,OBJECTS}
|
|
#
|
|
|
|
NVIDIA_UVM_OBJECTS =
|
|
|
|
include $(src)/nvidia-uvm/nvidia-uvm-sources.Kbuild
|
|
NVIDIA_UVM_OBJECTS += $(patsubst %.c,%.o,$(NVIDIA_UVM_SOURCES))
|
|
|
|
# Some linux kernel functions rely on being built with optimizations on and
|
|
# to work around this we put wrappers for them in a separate file that's built
|
|
# with optimizations on in debug builds and skipped in other builds.
|
|
# Notably gcc 4.4 supports per function optimization attributes that would be
|
|
# easier to use, but is too recent to rely on for now.
|
|
NVIDIA_UVM_DEBUG_OPTIMIZED_SOURCE := nvidia-uvm/uvm_debug_optimized.c
|
|
NVIDIA_UVM_DEBUG_OPTIMIZED_OBJECT := $(patsubst %.c,%.o,$(NVIDIA_UVM_DEBUG_OPTIMIZED_SOURCE))
|
|
|
|
ifneq ($(UVM_BUILD_TYPE),debug)
|
|
# Only build the wrappers on debug builds
|
|
NVIDIA_UVM_OBJECTS := $(filter-out $(NVIDIA_UVM_DEBUG_OPTIMIZED_OBJECT), $(NVIDIA_UVM_OBJECTS))
|
|
endif
|
|
|
|
obj-m += nvidia-uvm.o
|
|
nvidia-uvm-y := $(NVIDIA_UVM_OBJECTS)
|
|
|
|
NVIDIA_UVM_KO = nvidia-uvm/nvidia-uvm.ko
|
|
|
|
#
|
|
# Define nvidia-uvm.ko-specific CFLAGS.
|
|
#
|
|
|
|
ifeq ($(UVM_BUILD_TYPE),debug)
|
|
NVIDIA_UVM_CFLAGS += -DDEBUG $(call cc-option,-Og,-O0) -g
|
|
else
|
|
ifeq ($(UVM_BUILD_TYPE),develop)
|
|
# -DDEBUG is required, in order to allow pr_devel() print statements to
|
|
# work:
|
|
NVIDIA_UVM_CFLAGS += -DDEBUG
|
|
NVIDIA_UVM_CFLAGS += -DNVIDIA_UVM_DEVELOP
|
|
endif
|
|
NVIDIA_UVM_CFLAGS += -O2
|
|
endif
|
|
|
|
NVIDIA_UVM_CFLAGS += -DNVIDIA_UVM_ENABLED
|
|
NVIDIA_UVM_CFLAGS += -DNVIDIA_UNDEF_LEGACY_BIT_MACROS
|
|
|
|
NVIDIA_UVM_CFLAGS += -DLinux
|
|
NVIDIA_UVM_CFLAGS += -D__linux__
|
|
NVIDIA_UVM_CFLAGS += -I$(src)/nvidia-uvm
|
|
|
|
$(call ASSIGN_PER_OBJ_CFLAGS, $(NVIDIA_UVM_OBJECTS), $(NVIDIA_UVM_CFLAGS))
|
|
|
|
ifeq ($(UVM_BUILD_TYPE),debug)
|
|
# Force optimizations on for the wrappers
|
|
$(call ASSIGN_PER_OBJ_CFLAGS, $(NVIDIA_UVM_DEBUG_OPTIMIZED_OBJECT), $(NVIDIA_UVM_CFLAGS) -O2)
|
|
endif
|
|
|
|
#
|
|
# Register the conftests needed by nvidia-uvm.ko
|
|
#
|
|
|
|
NV_OBJECTS_DEPEND_ON_CONFTEST += $(NVIDIA_UVM_OBJECTS)
|
|
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += address_space_init_once
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += vzalloc
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += wait_on_bit_lock_argument_count
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += pde_data
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += proc_remove
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += bitmap_clear
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += usleep_range
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += radix_tree_empty
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += radix_tree_replace_slot
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += pnv_npu2_init_context
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += kthread_create_on_node
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += vmf_insert_pfn
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += cpumask_of_node
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += list_is_first
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += timer_setup
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += pci_bus_address
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += set_memory_uc
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += set_pages_uc
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_raw_ts64
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += ioasid_get
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += migrate_vma_setup
|
|
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += file_operations
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += kuid_t
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += address_space
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += backing_dev_info
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += mm_context_t
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += get_user_pages_remote
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += get_user_pages
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += vm_fault_has_address
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += vm_ops_fault_removed_vma_arg
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += node_states_n_memory
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += kmem_cache_has_kobj_remove_work
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += sysfs_slab_unlink
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += vm_fault_t
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += mmu_notifier_ops_invalidate_range
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += proc_ops
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += timespec64
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += mm_has_mmap_lock
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += migrate_vma_added_flags
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS += make_device_exclusive_range
|
|
|
|
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_int_active_memcg
|