Skip to content

Commit 17c05cb

Browse files
committed
Merge branches 'for-next/misc', 'for-next/kselftest', 'for-next/efi-preempt', 'for-next/assembler-macro', 'for-next/typos', 'for-next/sme-ptrace-disable', 'for-next/local-tlbi-page-reused', 'for-next/mpam', 'for-next/acpi' and 'for-next/documentation', remote-tracking branch 'arm64/for-next/perf' into for-next/core
* arm64/for-next/perf: perf: arm_spe: Add support for filtering on data source perf: Add perf_event_attr::config4 perf/imx_ddr: Add support for PMU in DB (system interconnects) perf/imx_ddr: Get and enable optional clks perf/imx_ddr: Move ida_alloc() from ddr_perf_init() to ddr_perf_probe() dt-bindings: perf: fsl-imx-ddr: Add compatible string for i.MX8QM, i.MX8QXP and i.MX8DXL arch_topology: Provide a stub topology_core_has_smt() for !CONFIG_GENERIC_ARCH_TOPOLOGY perf/arm-ni: Fix and optimise register offset calculation perf: arm_pmuv3: Add new Cortex and C1 CPU PMUs perf: arm_cspmu: fix error handling in arm_cspmu_impl_unregister() perf/arm-ni: Add NoC S3 support perf/arm_cspmu: nvidia: Add pmevfiltr2 support perf/arm_cspmu: nvidia: Add revision id matching perf/arm_cspmu: Add pmpidr support perf/arm_cspmu: Add callback to reset filter config perf: arm_pmuv3: Don't use PMCCNTR_EL0 on SMT cores * for-next/misc: : Miscellaneous patches arm64: atomics: lse: Remove unused parameters from ATOMIC_FETCH_OP_AND macros arm64: remove duplicate ARCH_HAS_MEM_ENCRYPT arm64: mm: use untagged address to calculate page index arm64: mm: make linear mapping permission update more robust for patial range arm64/mm: Elide TLB flush in certain pte protection transitions arm64/mm: Rename try_pgd_pgtable_alloc_init_mm arm64/mm: Allow __create_pgd_mapping() to propagate pgtable_alloc() errors arm64: add unlikely hint to MTE async fault check in el0_svc_common arm64: acpi: add newline to deferred APEI warning arm64: entry: Clean out some indirection arm64/mm: Ensure PGD_SIZE is aligned to 64 bytes when PA_BITS = 52 arm64/mm: Drop cpu_set_[default|idmap]_tcr_t0sz() arm64: remove unused ARCH_PFN_OFFSET arm64: use SOFTIRQ_ON_OWN_STACK for enabling softirq stack arm64: Remove assertion on CONFIG_VMAP_STACK * for-next/kselftest: : arm64 kselftest patches kselftest/arm64: Align zt-test register dumps * for-next/efi-preempt: : arm64: Make EFI calls preemptible arm64/efi: Call EFI runtime services without disabling preemption arm64/efi: Move uaccess en/disable out of efi_set_pgd() arm64/efi: Drop efi_rt_lock spinlock from EFI arch wrapper arm64/fpsimd: Permit kernel mode NEON with IRQs off arm64/fpsimd: Don't warn when EFI execution context is preemptible efi/runtime-wrappers: Keep track of the efi_runtime_lock owner efi: Add missing static initializer for efi_mm::cpus_allowed_lock * for-next/assembler-macro: : arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers * for-next/typos: : Random typo/spelling fixes arm64: Fix double word in comments arm64: Fix typos and spelling errors in comments * for-next/sme-ptrace-disable: : Support disabling streaming mode via ptrace on SME only systems kselftest/arm64: Cover disabling streaming mode without SVE in fp-ptrace kselftst/arm64: Test NT_ARM_SVE FPSIMD format writes on non-SVE systems arm64/sme: Support disabling streaming mode via ptrace on SME only systems * for-next/local-tlbi-page-reused: : arm64, mm: avoid TLBI broadcast if page reused in write fault arm64, tlbflush: don't TLBI broadcast if page reused in write fault mm: add spurious fault fixing support for huge pmd * for-next/mpam: (34 commits) : Basic Arm MPAM driver (more to follow) MAINTAINERS: new entry for MPAM Driver arm_mpam: Add kunit tests for props_mismatch() arm_mpam: Add kunit test for bitmap reset arm_mpam: Add helper to reset saved mbwu state arm_mpam: Use long MBWU counters if supported arm_mpam: Probe for long/lwd mbwu counters arm_mpam: Consider overflow in bandwidth counter state arm_mpam: Track bandwidth counter state for power management arm_mpam: Add mpam_msmon_read() to read monitor value arm_mpam: Add helpers to allocate monitors arm_mpam: Probe and reset the rest of the features arm_mpam: Allow configuration to be applied and restored during cpu online arm_mpam: Use a static key to indicate when mpam is enabled arm_mpam: Register and enable IRQs arm_mpam: Extend reset logic to allow devices to be reset any time arm_mpam: Add a helper to touch an MSC from any CPU arm_mpam: Reset MSC controls from cpuhp callbacks arm_mpam: Merge supported features during mpam_enable() into mpam_class arm_mpam: Probe the hardware features resctrl supports arm_mpam: Add helpers for managing the locking around the mon_sel registers ... * for-next/acpi: : arm64 acpi updates ACPI: GTDT: Get rid of acpi_arch_timer_mem_init() * for-next/documentation: : arm64 Documentation updates Documentation/arm64: Fix the typo of register names
11 parents e6a2729 + c86d9f8 + a7717ca + a5baf58 + 287d163 + 337f7e3 + a0245b4 + cb1fa2e + ce1e142 + 155f8d4 + 4b7a59f commit 17c05cb

131 files changed

Lines changed: 5298 additions & 442 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/arch/arm64/booting.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -391,13 +391,13 @@ Before jumping into the kernel, the following conditions must be met:
391391
- SMCR_EL2.LEN must be initialised to the same value for all CPUs the
392392
kernel will execute on.
393393

394-
- HWFGRTR_EL2.nTPIDR2_EL0 (bit 55) must be initialised to 0b01.
394+
- HFGRTR_EL2.nTPIDR2_EL0 (bit 55) must be initialised to 0b01.
395395

396-
- HWFGWTR_EL2.nTPIDR2_EL0 (bit 55) must be initialised to 0b01.
396+
- HFGWTR_EL2.nTPIDR2_EL0 (bit 55) must be initialised to 0b01.
397397

398-
- HWFGRTR_EL2.nSMPRI_EL1 (bit 54) must be initialised to 0b01.
398+
- HFGRTR_EL2.nSMPRI_EL1 (bit 54) must be initialised to 0b01.
399399

400-
- HWFGWTR_EL2.nSMPRI_EL1 (bit 54) must be initialised to 0b01.
400+
- HFGWTR_EL2.nSMPRI_EL1 (bit 54) must be initialised to 0b01.
401401

402402
For CPUs with the Scalable Matrix Extension FA64 feature (FEAT_SME_FA64):
403403

Documentation/arch/arm64/sve.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,11 @@ The regset data starts with struct user_sve_header, containing:
402402
streaming mode and any SETREGSET of NT_ARM_SSVE will enter streaming mode
403403
if the target was not in streaming mode.
404404

405+
* On systems that do not support SVE it is permitted to use SETREGSET to
406+
write SVE_PT_REGS_FPSIMD formatted data via NT_ARM_SVE, in this case the
407+
vector length should be specified as 0. This allows streaming mode to be
408+
disabled on systems with SME but not SVE.
409+
405410
* If any register data is provided along with SVE_PT_VL_ONEXEC then the
406411
registers data will be interpreted with the current vector length, not
407412
the vector length configured for use on exec.

MAINTAINERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17448,6 +17448,16 @@ S: Maintained
1744817448
F: Documentation/devicetree/bindings/leds/backlight/mps,mp3309c.yaml
1744917449
F: drivers/video/backlight/mp3309c.c
1745017450

17451+
MPAM DRIVER
17452+
M: James Morse <james.morse@arm.com>
17453+
M: Ben Horgan <ben.horgan@arm.com>
17454+
R: Reinette Chatre <reinette.chatre@intel.com>
17455+
R: Fenghua Yu <fenghuay@nvidia.com>
17456+
S: Maintained
17457+
F: drivers/resctrl/mpam_*
17458+
F: drivers/resctrl/test_mpam_*
17459+
F: include/linux/arm_mpam.h
17460+
1745117461
MPS MP2869 DRIVER
1745217462
M: Wensheng Wang <wenswang@yeah.net>
1745317463
L: linux-hwmon@vger.kernel.org

arch/arm64/Kconfig

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ config ARM64
4747
select ARCH_HAS_SETUP_DMA_OPS
4848
select ARCH_HAS_SET_DIRECT_MAP
4949
select ARCH_HAS_SET_MEMORY
50-
select ARCH_HAS_MEM_ENCRYPT
5150
select ARCH_HAS_FORCE_DMA_UNENCRYPTED
5251
select ARCH_STACKWALK
5352
select ARCH_HAS_STRICT_KERNEL_RWX
@@ -2023,6 +2022,31 @@ config ARM64_TLB_RANGE
20232022
ARMv8.4-TLBI provides TLBI invalidation instruction that apply to a
20242023
range of input addresses.
20252024

2025+
config ARM64_MPAM
2026+
bool "Enable support for MPAM"
2027+
select ARM64_MPAM_DRIVER if EXPERT # does nothing yet
2028+
select ACPI_MPAM if ACPI
2029+
help
2030+
Memory System Resource Partitioning and Monitoring (MPAM) is an
2031+
optional extension to the Arm architecture that allows each
2032+
transaction issued to the memory system to be labelled with a
2033+
Partition identifier (PARTID) and Performance Monitoring Group
2034+
identifier (PMG).
2035+
2036+
Memory system components, such as the caches, can be configured with
2037+
policies to control how much of various physical resources (such as
2038+
memory bandwidth or cache memory) the transactions labelled with each
2039+
PARTID can consume. Depending on the capabilities of the hardware,
2040+
the PARTID and PMG can also be used as filtering criteria to measure
2041+
the memory system resource consumption of different parts of a
2042+
workload.
2043+
2044+
Use of this extension requires CPU support, support in the
2045+
Memory System Components (MSC), and a description from firmware
2046+
of where the MSCs are in the address space.
2047+
2048+
MPAM is exposed to user-space via the resctrl pseudo filesystem.
2049+
20262050
endmenu # "ARMv8.4 architectural features"
20272051

20282052
menu "ARMv8.5 architectural features"

arch/arm64/include/asm/alternative-macros.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#error "cpucaps have overflown ARM64_CB_BIT"
2020
#endif
2121

22-
#ifndef __ASSEMBLY__
22+
#ifndef __ASSEMBLER__
2323

2424
#include <linux/stringify.h>
2525

@@ -207,7 +207,7 @@ alternative_endif
207207
#define _ALTERNATIVE_CFG(insn1, insn2, cap, cfg, ...) \
208208
alternative_insn insn1, insn2, cap, IS_ENABLED(cfg)
209209

210-
#endif /* __ASSEMBLY__ */
210+
#endif /* __ASSEMBLER__ */
211211

212212
/*
213213
* Usage: asm(ALTERNATIVE(oldinstr, newinstr, cpucap));
@@ -219,7 +219,7 @@ alternative_endif
219219
#define ALTERNATIVE(oldinstr, newinstr, ...) \
220220
_ALTERNATIVE_CFG(oldinstr, newinstr, __VA_ARGS__, 1)
221221

222-
#ifndef __ASSEMBLY__
222+
#ifndef __ASSEMBLER__
223223

224224
#include <linux/types.h>
225225

@@ -263,6 +263,6 @@ alternative_has_cap_unlikely(const unsigned long cpucap)
263263
return true;
264264
}
265265

266-
#endif /* __ASSEMBLY__ */
266+
#endif /* __ASSEMBLER__ */
267267

268268
#endif /* __ASM_ALTERNATIVE_MACROS_H */

arch/arm64/include/asm/alternative.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include <asm/alternative-macros.h>
66

7-
#ifndef __ASSEMBLY__
7+
#ifndef __ASSEMBLER__
88

99
#include <linux/init.h>
1010
#include <linux/types.h>
@@ -34,5 +34,5 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
3434
void alt_cb_patch_nops(struct alt_instr *alt, __le32 *origptr,
3535
__le32 *updptr, int nr_inst);
3636

37-
#endif /* __ASSEMBLY__ */
37+
#endif /* __ASSEMBLER__ */
3838
#endif /* __ASM_ALTERNATIVE_H */

arch/arm64/include/asm/arch_gicv3.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#include <asm/sysreg.h>
1111

12-
#ifndef __ASSEMBLY__
12+
#ifndef __ASSEMBLER__
1313

1414
#include <linux/irqchip/arm-gic-common.h>
1515
#include <linux/stringify.h>
@@ -188,5 +188,5 @@ static inline bool gic_has_relaxed_pmr_sync(void)
188188
return cpus_have_cap(ARM64_HAS_GIC_PRIO_RELAXED_SYNC);
189189
}
190190

191-
#endif /* __ASSEMBLY__ */
191+
#endif /* __ASSEMBLER__ */
192192
#endif /* __ASM_ARCH_GICV3_H */

arch/arm64/include/asm/asm-extable.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
/* Data fields for EX_TYPE_UACCESS_CPY */
2828
#define EX_DATA_UACCESS_WRITE BIT(0)
2929

30-
#ifdef __ASSEMBLY__
30+
#ifdef __ASSEMBLER__
3131

3232
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
3333
.pushsection __ex_table, "a"; \
@@ -77,7 +77,7 @@
7777
__ASM_EXTABLE_RAW(\insn, \fixup, EX_TYPE_UACCESS_CPY, \uaccess_is_write)
7878
.endm
7979

80-
#else /* __ASSEMBLY__ */
80+
#else /* __ASSEMBLER__ */
8181

8282
#include <linux/stringify.h>
8383

@@ -132,6 +132,6 @@
132132
EX_DATA_REG(ADDR, addr) \
133133
")")
134134

135-
#endif /* __ASSEMBLY__ */
135+
#endif /* __ASSEMBLER__ */
136136

137137
#endif /* __ASM_ASM_EXTABLE_H */

arch/arm64/include/asm/assembler.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Copyright (C) 1996-2000 Russell King
66
* Copyright (C) 2012 ARM Ltd.
77
*/
8-
#ifndef __ASSEMBLY__
8+
#ifndef __ASSEMBLER__
99
#error "Only include this from assembly code"
1010
#endif
1111

@@ -371,7 +371,7 @@ alternative_endif
371371
* [start, end) with dcache line size explicitly provided.
372372
*
373373
* op: operation passed to dc instruction
374-
* domain: domain used in dsb instruciton
374+
* domain: domain used in dsb instruction
375375
* start: starting virtual address of the region
376376
* end: end virtual address of the region
377377
* linesz: dcache line size
@@ -412,7 +412,7 @@ alternative_endif
412412
* [start, end)
413413
*
414414
* op: operation passed to dc instruction
415-
* domain: domain used in dsb instruciton
415+
* domain: domain used in dsb instruction
416416
* start: starting virtual address of the region
417417
* end: end virtual address of the region
418418
* fixup: optional label to branch to on user fault

arch/arm64/include/asm/atomic_lse.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,17 @@ static __always_inline void __lse_atomic_and(int i, atomic_t *v)
103103
return __lse_atomic_andnot(~i, v);
104104
}
105105

106-
#define ATOMIC_FETCH_OP_AND(name, mb, cl...) \
106+
#define ATOMIC_FETCH_OP_AND(name) \
107107
static __always_inline int \
108108
__lse_atomic_fetch_and##name(int i, atomic_t *v) \
109109
{ \
110110
return __lse_atomic_fetch_andnot##name(~i, v); \
111111
}
112112

113-
ATOMIC_FETCH_OP_AND(_relaxed, )
114-
ATOMIC_FETCH_OP_AND(_acquire, a, "memory")
115-
ATOMIC_FETCH_OP_AND(_release, l, "memory")
116-
ATOMIC_FETCH_OP_AND( , al, "memory")
113+
ATOMIC_FETCH_OP_AND(_relaxed)
114+
ATOMIC_FETCH_OP_AND(_acquire)
115+
ATOMIC_FETCH_OP_AND(_release)
116+
ATOMIC_FETCH_OP_AND( )
117117

118118
#undef ATOMIC_FETCH_OP_AND
119119

@@ -210,17 +210,17 @@ static __always_inline void __lse_atomic64_and(s64 i, atomic64_t *v)
210210
return __lse_atomic64_andnot(~i, v);
211211
}
212212

213-
#define ATOMIC64_FETCH_OP_AND(name, mb, cl...) \
213+
#define ATOMIC64_FETCH_OP_AND(name) \
214214
static __always_inline long \
215215
__lse_atomic64_fetch_and##name(s64 i, atomic64_t *v) \
216216
{ \
217217
return __lse_atomic64_fetch_andnot##name(~i, v); \
218218
}
219219

220-
ATOMIC64_FETCH_OP_AND(_relaxed, )
221-
ATOMIC64_FETCH_OP_AND(_acquire, a, "memory")
222-
ATOMIC64_FETCH_OP_AND(_release, l, "memory")
223-
ATOMIC64_FETCH_OP_AND( , al, "memory")
220+
ATOMIC64_FETCH_OP_AND(_relaxed)
221+
ATOMIC64_FETCH_OP_AND(_acquire)
222+
ATOMIC64_FETCH_OP_AND(_release)
223+
ATOMIC64_FETCH_OP_AND( )
224224

225225
#undef ATOMIC64_FETCH_OP_AND
226226

0 commit comments

Comments
 (0)