mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2024-12-13 06:08:55 +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
|