mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
To achieve permanent fault coverage, the CTAs launched by each kernel in the mission and redundant contexts must execute on different hardware resources. This feature proposes modifications in the software to modify the virtual SM id to TPC mapping across the mission and redundant contexts. The virtual SM identifier to TPC mapping is done by nvgpu when setting up the patch context. The recommendation for the redundant setting is to offset the assignment by one TPC, and not by one GPC. This will ensure that both GPC and TPC diversity. The SM and Quadrant diversity will happen naturally. For kernels with few CTAs, the diversity is guaranteed to be 100%. In case of completely random CTA allocation, e.g. large number of CTAs in the waiting queue, the diversity is 1 - 1/#SM, or 87.5% for GV11B, 97.9% for TU104. Added NvGpu CFLAGS to enable/disable the SM diversity support "CONFIG_NVGPU_SM_DIVERSITY". This support is only enabled on gv11b and tu104 QNX non safety build. JIRA NVGPU-4685 Change-Id: I8e3eaa72d8cf7aff97f61e4c2abd10b2afe0fe8b Signed-off-by: Lakshmanan M <lm@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2268026 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-by: Shashank Singh <shashsingh@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
244 lines
8.3 KiB
Makefile
244 lines
8.3 KiB
Makefile
#
|
|
# Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved.
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
# copy of this software and associated documentation files (the "Software"),
|
|
# to deal in the Software without restriction, including without limitation
|
|
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
# and/or sell copies of the Software, and to permit persons to whom the
|
|
# Software is furnished to do so, subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in
|
|
# all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
# DEALINGS IN THE SOFTWARE.
|
|
#
|
|
|
|
# This file defines the make variables and cflags applicable to nvgpu common
|
|
# shared by qnx, nvgpu userspace, test builds. Note that cflags are added to
|
|
# variable NVGPU_COMMON_CFLAGS that needs to be used by the parent Makefile
|
|
# to update corresponding cflags variable.
|
|
|
|
# Default is the regular profile. That can be overridden if necessary. by
|
|
# setting the NVGPU_FORCE_SAFETY_PROFILE. This is a useful hack while we
|
|
# wait for the userspace tmake build to make its way into a proper safety
|
|
# profile build.
|
|
profile := default
|
|
|
|
# Decide whether to use the safety release, safety debug or the regular profile.
|
|
ifeq ($(NV_BUILD_CONFIGURATION_IS_SAFETY),1)
|
|
profile := safety_release
|
|
ifeq ($(NV_BUILD_CONFIGURATION_IS_DEBUG),1)
|
|
profile := safety_debug
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(NVGPU_FORCE_SAFETY_PROFILE),1)
|
|
profile := safety_release
|
|
ifeq ($(NVGPU_FORCE_DEBUG_PROFILE),1)
|
|
profile := safety_debug
|
|
endif
|
|
endif
|
|
|
|
NVGPU_COMMON_CFLAGS :=
|
|
|
|
#
|
|
# Flags always enabled regardless of build profile.
|
|
#
|
|
|
|
NVGPU_COMMON_CFLAGS += \
|
|
-DCONFIG_TEGRA_GK20A_NVHOST \
|
|
-DCONFIG_TEGRA_T19X_GRHOST \
|
|
-DCONFIG_NVGPU_SUPPORT_TURING \
|
|
-DCONFIG_TEGRA_GK20A_PMU=1 \
|
|
-DCONFIG_TEGRA_ACR=1 \
|
|
-DCONFIG_NVGPU_GR_VIRTUALIZATION \
|
|
-DCONFIG_PCI_MSI
|
|
|
|
CONFIG_NVGPU_LOGGING := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_LOGGING
|
|
|
|
ifeq ($(profile),$(filter $(profile),safety_debug safety_release))
|
|
|
|
# Enable golden context verification only for safety debug/release build
|
|
NVGPU_COMMON_CFLAGS += \
|
|
-DCONFIG_NVGPU_GR_GOLDEN_CTX_VERIFICATION \
|
|
-DCONFIG_NVGPU_BUILD_CONFIGURATION_IS_SAFETY
|
|
|
|
endif
|
|
|
|
#
|
|
# Flags enabled only for safety debug and regular build profile.
|
|
#
|
|
ifneq ($(profile),safety_release)
|
|
|
|
CONFIG_NVGPU_TRACE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_TRACE
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_DEBUG
|
|
|
|
#
|
|
# Flags enabled only for regular build profile.
|
|
#
|
|
ifneq ($(profile),safety_debug)
|
|
|
|
CONFIG_NVGPU_SYSFS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SYSFS
|
|
|
|
# ACR feature to enable old tegra ACR profile support
|
|
CONFIG_NVGPU_ACR_LEGACY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ACR_LEGACY
|
|
|
|
CONFIG_NVGPU_ENGINE_QUEUE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_QUEUE
|
|
|
|
CONFIG_NVGPU_DEBUGGER := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DEBUGGER
|
|
|
|
CONFIG_NVGPU_RECOVERY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_RECOVERY
|
|
|
|
CONFIG_NVGPU_CILP := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CILP
|
|
|
|
CONFIG_NVGPU_CYCLESTATS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CYCLESTATS
|
|
|
|
CONFIG_NVGPU_FECS_TRACE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FECS_TRACE
|
|
|
|
CONFIG_NVGPU_IGPU_VIRT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_IGPU_VIRT
|
|
|
|
# Enable the usage of 3LSS error injection features.
|
|
CONFIG_NVGPU_USE_3LSS_ERR_INJECTION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USE_3LSS_ERR_INJECTION
|
|
|
|
# Enable Graphics support for normal build
|
|
CONFIG_NVGPU_GRAPHICS := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GRAPHICS
|
|
|
|
# Enable nvlink support for normal build.
|
|
CONFIG_NVGPU_NVLINK := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NVLINK
|
|
|
|
# Enable tpc_powergate support for normal build.
|
|
CONFIG_NVGPU_TPC_POWERGATE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_TPC_POWERGATE
|
|
|
|
# Enable mssnvlink0 reset control for normal build
|
|
CONFIG_MSSNVLINK0_RST_CONTROL := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_MSSNVLINK0_RST_CONTROL
|
|
|
|
# Enable dgpu support for normal build.
|
|
CONFIG_NVGPU_DGPU := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DGPU
|
|
|
|
CONFIG_NVGPU_VPR := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_VPR
|
|
|
|
CONFIG_NVGPU_REPLAYABLE_FAULT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_REPLAYABLE_FAULT
|
|
|
|
# Enable LS PMU support for normal build
|
|
CONFIG_NVGPU_LS_PMU := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_LS_PMU
|
|
|
|
# Enable elpg support for normal build
|
|
CONFIG_NVGPU_POWER_PG := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_POWER_PG
|
|
|
|
# Enable sim support for normal build
|
|
CONFIG_NVGPU_SIM := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SIM
|
|
|
|
CONFIG_NVGPU_COMPRESSION := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_COMPRESSION
|
|
|
|
# Enable non FUSA HALs for normal build
|
|
CONFIG_NVGPU_HAL_NON_FUSA := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_HAL_NON_FUSA
|
|
|
|
# Enable non FUSA common code for normal build
|
|
CONFIG_NVGPU_NON_FUSA := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_NON_FUSA
|
|
|
|
CONFIG_NVGPU_CLK_ARB := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CLK_ARB
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FALCON_NON_FUSA
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_IOCTL_NON_FUSA
|
|
|
|
CONFIG_NVGPU_GR_FALCON_NON_SECURE_BOOT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_GR_FALCON_NON_SECURE_BOOT
|
|
|
|
CONFIG_NVGPU_SET_FALCON_ACCESS_MAP := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SET_FALCON_ACCESS_MAP
|
|
|
|
# Enable SW Semaphore for normal build
|
|
CONFIG_NVGPU_SW_SEMAPHORE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SW_SEMAPHORE
|
|
|
|
# Enable Channel WDT for safety build until we switch to user mode submits only
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CHANNEL_WDT
|
|
|
|
# Enable Kernel Mode submit for safety build until we switch to user mode
|
|
# submits only
|
|
CONFIG_NVGPU_KERNEL_MODE_SUBMIT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_KERNEL_MODE_SUBMIT
|
|
|
|
# Enable fences for safety build till until we switch to user mode submits only
|
|
CONFIG_NVGPU_FENCE := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FENCE
|
|
|
|
# Enable powergate lib for normal build
|
|
CONFIG_NVGPU_USE_POWERGATE_LIB := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USE_POWERGATE_LIB
|
|
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_FIFO_ENGINE_ACTIVITY
|
|
# Enable dynamic busy/idle support
|
|
CONFIG_NVGPU_DYNAMIC_BUSY_IDLE_SUPPORT := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_DYNAMIC_BUSY_IDLE_SUPPORT
|
|
|
|
# Enable HW based error injection support
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_INJECT_HWERR
|
|
|
|
# Enable Channel/TSG Scheduling
|
|
CONFIG_NVGPU_CHANNEL_TSG_SCHEDULING := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CHANNEL_TSG_SCHEDULING
|
|
|
|
# Enable Channel/TSG Control
|
|
CONFIG_NVGPU_CHANNEL_TSG_CONTROL := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_CHANNEL_TSG_CONTROL
|
|
|
|
# Enable Virtualization server for normal build
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_TEGRA_GR_VIRTUALIZATION_SERVER
|
|
|
|
# Enable SM diversity support for normal build
|
|
CONFIG_NVGPU_SM_DIVERSITY := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_SM_DIVERSITY
|
|
|
|
endif
|
|
endif
|
|
|
|
# Enable USERD only if kernel mode submit is supported
|
|
ifeq ($(CONFIG_NVGPU_KERNEL_MODE_SUBMIT),1)
|
|
CONFIG_NVGPU_USERD := 1
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_USERD
|
|
endif
|
|
|
|
ifeq ($(CONFIG_NVGPU_DEBUGGER),1)
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_RESET
|
|
endif
|
|
|
|
ifeq ($(CONFIG_NVGPU_RECOVERY),1)
|
|
NVGPU_COMMON_CFLAGS += -DCONFIG_NVGPU_ENGINE_RESET
|
|
endif
|