Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UBUNTU: [Packaging] Enable coresight in Perf #38

Open
wants to merge 201 commits into
base: 24.04_linux-nvidia
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
201 commits
Select commit Hold shift + click to select a range
9a8b226
UBUNTU: [Packaging] Initialize linux-nvidia-6.5
ianmay81 Oct 3, 2023
7c0d52e
Revert "UBUNTU: SAUCE: modpost: support arbitrary symbol length in mo…
ianmay81 Oct 4, 2023
3e14e7e
UBUNTU: [Packaging] update variants
ianmay81 Oct 4, 2023
f992d44
UBUNTU: [Packaging] update Ubuntu.md
ianmay81 Oct 4, 2023
46055b8
UBUNTU: Start new release
ianmay81 Oct 4, 2023
313cd22
UBUNTU: [Config] nvidia-6.5: update annotations
ianmay81 Oct 4, 2023
04da69d
UBUNTU: Ubuntu-nvidia-6.5-6.5.0-1001.1
ianmay81 Oct 4, 2023
c345320
UBUNTU: [Packaging] nvidia-6.5: disable rust support
ianmay81 Oct 12, 2023
c1a175e
UBUNTU: Start new release
ianmay81 Oct 12, 2023
740537c
UBUNTU: link-to-tracker: update tracking bug
ianmay81 Oct 12, 2023
86df94b
UBUNTU: [Config] nvidia-6.5: update annotations
ianmay81 Oct 12, 2023
8f39a4c
UBUNTU: Ubuntu-nvidia-6.5-6.5.0-1004.4
ianmay81 Oct 12, 2023
5cc4071
UBUNTU: Start new release
piso77 Dec 11, 2023
a832414
UBUNTU: rename debian.nvidia-6.6 to debian.nvidia
piso77 Dec 11, 2023
ad6d73e
UBUNTU: link-to-tracker: update tracking bug
piso77 Dec 11, 2023
7ca46b3
UBUNTU: [Packaging] update variants
piso77 Dec 11, 2023
ed910cf
UBUNTU: [Packaging] update update.conf
piso77 Dec 11, 2023
afd97b5
UBUNTU: [Packaging] move to gcc-13 by default
Jul 17, 2023
28e359e
UBUNTU: rebase on Ubuntu-6.6.0-14.14
piso77 Dec 11, 2023
e79bc5e
UBUNTU: [Config] updateconfigs following Ubuntu-6.6.0-14.14 rebase
piso77 Dec 11, 2023
361974c
UBUNTU: Ubuntu-nvidia-6.6.0-1001.1
piso77 Dec 11, 2023
44851ff
UBUNTU: [Packaging] move to linux 6.8
Feb 27, 2024
9845db4
UBUNTU: update dropped.txt
Feb 27, 2024
5f53e43
UBUNTU: Start new release
Feb 27, 2024
a83e5c9
UBUNTU: link-to-tracker: update tracking bug
Feb 27, 2024
14e3f26
UBUNTU: debian.nvidia/dkms-versions -- update from kernel-versions (m…
Feb 27, 2024
72184d3
UBUNTU: [Packaging] add Rust build dependencies
Feb 27, 2024
00fe08d
UBUNTU: [Config] update annotations after rebase to v6.8
Feb 27, 2024
2c94258
UBUNTU: [Packaging] clean ABI check files
Feb 27, 2024
b7f6e3e
UBUNTU: Ubuntu-nvidia-6.8.0-1001.1
Feb 27, 2024
292800d
UBUNTU: Start new release
ianmay81 Mar 18, 2024
3c318d6
UBUNTU: link-to-tracker: update tracking bug
ianmay81 Mar 18, 2024
27f63c9
UBUNTU: [Config] nvidia: update annotations
ianmay81 Mar 18, 2024
efac783
UBUNTU: Ubuntu-nvidia-6.8.0-1002.2
ianmay81 Mar 18, 2024
3a6a867
UBUNTU: [Packaging] dkms-versions standalone provides support
nvidia-bfigg Jan 5, 2024
34a7d34
UBUNTU: [Packaging] add versioning to dkms standalone rprovides
ianmay81 Mar 21, 2024
61db1b4
NVIDIA: [Config]: Grouping AAEON config options together, under a com…
nvidia-bfigg Apr 4, 2024
65c7961
NVIDIA: [Config]: Disable the NOUVEAU driver which is not used with -…
nvidia-bfigg Apr 4, 2024
31dec47
NVIDIA: [Config]: Adding CORESIGHT and ARM64_ERRATUM configs to annot…
nvidia-bfigg Apr 5, 2024
9e6f92d
UBUNTU: [Config] update nvidia specific annotations with notes
ianmay81 Apr 10, 2024
ce4265d
UBUNTU: [Config] update annotations with updateconfigs
ianmay81 Apr 10, 2024
139dcfa
UBUNTU: [Packaging] remove tools host package
ianmay81 Apr 10, 2024
f6baacc
NVIDIA: SAUCE: Patch NFS driver to support GDS with 6.8 Kernel
sourabgupta3 Oct 30, 2023
4a75405
NVIDIA: SAUCE: NVMe/MVMEeOF: Patch NVMe/NVMeOF driver to support GDS …
sourabgupta3 Oct 30, 2023
f546015
NVIDIA: [Config] Add nvidia-fs build dependencies
nvidia-bfigg Mar 29, 2024
1d8c48a
UBUNTU: [Packaging] drop getabis data
ianmay81 Apr 15, 2024
1d2bc39
UBUNTU: [Packaging] Replace fs/cifs with fs/smb in inclusion list
ianmay81 Apr 15, 2024
fb8bc3e
UBUNTU: [Packaging] remove bindgen-0.56
ianmay81 Apr 15, 2024
f875d0a
UBUNTU: Start new release
ianmay81 Apr 15, 2024
c662d46
UBUNTU: [Packaging] debian.nvidia/dkms-versions -- update from kernel…
ianmay81 Apr 10, 2024
ff71bb1
UBUNTU: link-to-tracker: update tracking bug
ianmay81 Apr 22, 2024
221e4fa
UBUNTU: Ubuntu-nvidia-6.8.0-1006.6
ianmay81 Apr 22, 2024
5d9cd94
arm64/mm: make set_ptes() robust when OAs cross 48-bit boundary
Jan 29, 2024
72f8cd3
arm/pgtable: define PFN_PTE_SHIFT
davidhildenbrand Jan 29, 2024
1b445de
nios2/pgtable: define PFN_PTE_SHIFT
davidhildenbrand Jan 29, 2024
456e012
powerpc/pgtable: define PFN_PTE_SHIFT
davidhildenbrand Jan 29, 2024
7278453
riscv/pgtable: define PFN_PTE_SHIFT
davidhildenbrand Jan 29, 2024
6dbc663
s390/pgtable: define PFN_PTE_SHIFT
davidhildenbrand Jan 29, 2024
4c2a7b0
sparc/pgtable: define PFN_PTE_SHIFT
davidhildenbrand Jan 29, 2024
86b1263
mm/pgtable: make pte_next_pfn() independent of set_ptes()
davidhildenbrand Jan 29, 2024
f2a4fa5
arm/mm: use pte_next_pfn() in set_ptes()
davidhildenbrand Jan 29, 2024
60ba498
powerpc/mm: use pte_next_pfn() in set_ptes()
davidhildenbrand Jan 29, 2024
d04ef2b
mm/memory: factor out copying the actual PTE in copy_present_pte()
davidhildenbrand Jan 29, 2024
b8a6db5
mm/memory: pass PTE to copy_present_pte()
davidhildenbrand Jan 29, 2024
63a73e6
mm/memory: optimize fork() with PTE-mapped THP
davidhildenbrand Jan 29, 2024
b704890
mm/memory: ignore dirty/accessed/soft-dirty bits in folio_pte_batch()
davidhildenbrand Jan 29, 2024
5c63e7f
mm/memory: ignore writable bit in folio_pte_batch()
davidhildenbrand Jan 29, 2024
a97483f
mm: clarify the spec for set_ptes()
Feb 15, 2024
a444d36
mm: thp: batch-collapse PMD with set_ptes()
Feb 15, 2024
f9bf8b5
mm: introduce pte_advance_pfn() and use for pte_next_pfn()
Feb 15, 2024
a1f7657
arm64/mm: convert pte_next_pfn() to pte_advance_pfn()
Feb 15, 2024
0349d9f
x86/mm: convert pte_next_pfn() to pte_advance_pfn()
Feb 15, 2024
8be462f
mm: tidy up pte_next_pfn() definition
Feb 15, 2024
36bb4aa
arm64/mm: convert READ_ONCE(*ptep) to ptep_get(ptep)
Feb 15, 2024
69534e7
arm64/mm: convert set_pte_at() to set_ptes(..., 1)
Feb 15, 2024
6a999d1
arm64/mm: convert ptep_clear() to ptep_get_and_clear()
Feb 15, 2024
f4df479
arm64/mm: new ptep layer to manage contig bit
Feb 15, 2024
dc5fd99
arm64/mm: dplit __flush_tlb_range() to elide trailing DSB
Feb 15, 2024
4525e31
NVIDIA: [Config] arm64: ARM64_CONTPTE=y
Mar 27, 2024
a0ba86f
arm64/mm: wire up PTE_CONT for user mappings
Feb 15, 2024
22b1565
arm64/mm: implement new wrprotect_ptes() batch API
Feb 15, 2024
361f501
arm64/mm: implement new [get_and_]clear_full_ptes() batch APIs
Feb 15, 2024
d17c8cc
mm: add pte_batch_hint() to reduce scanning in folio_pte_batch()
Feb 15, 2024
0d1c347
arm64/mm: implement pte_batch_hint()
Feb 15, 2024
c20455b
arm64/mm: __always_inline to improve fork() perf
Feb 15, 2024
ec431fe
arm64/mm: automatically fold contpte mappings
Feb 15, 2024
5b309f2
arm64/mm: export contpte symbols only to GPL users
Feb 26, 2024
e95b8b2
arm64/mm: improve comment in contpte_ptep_get_lockless()
Feb 26, 2024
2ed9e8d
NVIDIA: [Packaging] update nvidia-fs driver to latest version
nvidia-bfigg May 23, 2024
3bc6869
UBUNTU: [Packaging] blacklist coresight_etm4x
ianmay81 Apr 25, 2024
a6062cb
UBUNTU: [Packaging] update Ubuntu.md
jacobmartin0 May 30, 2024
230d111
UBUNTU: Start new release
jacobmartin0 May 30, 2024
0ea6932
UBUNTU: [Packaging] enable perf python module
Mar 14, 2024
c572fca
UBUNTU: [Packaging] add Real-time Linux Analysis tool (rtla) to linux…
Mar 26, 2024
00da636
UBUNTU: [Packaging] update dependencies for rtla
Apr 9, 2024
8c01401
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 May 30, 2024
cbd2440
UBUNTU: [Packaging] debian.nvidia/dkms-versions -- update from kernel…
jacobmartin0 May 30, 2024
e758c96
UBUNTU: Ubuntu-nvidia-6.8.0-1007.7
jacobmartin0 May 30, 2024
6b40b3f
UBUNTU: Start new release
jacobmartin0 Jun 13, 2024
d671ffa
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Jun 13, 2024
e1a4d78
UBUNTU: Ubuntu-nvidia-6.8.0-1008.8
jacobmartin0 Jun 13, 2024
61ce08b
NVIDIA: SAUCE: NFS: Export nvfs register and unregister functions as GPL
sourabgupta3 Jun 6, 2024
ade7e17
NVIDIA: SAUCE: NVMe/NVMeoF: Export nvfs register and unregister funct…
sourabgupta3 Jun 6, 2024
569026c
mlxbf_gige: add support to display pause frame counters
dthompso Mar 5, 2024
645bf52
UBUNTU: Start new release
jacobmartin0 Jun 21, 2024
452c33d
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Jun 21, 2024
6852788
UBUNTU: Ubuntu-nvidia-6.8.0-1009.9
jacobmartin0 Jun 21, 2024
889a051
UBUNTU: Start new release
jacobmartin0 Jul 15, 2024
7335646
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Jul 15, 2024
8ba0e65
UBUNTU: Ubuntu-nvidia-6.8.0-1010.10
jacobmartin0 Jul 15, 2024
5b50bd5
platform/mellanox: mlxbf-pmc: Replace uintN_t with kernel-style types
shravankumarr Feb 13, 2024
702864a
platform/mellanox: mlxbf-pmc: Cleanup signed/unsigned mix-up
shravankumarr Feb 13, 2024
6f32c03
platform/mellanox: mlxbf-pmc: mlxbf_pmc_event_list(): make size ptr o…
luiz-cap Feb 22, 2024
14fce34
platform/mellanox: mlxbf-pmc: Ignore unsupported performance blocks
luiz-cap Feb 22, 2024
a45be86
platform/mellanox: mlxbf-pmc: fix signedness bugs
Feb 29, 2024
615a4fb
PCI: Clear Secondary Status errors after enumeration
Jan 16, 2024
a679df3
x86: Stop using weak symbols for __iowrite32_copy()
jgunthorpe Apr 11, 2024
35d3740
s390: Implement __iowrite32_copy()
jgunthorpe Apr 11, 2024
4264a63
s390: Stop using weak symbols for __iowrite64_copy()
jgunthorpe Apr 11, 2024
5d2f7c5
arm64/io: Provide a WC friendly __iowriteXX_copy()
jgunthorpe Apr 11, 2024
26460c1
net: hns3: Remove io_stop_wc() calls after __iowrite64_copy()
jgunthorpe Apr 11, 2024
c699edb
UBUNTU: Start new release
jacobmartin0 Jul 17, 2024
1871b37
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Jul 17, 2024
65944d5
UBUNTU: Ubuntu-nvidia-6.8.0-1011.11
jacobmartin0 Jul 17, 2024
851c98f
UBUNTU: Start new release
jacobmartin0 Aug 9, 2024
8db9ba0
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Aug 9, 2024
820b1b9
UBUNTU: Ubuntu-nvidia-6.8.0-1012.12
jacobmartin0 Aug 9, 2024
67b7b64
PCI: Extend ACS configurability
Jun 25, 2024
75db7bb
NVIDIA: [Config] EFI: set CAPSULE_LOADER=y for arm64
nvidia-bfigg Aug 7, 2024
ae1d367
NVIDIA: SAUCE: iommu/arm-smmu-v3: Allow default substream bypass with…
nicolinc Aug 5, 2024
2eaacdb
UBUNTU: Start new release
jacobmartin0 Aug 20, 2024
d6ca8e0
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Aug 20, 2024
06a61d2
UBUNTU: Ubuntu-nvidia-6.8.0-1013.14
jacobmartin0 Aug 20, 2024
7e94618
UBUNTU: Start new release
jacobmartin0 Sep 3, 2024
6af7f1e
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Sep 3, 2024
a9125dd
UBUNTU: Ubuntu-nvidia-6.8.0-1014.15
jacobmartin0 Sep 3, 2024
00265fd
UBUNTU: Start new release
jacobmartin0 Oct 2, 2024
33d08f4
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Oct 2, 2024
88a2349
UBUNTU: Ubuntu-nvidia-6.8.0-1015.16
jacobmartin0 Oct 2, 2024
72e460e
NVIDIA: SAUCE: acpi/prmt: find block with specific type
KobaKoNvidia Jul 18, 2024
f463ceb
UBUNTU: [Packaging] nvidia: Don't build linux-nvidia-tools-host
juergh Aug 19, 2024
ba91bca
UBUNTU: [Packaging] dkms-build: Support DEB822 sources
nwager Jun 6, 2024
9e3e75e
net: mana: Enable MANA driver on ARM64 with 4K page size
haiyangz Oct 16, 2024
0753c2a
net: mana: Add support for page sizes other than 4KB on ARM64
haiyangz Oct 16, 2024
9ab5c26
RDMA/mana_ib: use the correct page table index based on hardware page…
longlimsft Oct 16, 2024
1aedcac
RDMA/mana_ib: use the correct page size for mapping user-mode doorbel…
longlimsft Oct 16, 2024
ba7dad0
UBUNTU: [Config] nvidia: Enable MANA configs on x86 and arm64
jacobmartin0 Oct 16, 2024
b545b21
UBUNTU: [Packaging] nvidia: Include mana.ko in linux-modules-ABIVER p…
jacobmartin0 Oct 16, 2024
5ea85e2
UBUNTU: Start new release
jacobmartin0 Oct 17, 2024
480982e
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Oct 17, 2024
b391e9f
UBUNTU: Ubuntu-nvidia-6.8.0-1017.19
jacobmartin0 Oct 17, 2024
b0d99cc
UBUNTU: Start new release
jacobmartin0 Nov 7, 2024
5f54188
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Nov 7, 2024
cfb9464
UBUNTU: Ubuntu-nvidia-6.8.0-1018.20
jacobmartin0 Nov 7, 2024
152774b
cppc_cpufreq: Use desired perf if feedback ctrs are 0 or unchanged
Sep 29, 2024
8b788f3
cppc_cpufreq: Remove HiSilicon CPPC workaround
Sep 29, 2024
5d3e01a
cpufreq/cppc: Don't compare desired_perf in target()
Jun 12, 2024
d5ea0e0
UBUNTU: Start new release
jacobmartin0 Nov 20, 2024
a1774d5
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Nov 20, 2024
98be61a
UBUNTU: [Packaging] debian.nvidia/dkms-versions -- update from kernel…
jacobmartin0 Nov 20, 2024
dc0de2b
UBUNTU: Ubuntu-nvidia-6.8.0-1019.21
jacobmartin0 Nov 20, 2024
d468479
UBUNTU: SAUCE: Revert "vfio/pci: Insert full vma on mmap'd MMIO fault"
jacobmartin0 Nov 22, 2024
4ddd352
UBUNTU: SAUCE: Revert "vfio/pci: Use unmap_mapping_range()"
jacobmartin0 Nov 22, 2024
c90250c
ice: Remove and readd netdev during devlink reload
WojDrew Feb 5, 2024
ec8bd66
UBUNTU: Start new release
jacobmartin0 Dec 9, 2024
bad0f38
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Dec 9, 2024
7123dee
UBUNTU: Ubuntu-nvidia-6.8.0-1020.22
jacobmartin0 Dec 9, 2024
5ac091f
NVIDIA: SAUCE: ACPI/HMAT: Move HMAT messages to pr_debug()
djbw Jan 31, 2024
4fa495c
coresight: Make language around "activated" sinks consistent
James-A-Clark Jan 29, 2024
2e66501
coresight: Remove ops callback checks
James-A-Clark Jan 29, 2024
34d6534
coresight: Move mode to struct coresight_device
James-A-Clark Jan 29, 2024
f62cdd5
coresight: Remove the 'enable' field.
James-A-Clark Jan 29, 2024
0a159b1
coresight: Move all sysfs code to sysfs file
James-A-Clark Jan 29, 2024
8591c10
coresight: Remove atomic type from refcnt
James-A-Clark Jan 29, 2024
d09b64f
coresight: Remove unused stubs
James-A-Clark Jan 29, 2024
69898a7
coresight: Add explicit member initializers to coresight_dev_type
James-A-Clark Jan 29, 2024
3da4398
coresight: Add helper for atomically taking the device
James-A-Clark Jan 29, 2024
eb2c59d
coresight: Add a helper for getting csdev->mode
James-A-Clark Jan 29, 2024
6a88460
coresight: Add helper for setting csdev->mode
James-A-Clark Jan 29, 2024
e157578
perf auxtrace: Allow number of queues to be specified
James-A-Clark Apr 29, 2024
79b3940
perf cs-etm: Print error for new PERF_RECORD_AUX_OUTPUT_HW_ID versions
James-A-Clark Apr 29, 2024
196e53f
libperf cpumap: Add any, empty and min helpers
captain5050 Feb 2, 2024
fca515c
perf arm-spe/cs-etm: Directly iterate CPU maps
captain5050 Feb 2, 2024
aa72f4b
perf cs-etm: Use struct perf_cpu as much as possible
James-A-Clark May 1, 2024
c232682
perf cs-etm: Create decoders after both AUX and HW_ID search passes
James-A-Clark Jul 22, 2024
a60f3af
perf: cs-etm: Allocate queues for all CPUs
James-A-Clark Jul 22, 2024
5bbf91f
perf: cs-etm: Move traceid_list to each queue
James-A-Clark Jul 22, 2024
1fa740c
perf: cs-etm: Create decoders based on the trace ID mappings
James-A-Clark Jul 22, 2024
f2a3dc6
perf: cs-etm: Only save valid trace IDs into files
James-A-Clark Jul 22, 2024
03881c3
perf: cs-etm: Support version 0.1 of HW_ID packets
James-A-Clark Jul 22, 2024
b5d5407
perf: cs-etm: Print queue number in raw trace dump
James-A-Clark Jul 22, 2024
3abb5a7
coresight: Remove unused ETM Perf stubs
James-A-Clark Jul 22, 2024
97224b3
coresight: Clarify comments around the PID of the sink owner
James-A-Clark Jul 22, 2024
1f2293a
coresight: Move struct coresight_trace_id_map to common header
James-A-Clark Jul 22, 2024
d32196e
coresight: Expose map arguments in trace ID API
James-A-Clark Jul 22, 2024
bbf446e
coresight: Make CPU id map a property of a trace ID map
James-A-Clark Jul 22, 2024
6645313
coresight: Use per-sink trace ID maps for Perf sessions
James-A-Clark Jul 22, 2024
d9a69f1
coresight: Remove pending trace ID release mechanism
James-A-Clark Jul 22, 2024
0ca7032
coresight: Emit sink ID in the HW_ID packets
James-A-Clark Jul 22, 2024
8465f5c
coresight: Make trace ID map spinlock local to the map
James-A-Clark Jul 22, 2024
1208122
UBUNTU: [Packaging] Enable coresight in Perf
Jan 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4566,6 +4566,38 @@
bridges without forcing it upstream. Note:
this removes isolation between devices and
may put more devices in an IOMMU group.
config_acs=
Format:
<ACS flags>@<pci_dev>[; ...]
Specify one or more PCI devices (in the format
specified above) optionally prepended with flags
and separated by semicolons. The respective
capabilities will be enabled, disabled or
unchanged based on what is specified in
flags.

ACS Flags is defined as follows:
bit-0 : ACS Source Validation
bit-1 : ACS Translation Blocking
bit-2 : ACS P2P Request Redirect
bit-3 : ACS P2P Completion Redirect
bit-4 : ACS Upstream Forwarding
bit-5 : ACS P2P Egress Control
bit-6 : ACS Direct Translated P2P
Each bit can be marked as:
'0' – force disabled
'1' – force enabled
'x' – unchanged
For example,
pci=config_acs=10x
would configure all devices that support
ACS to enable P2P Request Redirect, disable
Translation Blocking, and leave Source
Validation unchanged from whatever power-up
or firmware set it to.

Note: this may remove isolation between devices
and may put more devices in an IOMMU group.
force_floating [S390] Force usage of floating interrupts.
nomio [S390] Do not use MIO instructions.
norid [S390] ignore the RID field and force use of
Expand Down
10 changes: 5 additions & 5 deletions Ubuntu.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Name: linux
Version: 6.1.0
Series: 23.04 (lunar)
Name: linux-nvidia
Version: 6.8.0
Series: 24.04 (noble)
Description:
This is the source code for the Ubuntu linux kernel for the 23.04 series. This
source tree is used to produce the flavours: generic, generic-64k, generic-lpae.
This is the source code for the Ubuntu linux kernel for the 24.04 series. This
source tree is used to produce the flavours: nvidia, nvidia-64k.
This kernel is configured to support the widest range of desktop, laptop and
server configurations.
2 changes: 2 additions & 0 deletions arch/arm/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ static inline void __sync_icache_dcache(pte_t pteval)
extern void __sync_icache_dcache(pte_t pteval);
#endif

#define PFN_PTE_SHIFT PAGE_SHIFT

void set_ptes(struct mm_struct *mm, unsigned long addr,
pte_t *ptep, pte_t pteval, unsigned int nr);
#define set_ptes set_ptes
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mm/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1814,6 +1814,6 @@ void set_ptes(struct mm_struct *mm, unsigned long addr,
if (--nr == 0)
break;
ptep++;
pte_val(pteval) += PAGE_SIZE;
pteval = pte_next_pfn(pteval);
}
}
9 changes: 9 additions & 0 deletions arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2267,6 +2267,15 @@ config UNWIND_PATCH_PAC_INTO_SCS
select UNWIND_TABLES
select DYNAMIC_SCS

config ARM64_CONTPTE
bool "Contiguous PTE mappings for user memory" if EXPERT
depends on TRANSPARENT_HUGEPAGE
default y
help
When enabled, user mappings are configured using the PTE contiguous
bit, for any mappings that meet the size and alignment requirements.
This reduces TLB pressure and improves performance.

endmenu # "Kernel Features"

menu "Boot options"
Expand Down
132 changes: 132 additions & 0 deletions arch/arm64/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,138 @@ extern void __memset_io(volatile void __iomem *, int, size_t);
#define memcpy_fromio(a,c,l) __memcpy_fromio((a),(c),(l))
#define memcpy_toio(c,a,l) __memcpy_toio((c),(a),(l))

/*
* The ARM64 iowrite implementation is intended to support drivers that want to
* use write combining. For instance PCI drivers using write combining with a 64
* byte __iowrite64_copy() expect to get a 64 byte MemWr TLP on the PCIe bus.
*
* Newer ARM core have sensitive write combining buffers, it is important that
* the stores be contiguous blocks of store instructions. Normal memcpy
* approaches have a very low chance to generate write combining.
*
* Since this is the only API on ARM64 that should be used with write combining
* it also integrates the DGH hint which is supposed to lower the latency to
* emit the large TLP from the CPU.
*/

static inline void __const_memcpy_toio_aligned32(volatile u32 __iomem *to,
const u32 *from, size_t count)
{
switch (count) {
case 8:
asm volatile("str %w0, [%8, #4 * 0]\n"
"str %w1, [%8, #4 * 1]\n"
"str %w2, [%8, #4 * 2]\n"
"str %w3, [%8, #4 * 3]\n"
"str %w4, [%8, #4 * 4]\n"
"str %w5, [%8, #4 * 5]\n"
"str %w6, [%8, #4 * 6]\n"
"str %w7, [%8, #4 * 7]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "rZ"(from[4]), "rZ"(from[5]),
"rZ"(from[6]), "rZ"(from[7]), "r"(to));
break;
case 4:
asm volatile("str %w0, [%4, #4 * 0]\n"
"str %w1, [%4, #4 * 1]\n"
"str %w2, [%4, #4 * 2]\n"
"str %w3, [%4, #4 * 3]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "r"(to));
break;
case 2:
asm volatile("str %w0, [%2, #4 * 0]\n"
"str %w1, [%2, #4 * 1]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "r"(to));
break;
case 1:
__raw_writel(*from, to);
break;
default:
BUILD_BUG();
}
}

void __iowrite32_copy_full(void __iomem *to, const void *from, size_t count);

static inline void __const_iowrite32_copy(void __iomem *to, const void *from,
size_t count)
{
if (count == 8 || count == 4 || count == 2 || count == 1) {
__const_memcpy_toio_aligned32(to, from, count);
dgh();
} else {
__iowrite32_copy_full(to, from, count);
}
}

#define __iowrite32_copy(to, from, count) \
(__builtin_constant_p(count) ? \
__const_iowrite32_copy(to, from, count) : \
__iowrite32_copy_full(to, from, count))

static inline void __const_memcpy_toio_aligned64(volatile u64 __iomem *to,
const u64 *from, size_t count)
{
switch (count) {
case 8:
asm volatile("str %x0, [%8, #8 * 0]\n"
"str %x1, [%8, #8 * 1]\n"
"str %x2, [%8, #8 * 2]\n"
"str %x3, [%8, #8 * 3]\n"
"str %x4, [%8, #8 * 4]\n"
"str %x5, [%8, #8 * 5]\n"
"str %x6, [%8, #8 * 6]\n"
"str %x7, [%8, #8 * 7]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "rZ"(from[4]), "rZ"(from[5]),
"rZ"(from[6]), "rZ"(from[7]), "r"(to));
break;
case 4:
asm volatile("str %x0, [%4, #8 * 0]\n"
"str %x1, [%4, #8 * 1]\n"
"str %x2, [%4, #8 * 2]\n"
"str %x3, [%4, #8 * 3]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "r"(to));
break;
case 2:
asm volatile("str %x0, [%2, #8 * 0]\n"
"str %x1, [%2, #8 * 1]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "r"(to));
break;
case 1:
__raw_writeq(*from, to);
break;
default:
BUILD_BUG();
}
}

void __iowrite64_copy_full(void __iomem *to, const void *from, size_t count);

static inline void __const_iowrite64_copy(void __iomem *to, const void *from,
size_t count)
{
if (count == 8 || count == 4 || count == 2 || count == 1) {
__const_memcpy_toio_aligned64(to, from, count);
dgh();
} else {
__iowrite64_copy_full(to, from, count);
}
}

#define __iowrite64_copy(to, from, count) \
(__builtin_constant_p(count) ? \
__const_iowrite64_copy(to, from, count) : \
__iowrite64_copy_full(to, from, count))

/*
* I/O memory mapping functions.
*/
Expand Down
Loading