Platform Software Patches and Configurations: Grace#

This section provides information about software patches and configuration settings that are required or recommended for the Grace platform.

Grace Linux Kernel Patches#

This section provides information about the Linux Kernel patches that support the Grace platform.

Upstream Bare Metal Linux Kernel#

The tables in this section list Linux kernel patches that are upstream, which means that the patches are accepted into the main Linux kernel branch.

Note

There might be circumstances where additional, dependent patches are required to support the patches listed in these tables (for example, when the patch listed is part of a larger series).

The Git description is pulled directly from the main Linux kernel Git log and is intended to help with searches and comparisons. The description might contain spelling and grammatical errors.

The following table contains patches that enable functions and are required for bare metal support on the Grace platform.

Bare Metal Support: Enablement#

LKML Discussion

Git Commit

Git Description

Minimum Linux Kernel Release

June 2021

4c207e7121fa

PCI: Mark some NVIDIA GPUs to avoid bus reset

v5.13

August 2021

6937b7dd4349

PCI: Add support for ACPI _RST reset method

v5.15

September 2021

a9c38c5d267c

dma-mapping: remove bogus test for pfn_valid from dma_map_resource

v5.16

November 2021

bd2fdedbf2ba

i2c: tegra: Add the ACPI support

v5.17

November 2021

f89d2cc3967a

spi: tegra210-quad: use devm call for cdata memory

December 2021

50665d58db05

i2c: tegra: use i2c_timings for bus clock freq

February 2022

5f84e73f9a8f

gpio: tegra186: Add IRQ per bank for Tegra241

December 2021

d1056b771ddb

gpio: tegra186: Add support for Tegra241

February 2022

d7583c8a5748

i2c: tegra: Add SMBus block read function

v5.18

January 2022

ca0acb511c21

device property: Add fwnode_irq_get_byname

a263a84088f6

i2c: smbus: Use device_*() functions instead of of_*()

20e8ef5c7ffa

docs: firmware-guide: ACPI: Add named interrupt doc

February 2022

ac982578e7d3

spi: tegra210-quad: use device_reset method

ea23f0e148b8

spi: tegra210-quad: add new chips to compatible

75a1b44a54bd

spi: tegra210-quad: add acpi support

1b8342cc4a38

spi: tegra210-quad: combined sequence mode

June 2022

b76134178168

spi: tegra210-quad: Multi-cs support

v6.0

September 2022

0ddf10a319f1

arm64: tegra: Enable Tegra SPI & QSPI in deconfig

v6.1

May 2023

721255b9826b

genirq: Use a maple tree for interrupt descriptor management

v6.5

June 2024

47c8846a49ba

PCI: Extend ACS configurability

v6.11

The following table contains patches that resolve critical issues and hardware errata.

Bare Metal Support: Critical Fixes#

LKML Discussion

Git Commit

Git Description

Minimum Linux Kernel Release

November 2022

5bf71889ad9a

i2c: tegra: Set ACPI node as primary fwnode

v6.2

April 2023

9f855779a387

i2c: tegra: Fix PEC support for SMBUS block read

v6.4

March 2023

35727af2b15d

irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4

April 2023

4327a6137ed4

drm/ast: Fix ARM compatibility

May 2024

195aba96b854

tpm_tis_spi: Account for SPI header when allocating TPM SPI xfer buffer

v6.10

December 2024

1a596ad00ffe

PCI: Use downstream bridges for distributing resources

v6.15

January 2025

e403e8538359

arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB

a5951389e58d

arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists

May 2025

fee4d171451c

arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays

July 2025

d42e6c20de61

arm64/entry: Mask DAIF in cpu_switch_to(), call_on_irq_stack()

v6.16

March 2026

97c5550b7631

arm64: contpte: fix set_access_flags() no-op check for SMMU/ATS faults

v7.0

The following table contains patches that resolve faults in enablement patches and other issues that have been discovered while testing the Grace platform with various workloads.

Bare Metal Support: Fixes#

LKML Discussion

Git Commit

Git Description

Minimum Linux Kernel Release

October 2022

8777dd9dff40

spi: tegra210-quad: Fix combined sequence

v6.1

ae4b3c1252f0

spi: tegra210-quad: Don’t initialise DMA if not supported

October 2022

2197aa6b0aa2

spi: tegra210-quad: Fix duplicate resource error

August 2022

2e3468778dbe

mm: remember young/dirty bit for page migrations

January 2023

101ca8d05913

rtc: efi: Enable SET/GET WAKEUP services as optional

v6.2

January 2023

ef3691683d7b

KVM: arm64: GICv4.1: Fix race with doorbell on VPE activation/deactivation

September 2022

05da178ce0aa

ACPI/IORT: Update SMMUv3 DeviceID support

February 2023

047ee71ae4f4

spi: tegra210-quad: Fix validate combined sequence

v6.3

February 2023

2449d436681d

spi: tegra210-quad: Fix iterator outside loop

February 2023

f7482d8285b6

spi: tegra210-quad: set half duplex flag

February 2023

010338d729c1

arm64: kaslr: don’t pretend KASLR is enabled if offset < MIN_KIMG_ALIGN

March 2023

c0e0421a60bf

ACPI: processor: Reorder acpi_processor_driver_init()

c43198af05cf

thermal: core: Introduce thermal_cooling_device_present()

790930f44289

thermal: core: Introduce thermal_cooling_device_update()

22c52fa5155a

ACPI: processor: thermal: Update CPU cooling devices on cpufreq policy changes

March 2023

b57841fb0b56

thermal: core: Drop excessive lockdep_assert_held() calls

January 2023

bba5065963f8

PCI/AER: Configure ECRC only if AER is native

April 2023

67a142dc9eb9

spi: Add TPM HW flow flag

v6.4

967ca91a996f

spi: tegra210-quad: Enable TPM wait polling

May 2023

3e35d303ab7d

arm64: module: rework module VA range selection

v6.5

April 2023

a86a42ac2bd6

tpm_tis-spi: Add hardware wait polling

v6.6

September 2023

d5afb4b47e13

iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range

June 2023

416ef04fe00c

mm/page_alloc: fix min_free_kbytes calculation regarding ZONE_MOVABLE

December 2023

081488051d28

mm/mglru: fix underprotected page cache

v6.7

5095a2b23987

mm/mglru: try to stop at high watermarks

8aa420617918

mm/mglru: respect min_ttl_ms with memcgs

4376807bf2d5

mm/mglru: reclaim offlined memcgs harder

January 2024

db744ddd59be

PCI/MSI: Prevent MSI hardware interrupt number truncation

v6.8

February 2024

6d4266675279

PCI/ASPM: Update save_state when configuration changes

v6.9

April 2024

d806f474a9a7

gpio: tegra186: Fix tegra186_gpio_is_accessible() check

March 2024

04867a7a3332

swiotlb: Fix double-allocation of slots due to broken alignment handling

cbf53074a528

swiotlb: Honour dma_alloc_coherent() alignment in swiotlb_alloc()

51b30ecb73b4

swiotlb: Fix alignment checks when both allocation and DMA masks are present

afc5aa46ed56

iommu/dma: Force swiotlb_max_mapping_size on an untrusted device

March 2024

af133562d5af

swiotlb: extend buffer pre-padding to alloc_align_mask if necessary

April 2024

e3ba51ab24fd

arm64: tlb: Fix TLBI RANGE operand

v6.10

e07255d69702

arm64: tlb: Improve __TLBI_VADDR_RANGE()

73301e464a72

arm64: tlb: Allow range operation for MAX_TLBI_RANGE_PAGES

January 2024

7bf9d2af7e89

PCI: Clear Secondary Status errors after enumeration

March 2024

eebab7e3eb4b

PCI/DOE: Support discovery version 2

June 2024

90e4ed6bb02a

cpufreq/cppc: Don’t compare desired_perf in target()

v6.11

July 2024

4cd7ba16a0af

mm: fix old/young bit handling in the faulting path

August 2024

14d069d92951

i2c: tegra: Do not mark ACPI devices as irq safe

October 2024

088984c8d54c

ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context

v6.12

October 2024

aa6f8b2593b5

mm/gup: stop leaking pinned pages in low memory conditions

November 2024

94efde1d1539

mm/gup: avoid an unnecessary allocation call for FOLL_LONGTERM cases

November 2024

a1268be280d8

mm/gup: handle NULL pages in unpin_user_pages()

October 2024

f3c3ccc4fe49

PCI: Fix pci_enable_acs() support for the ACS quirks

September 2024

c47195631960

cppc_cpufreq: Use desired perf if feedback ctrs are 0 or unchanged

v6.13

ea1829d4d413

cppc_cpufreq: Remove HiSilicon CPPC workaround

October 2024

1bc542c6a0d1

mm/vmscan: wake up flushers conditionally to avoid cgroup OOM

January 2024

c8e88de1b44e

ACPI/HMAT: Move HMAT messages to pr_debug()

v6.14

January 2025

7f5704b6a143

ACPI: PRM: Remove unnecessary strict handler address checks

February 2025

abc7b3f1f056

RDMA/mlx5: Fix a WARN during dereg_mr for DM type

March 2025

f7edb07ad7c6

Fix mmu notifiers for range-based invalidates

January 2025

9cf8a952d57b

PCI/ACS: Fix ‘pci=config_acs=’ parameter

v6.15

May 2025

b3f6fcd8404f

iommu: Skip PASID validation for devices without PASID capability

April 2025

41c721fc0939

spi: tegra210-quad: use WARN_ON_ONCE instead of WARN_ON for timeouts

21f4314e66ed

spi: tegra210-quad: add rate limiting and simplify timeout error message

March 2025

a6e04f05ce0b

i2c: tegra: check msg length in SMBUS block read

v6.16

July 2025

56344e241c54

i2c: tegra: Fix reset error handling with ACPI

April 2025

d8966b654133

spi: tegra210-quad: modify chip select (CS) deactivation

635bf3c88533

i2c: tegra: Use internal reset when reset property is not available

v6.17

September 2025

c7c31f8dc54a

drm/ast: Use msleep instead of mdelay for edid read

v6.18

November 2025

7526183cfdbe

net: aquantia: Add missing descriptor cache invalidation on ATL2

November 2025

5ffcb7b890f6

net: atlantic: fix fragment overflow handling in RX path

October 2025

b4e002d8a7ce

spi: tegra210-quad: Fix timeout handling

v6.19

6022eacdda8b

spi: tegra210-quad: Refactor error handling into helper functions

380fd29d57ab

spi: tegra210-quad: spi: tegra210-quad: Check hardware status on timeout

Jan 2026

aabd8ea0aa25

spi: tegra210-quad: Return IRQ_HANDLED when timeout already processed transfer

ef13ba357656

spi: tegra210-quad: Move curr_xfer read inside spinlock

f5a4d7f5e32b

spi: tegra210-quad: Protect curr_xfer assignment in tegra_qspi_setup_transfer_one

bf4528ab28e2

spi: tegra210-quad: Protect curr_xfer in tegra_qspi_combined_seq_xfer

6d7723e8161f

spi: tegra210-quad: Protect curr_xfer clearing in tegra_qspi_non_combined_seq_xfer

edf9088b6e1d

spi: tegra210-quad: Protect curr_xfer check in IRQ handler

The following table contains optional patches that improve performance on Grace platforms.

Bare Metal Support: Performance#

LKML Discussion

Git Commit

Git Description

Minimum Linux Kernel Release

November 2023

a2ee7581afd5

ACPI: thermal: Add Thermal fast Sampling Period (_TFP) support

v6.8

310293a2b941

ACPI: processor: reduce CPUFREQ thermal reduction pctg for Tegra241

ccb45b34d440

ACPI: arm64: export acpi_arch_thermal_cpufreq_pctg()

December 2023

7dc7c5ef6463

mm: allow deferred splitting of arbitrary anon large folios

372cbd4d5a06

mm: non-pmd-mappable, large folios for folio_add_new_anon_rmap()

3485b88390b0

mm: thp: introduce multi-size THP sysfs interface

19eaf44954df

mm: thp: support allocation of anonymous multi-size THP

b6aab3384caf

selftests/mm/kugepaged: restore thp settings at exit

00679a183ac6

selftests/mm: factor out thp settings management

4f5070a5e40d

selftests/mm: support multi-size THP interface in thp_settings

9f0704eae8a4

selftests/mm/khugepaged: enlighten for multi-size THP

12dc16b38463

selftests/mm/cow: generalize do_run_with_thp() helper

c0f79103322c

selftests/mm/cow: add tests for anonymous multi-size THP

February 2024

6280d7317cca

mm: clarify the spec for set_ptes()

v6.9

2bdba9868a4f

mm: thp: batch-collapse PMD with set_ptes()

583ceaaa3399

mm: introduce pte_advance_pfn() and use for pte_next_pfn()

c1bd2b4028ae

arm64/mm: convert pte_next_pfn() to pte_advance_pfn()

506b586769ec

x86/mm: convert pte_next_pfn() to pte_advance_pfn()

fb23bf6bd288

mm: tidy up pte_next_pfn() definition

532736558e8e

arm64/mm: convert READ_ONCE(*ptep) to ptep_get(ptep)

659e19302791

arm64/mm: convert set_pte_at() to set_ptes(…, 1)

cbb0294fdd72

arm64/mm: convert ptep_clear() to ptep_get_and_clear()

5a00bfd6a52c

arm64/mm: new ptep layer to manage contig bit

d9d8dc2bd3fb

arm64/mm: dplit __flush_tlb_range() to elide trailing DSB

4602e5757bcc

arm64/mm: wire up PTE_CONT for user mappings

311a6cf29690

arm64/mm: implement new wrprotect_ptes() batch API

6b1e4efb6f54

arm64/mm: implement new [get_and_]clear_full_ptes() batch APIs

c6ec76a2ebc5

mm: add pte_batch_hint() to reduce scanning in folio_pte_batch()

fb5451e5f72b

arm64/mm: implement pte_batch_hint()

b972fc6afba0

arm64/mm: __always_inline to improve fork() perf

f0c2264958e1

arm64/mm: automatically fold contpte mappings

April 2024

ead79118dae6

arm64/io: Provide a WC friendly __iowriteXX_copy()

v6.10

2b7a5e1fe022

net: hns3: Remove io_stop_wc() calls after __iowrite64_copy()

ef302283ddfc

IB/mlx5: Use __iowrite64_copy() for write combining stores

The following table contains optional patches that enable functions, or resolve faults, with performance tooling on Grace platforms.

Bare Metal Support: Performance Tools#

LKML Discussion

Git Commit

Git Description

Minimum Linux Kernel Release

April 2022

1c5d62f5dd97

ACPICA: Add support for ARM Performance Monitoring Unit Table

v5.19

September 2022

6251d38059ae

ACPI: ARM Performance Monitoring Unit Table (APMT) initial support

v6.2

June 2022

e37dfd65731d

perf: arm_cspmu: Add support for ARM CoreSight PMU driver

84481be7167e

perf: arm_cspmu: Add support for NVIDIA SCF and MCF attribute

November 2022

39522031798d

ACPI: APMT: Fix kerneldoc and indentation

December 2022

1830902eb896

perf: arm_cspmu: Fix modular builds due to missing MODULE_LICENSE()s

November 2022

e72dbf9085b5

perf: arm_cspmu: Fix build failure on x86_64

November 2022

a91bbd5c9984

perf: arm_cspmu: Fix module cyclic dependency

March 2023

16e15834659e

perf: arm_cspmu: Fix variable dereference warning

v6.4

April 2023

f462eb1d0df3

arm64: defconfig: Enable ARM CoreSight PMU driver

June 2023

225d757012e0

perf: arm_cspmu: Set irq affinitiy only if overflow interrupt is used

v6.5

June 2023

71e0cb32d5fc

perf/arm_cspmu: Fix event attribute type

7e51d05e43f1

perf: arm_cspmu: Add missing MODULE_DEVICE_TABLE

87b3b6d53efc

ACPI/APMT: Don’t register invalid resource

d2e3bb512818

perf/arm_cspmu: Decouple APMT dependency

f9bd34e3753e

perf/arm_cspmu: Clean up ACPI dependency

July 2023

3095e90eee5e

coresight: etm4x: Allocate and device assign ‘struct etmv4_drvdata’ earlier

v6.6

4e3b9a6eae98

coresight: etm4x: Drop iomem ‘base’ argument from etm4_probe()

5a1c7097472f

coresight: etm4x: Drop pid argument from etm4_probe()

73d779a03a76

coresight: etm4x: Change etm4_platform_driver driver for MMIO devices

3a2888aa1f96

coresight: platform: acpi: Ignore the absence of graph

134124acb57f

coresight: etm4x: Add ACPI support in platform driver

August 2023

1aa3d0274a4a

arm_pmu: acpi: Add a representative platform device for TRBE

81e5ee471609

arm_pmu: acpi: Refactor arm_spe_acpi_register_device()

August 2023

4473949074c3

perf vendor events arm64: Update N2 and V2 metrics and events using Arm telemetry repo

November 2023

15c7ef7341a2

perf: arm_cspmu: Reject events meant for other PMUs

v6.7

October 2023

a16afcc58a8c

perf cs-etm: Fix incorrect or missing decoder for raw trace

August 2023

bfc653aa89cb

perf: arm_cspmu: Separate Arm and vendor module

August 2023

17f8b216e026

coresight: trbe: Enable ACPI based TRBE devices

v6.8

4277f035d227

coresight: trbe: Add a representative coresight_platform_data for TRBE

November 2023

a24d9d9dc096

perf parse-events: Make legacy events lower priority than sysfs/JSON

January 2024

f4d9d9dcc70b

arm64: Add Neoverse-V2 part

v6.10

dc6abbbde4b0

tools headers arm64: Sync arm64’s cputype.h with the kernel sources

July 2024

b6aa0de9a53a

perf cs-etm: Create decoders after both AUX and HW_ID search passes

v6.12

57880a7966be

perf: cs-etm: Allocate queues for all CPUs

77c123f53e97

perf: cs-etm: Move traceid_list to each queue

19c3e4db38c5

perf: cs-etm: Create decoders based on the trace ID mappings

940007cee539

perf: cs-etm: Only save valid trace IDs into files

1506af6db8c4

perf: cs-etm: Support version 0.1 of HW_ID packets

022aa67b5ab9

perf: cs-etm: Print queue number in raw trace dump

34172002bdac

coresight: Remove unused ETM Perf stubs

eda1d11979c0

coresight: Clarify comments around the PID of the sink owner

acb0184fe9bc

coresight: Move struct coresight_trace_id_map to common header

7e52877868ae

coresight: Expose map arguments in trace ID API

d53c8253c782

coresight: Make CPU id map a property of a trace ID map

5ad628a76176

coresight: Use per-sink trace ID maps for Perf sessions

de0029fdde86

coresight: Remove pending trace ID release mechanism

487eec8da80a

coresight: Emit sink ID in the HW_ID packets

988d40a4d4e7

coresight: Make trace ID map spinlock local to the map

October 2024

fb98fa3bf868

perf arm-spe: Rename arm_spe__synth_data_source_generic()

v6.13

50b8f1d5bf4a

perf arm-spe: Rename the common data source encoding

56ae663e7636

perf arm-spe: Introduce arm_spe__is_homogeneous()

ba5e7169e548

perf arm-spe: Use metadata to decide the data source feature

6bcf54c89b3d

perf arm-spe: Remove the unused ‘midr’ field

041c0e5715a6

perf arm-spe: Add Neoverse-V2 to common data source encoding list

ea2ead4224fd

perf arm-spe: Add Cortex CPUs to common data source encoding list

October 2024

ac4c52956f62

perf: arm_cspmu: nvidia: remove unsupported SCF events

v6.14

5f7cd0dc98a6

perf: arm_cspmu: nvidia: fix sysfs path in the kernel doc

ca26df4b1036

perf: arm_cspmu: nvidia: enable NVLINK-C2C port filtering

bce61d5c5764

perf: arm_cspmu: nvidia: monitor all ports by default

January 2025

d923782b0412

arm64: amu: Delay allocating cpumask for AMU FIE support

August 2024

004b500a9031

arch_topology: init capacity_freq_ref to 0

v6.15

January 2025

38e480d4fcac

cpufreq: Allow arch_freq_get_on_cpu to return an error

fbb4a4759b54

cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry

16d1e27475f6

arm64: Provide an AMU-based version of arch_freq_get_on_cpu

39b19974982e

arm64: Update AMU-based freq scale factor on entering idle

February 2025

20711efa91e8

arm64: Utilize for_each_cpu_wrap for reference lookup

The following table contains patches that support NVIDIA CUDA® features on Grace platforms.

Bare Metal Support: CUDA#

LKML Discussion

Git Commit

Git Description

Minimum Linux Kernel Release

December 2020

18b2db3b0385

mm: Convert page kmemcg type to a page memcg flag

v5.11

December 2020

368c0159d492

RDMA/umem: Support importing dma-buf as user memory region

v5.12

March 2021

b392a1989170

vfio/pci: remove vfio_pci_nvlink2

v5.13

April 2022

319561669a59

mm/mmu_notifier.c: fix race in mmu_interval_notifier_remove()

v5.18

September 2022

fd35ca3d12cc

mm/migrate_device.c: copy pte dirty bit to page

v6.0

a3589e1d5fe3

mm/migrate_device.c: add missing flush_cache_page()

60bae7370896

mm/migrate_device.c: flush TLB while holding PTL

Linux Kernel Configs#

This section provides information about the Linux Kernel config settings for the Grace platform.

The following table contains config settings that enable function and are required for bare metal support on the Grace platform.

Bare Metal Configs: Required#

Kernel Config

Description

CONFIG_NR_CPUS=512

Supports the maximum Grace configuration.

CONFIG_NODES_SHIFT=6

Supports the maximum Grace configuration.

CONFIG_ARM_SMMU_V3_SVA=y

Support shared virtual addressing.

CONFIG_ARM64_PMEM=y

Support persistent memory.

CONFIG_ARM_SDE_INTERFACE=y

Support RAS notifications.

CONFIG_BLK_DEV_PMEM=m

Enable persistent memory block device.

CONFIG_DEVICE_MIGRATION=y

Enable device physical page migration.

CONFIG_DEVICE_PRIVATE=y

Supports unaddressable device memory; only required when using NVIDIA GPU Driver.

CONFIG_GPIO_TEGRA186=y

Supports the GPIO interface.

CONFIG_HOTPLUG_PCI_PCIE=y

Supports the PCIe native hotplug.

CONFIG_IOMMU_DEFAULT_PASSTHROUGH=n

Disable IOMMU translation bypass for DMA. | Refer to Input-Output Memory Management Unit Passthrough in the NVIDIA Grace Performance Tuning Guide for more information.

CONFIG_IOMMU_SVA=y

Required for NVIDIA Unified Virtual Memory driver to detect and enable ATS support for the CUDA stack

CONFIG_PCIE_DPC=y

Supports downstream port containment.

CONFIG_PCIE_EDR=y

Enables the error disconnect recover support.

CONFIG_SPI_TEGRA210_QUAD=y

Support the QSPI controller.

CONFIG_TCG_TIS_SPI=y

Supports the TPM SPI interface.

CONFIG_MTD_SPI_NOR=y

Support the SPI NOR flash device.

CONFIG_IPMI_SSIF=m

Supports the SMBus interface to BMC.

arch/arm64/include/asm/irq.h:
#if defined(CONFIG_ARM_GIC_V3_ITS)
#define NR_IRQS (1 << 19)
#endif

Supports the maximum Grace configuration. | Not required when the kernel carries 721255b9826b.

CONFIG_ARCH_TEGRA_241_SOC=y

Supports reading Grace fuses. | This is only available on kernels that carry 8402074f3023.

CONFIG_TEGRA_IVC=y

Enables the Inter Processor Communication framework.

CONFIG_USB_XHCI_PCI_RENESAS=y|m

Enables the Renesas xHCI controller.

The following table contains the recommended config settings that provide performance improvements for certain workloads.

Bare Metal Configs: Recommended#

Kernel Config

Description

CONFIG_ARM64_64K_PAGES=y

Use 64K page size; required when using NVIDIA GPU Driver.

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

Set default CPU frequency governor to performance.

CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y

Supports the schedutil CPU frequency governor.

CONFIG_PREEMPT_DYNAMIC=y

Allows dynamic preemption tuning using preempt.

CONFIG_PREEMPT_NONE=y

Default dynamic preemption tuning to preempt=none for throughput.

CONFIG_DMABUF_HEAPS=y

Enables DMA-BUF memory heaps.

CONFIG_DMABUF_HEAPS_SYSTEM=y

Enables the system dmabuf heap.

CONFIG_DMI_SYSFS=y

Enables the export of raw DMI table data.

CONFIG_INIT_ON_ALLOC_DEFAULT_ON=n

Disables heap memory zeroing on allocation by default.

CONFIG_IOMMU_DEFAULT_DMA_LAZY=y

Improves IOMMU performance by enabling lazy mode.

CONFIG_ARM64_PSEUDO_NMI=y

Enables support for NMI-like interrupts.

The following table contains optional config settings that enable the performance tooling functions on Grace platforms.

Bare Metal Configs: Performance Tools#

Kernel Config

Description

CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU=m

Enables the ARM CoreSight PMU driver.

CONFIG_NVIDIA_CORESIGHT_PMU_ARCH_SYSTEM_PMU=m

Enables the NVIDIA ARM Coresight PMU driver.

CONFIG_ARM_SPE_PMU=m

Enables access to the ARM SPE registers.

The following table contains config settings that are required when supporting partner diagnostics on Grace platforms.

Bare Metal configs: Partner Diagnostics#

Kernel Config

Description

CONFIG_ACPI_APEI_EINJ=m

Provides a hardware error injection mechanism. | Used for debugging and testing APEI features.

CONFIG_ARM_FFA_TRANSPORT=m

Enables the Arm Firmware Framework driver.

CONFIG_ARM_FFA_SMCCC=y

Enables Arm Secure Monitor Call Calling Convention

CONFIG_CPU_FREQ_STAT=y

Exports CPU frequency statistics information through sysfs.

CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y

Enables the “conservative” governor.

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

Enables the “ondemand” governor.

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

Enables the “powersave” governor.

CONFIG_CPU_FREQ_GOV_USERSPACE=y

Enables the “userspace” governor, which allows user-space utilities to set the CPU frequency

CONFIG_STRICT_DEVMEM=y

Filter access to the /dev/mem character device that is used to access the physical memory areas.

CONFIG_SENSORS_ACPI_POWER=m

Enables power telemetry through hwmon. | Enable when sysfs endpoints for hardware power monitoring are not present.