Files
linux-nvgpu/drivers/gpu/nvgpu/Makefile
Alex Waterman ba2014d367 gpu: nvgpu: Implement a bitmap allocator
Implement a bitmap allocator for GPU use. This allocator is useful for
managing memory (or resource) regions where the buddy allocator is not
ideal. Some instances are small regions or where the resource management
must not make calls to the kernel's memory allocation routines (anything
that ultimately calls alloc_page()).

The code path where this avoidance of alloc_page() is most required is
the gpfifo submit path. In order to keep this routine fast and have
predicable time constraints no alloc_page() calls is necessary. The
buddy allocator does not work for this since every time a buddy is
allocated there is the possibility that a pair (or more) buddy structs
have to be made. These allocs could perhaps require a call into
alloc_page() if there is not enouch space in the kmem_cache slab for
the buddy structs.

Change-Id: Ia46fce62d4bdafcebbc153b21b515cb51641d241
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: http://git-master/r/1176446
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
2016-07-19 11:32:38 -07:00

132 lines
3.2 KiB
Makefile

GCOV_PROFILE := y
ccflags-y += -Idrivers/gpu/nvgpu
ccflags-y += -Idrivers/video/tegra/host
ccflags-y += -Idrivers/devfreq
ccflags-y += -I../nvgpu/include
ccflags-y += -I../nvgpu/include/uapi
ccflags-y += -Wno-multichar
ccflags-y += -Werror
ccflags-y += -Wno-error=cpp
ccflags-y += -Wno-duplicate-decl-specifier
ifeq ($(CONFIG_ARCH_TEGRA_18x_SOC),y)
ccflags-y += -I$(srctree)/../nvgpu-t18x/drivers/gpu/nvgpu
ccflags-y += -I$(srctree)/../nvgpu-t18x/include
ccflags-y += -I$(srctree)/../nvgpu-t18x/include/uapi
endif
ifeq ($(CONFIG_TEGRA_19x_GPU),y)
ccflags-y += -I$(srctree)/../nvgpu-t19x/drivers/gpu/nvgpu
ccflags-y += -I$(srctree)/../nvgpu-t19x/include
ccflags-y += -I$(srctree)/../nvgpu-t19x/include/uapi
endif
obj-$(CONFIG_GK20A) := nvgpu.o
nvgpu-y := \
gk20a/gk20a.o \
gk20a/sched_gk20a.o \
gk20a/as_gk20a.o \
gk20a/ctrl_gk20a.o \
gk20a/ce2_gk20a.o \
gk20a/fifo_gk20a.o \
gk20a/channel_gk20a.o \
gk20a/channel_sync_gk20a.o \
gk20a/debug_gk20a.o \
gk20a/dbg_gpu_gk20a.o \
gk20a/regops_gk20a.o \
gk20a/gr_gk20a.o \
gk20a/kind_gk20a.o \
gk20a/mm_gk20a.o \
gk20a/pmu_gk20a.o \
gk20a/priv_ring_gk20a.o \
gk20a/semaphore_gk20a.o \
gk20a/fence_gk20a.o \
gk20a/therm_gk20a.o \
gk20a/gr_ctx_gk20a_sim.o \
gk20a/gr_ctx_gk20a.o \
gk20a/gk20a_gating_reglist.o \
gk20a/gk20a_sysfs.o \
gk20a/ltc_gk20a.o \
gk20a/fb_gk20a.o \
gk20a/hal.o \
gk20a/hal_gk20a.o \
gk20a/gk20a_allocator.o \
gk20a/gk20a_allocator_bitmap.o \
gk20a/gk20a_allocator_buddy.o \
gk20a/cde_gk20a.o \
gk20a/platform_gk20a_generic.o \
gk20a/tsg_gk20a.o \
gk20a/ctxsw_trace_gk20a.o \
gk20a/fecs_trace_gk20a.o \
gk20a/mc_gk20a.o \
gm20b/hal_gm20b.o \
gm20b/ltc_gm20b.o \
gm20b/ce2_gm20b.o \
gm20b/gr_gm20b.o \
gm20b/gr_gm20b.o \
gm20b/fb_gm20b.o \
gm20b/fifo_gm20b.o \
gm20b/gr_ctx_gm20b.o \
gm20b/gm20b_gating_reglist.o \
gm20b/acr_gm20b.o \
gm20b/pmu_gm20b.o \
gm20b/mm_gm20b.o \
gm20b/regops_gm20b.o \
gm20b/mc_gm20b.o \
gm20b/debug_gm20b.o \
gm20b/cde_gm20b.o \
gm20b/therm_gm20b.o \
gm206/bios_gm206.o \
gm206/fifo_gm206.o \
gm206/hal_gm206.o \
gm206/gr_gm206.o \
gm206/acr_gm206.o \
gm206/mm_gm206.o \
gm206/pmu_gm206.o \
gm206/ce_gm206.o
nvgpu-$(CONFIG_TEGRA_GK20A) += gk20a/platform_gk20a_tegra.o
nvgpu-$(CONFIG_SYNC) += gk20a/sync_gk20a.o
nvgpu-$(CONFIG_GK20A_PCI) += pci.o
nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \
gk20a/platform_vgpu_tegra.o \
vgpu/ltc_vgpu.o \
vgpu/gr_vgpu.o \
vgpu/fifo_vgpu.o \
vgpu/ce2_vgpu.o \
vgpu/mm_vgpu.o \
vgpu/debug_vgpu.o \
vgpu/vgpu.o \
vgpu/dbg_vgpu.o \
vgpu/fecs_trace_vgpu.o \
vgpu/tsg_vgpu.o \
vgpu/gk20a/vgpu_hal_gk20a.o \
vgpu/gk20a/vgpu_gr_gk20a.o \
vgpu/gm20b/vgpu_hal_gm20b.o \
vgpu/gm20b/vgpu_gr_gm20b.o
nvgpu-$(CONFIG_TEGRA_CLK_FRAMEWORK) += \
gm20b/clk_gm20b.o \
gk20a/clk_gk20a.o
nvgpu-$(CONFIG_GK20A_DEVFREQ) += \
gk20a/gk20a_scale.o
nvgpu-$(CONFIG_GK20A_CYCLE_STATS) += \
gk20a/css_gr_gk20a.o
ifeq ($(CONFIG_ARCH_TEGRA_18x_SOC),y)
ifneq ($(wildcard $(srctree)/../nvgpu-t18x/drivers/gpu/nvgpu/Makefile),)
include $(srctree)/../nvgpu-t18x/drivers/gpu/nvgpu/Makefile
endif
endif
ifeq ($(CONFIG_TEGRA_19x_GPU),y)
ifneq ($(wildcard $(srctree)/../nvgpu-t19x/drivers/gpu/nvgpu/Makefile),)
include $(srctree)/../nvgpu-t19x/drivers/gpu/nvgpu/Makefile
endif
endif