linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Will Deacon <will@kernel.org>
To: torvalds@linux-foundation.org
Cc: catalin.marinas@arm.com, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kernel-team@android.com,
	maz@kernel.org, rostedt@goodmis.org
Subject: [GIT PULL] arm64 updates for 6.4
Date: Tue, 25 Apr 2023 10:32:19 +0100	[thread overview]
Message-ID: <20230425093218.GA7967@willie-the-truck> (raw)

Hi Linus,

Please pull this round of arm64 updates for 6.4. I've summarised the
topic branches in the tag commit, but the bulk of the code changes here
stem from a rework of the PMU driver so that PMUv3 hardware can be
driven on both 32-bit and 64-bit CPUs.

From a logistical perspective, we've got a couple of interesting
cross-tree interations:

 (1) We have a shared tracing branch with Steve (pulled from his
     'trace-direct-v6.3-rc3' tag) so that the arm64 support for direct
     calls can be implemented on top. This then ends up conflicting
     with a fix that landed after -rc3 in 2a2d8c51defb ("ftrace: Fix
     issue that 'direct->addr' not restored in modify_ftrace_direct()").

     The code changed by the fix is removed by the tag from Steve in
     8788ca164eba ("ftrace: Remove the legacy _ftrace_direct API") and
     the only part that needs fixing up is the definition of 'MULTI_FLAGS'
     to use 'FTRACE_OPS_FL_SAVE_ARGS' instead of 'FTRACE_OPS_FL_SAVE_REGS'.

 (2) Moving the PMUv3 driver out into drivers/perf/ triggered a latent
     probe-ordering bug with (p)KVM, so we're carrying a fix for that
     here with Marc's Ack.

Cheers,

Will

--->8

The following changes since commit e8d018dd0257f744ca50a729e3d042cf2ec9da65:

  Linux 6.3-rc3 (2023-03-19 13:27:55 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git tags/arm64-upstream

for you to fetch changes up to eeb3557cc188e42ae7f7bef2d6dc5bf0e078412e:

  Merge branch 'for-next/sysreg' into for-next/core (2023-04-20 18:03:07 +0100)

----------------------------------------------------------------
arm64 updates for 6.4

ACPI:
	* Improve error reporting when failing to manage SDEI on AGDI device
	  removal

Assembly routines:
	* Improve register constraints so that the compiler can make use of
	  the zero register instead of moving an immediate #0 into a GPR

	* Allow the compiler to allocate the registers used for CAS
	  instructions

CPU features and system registers:
	* Cleanups to the way in which CPU features are identified from the
	  ID register fields

	* Extend system register definition generation to handle Enum types
	  when defining shared register fields

	* Generate definitions for new _EL2 registers and add new fields
	  for ID_AA64PFR1_EL1

	* Allow SVE to be disabled separately from SME on the kernel
	  command-line

Tracing:
	* Support for "direct calls" in ftrace, which enables BPF tracing
	  for arm64

Kdump:
	* Don't bother unmapping the crashkernel from the linear mapping,
	  which then allows us to use huge (block) mappings and reduce
	  TLB pressure when a crashkernel is loaded.

Memory management:
	* Try again to remove data cache invalidation from the coherent DMA
	  allocation path

	* Simplify the fixmap code by mapping at page granularity

	* Allow the kfence pool to be allocated early, preventing the rest
	  of the linear mapping from being forced to page granularity

Perf and PMU:
	* Move CPU PMU code out to drivers/perf/ where it can be reused
	  by the 32-bit ARM architecture when running on ARMv8 CPUs

	* Fix race between CPU PMU probing and pKVM host de-privilege

	* Add support for Apple M2 CPU PMU

	* Adjust the generic PERF_COUNT_HW_BRANCH_INSTRUCTIONS event
	  dynamically, depending on what the CPU actually supports

	* Minor fixes and cleanups to system PMU drivers

Stack tracing:
	* Use the XPACLRI instruction to strip PAC from pointers, rather
	  than rolling our own function in C

	* Remove redundant PAC removal for toolchains that handle this in
	  their builtins

	* Make backtracing more resilient in the face of instrumentation

Miscellaneous:
	* Fix single-step with KGDB

	* Remove harmless warning when 'nokaslr' is passed on the kernel
	  command-line

	* Minor fixes and cleanups across the board

----------------------------------------------------------------
Baoquan He (3):
      arm64: kdump : take off the protection on crashkernel memory region
      arm64: kdump: do not map crashkernel region specifically
      arm64: kdump: defer the crashkernel reservation for platforms with no DMA memory zones

Besar Wicaksono (1):
      perf: arm_cspmu: Fix variable dereference warning

Dan Carpenter (1):
      arm64: delete dead code in this_cpu_set_vectors()

Dongxu Sun (3):
      arm64/signal: Use system_supports_tpidr2() to check TPIDR2
      arm64/signal: Alloc tpidr2 sigframe after checking system_supports_tpidr2()
      arm64/sme: Fix some comments of ARM SME

Florent Revest (8):
      ftrace: Let unregister_ftrace_direct_multi() call ftrace_free_filter()
      ftrace: Replace uses of _ftrace_direct APIs with _ftrace_direct_multi
      ftrace: Remove the legacy _ftrace_direct API
      ftrace: Rename _ftrace_direct_multi APIs to _ftrace_direct APIs
      ftrace: Store direct called addresses in their ops
      ftrace: Make DIRECT_CALLS work WITH_ARGS and !WITH_REGS
      arm64: ftrace: Add direct call support
      arm64: ftrace: Simplify get_ftrace_plt

Ilkka Koskinen (1):
      perf/arm-cmn: Move overlapping wp_combine field

Ira Weiny (1):
      arm: uaccess: Remove memcpy_page_flushcache()

Janne Grunau (2):
      dt-bindings: arm-pmu: Add PMU compatible strings for Apple M2 cores
      drivers/perf: apple_m1: Add Apple M2 support

Jiucheng Xu (1):
      perf/amlogic: Fix config1/config2 parsing issue

Junhao He (2):
      drivers/perf: hisi: Remove redundant initialized of pmu->name
      drivers/perf: hisi: add NULL check for name

Marc Zyngier (5):
      arm64: perf: Move PMUv3 driver to drivers/perf
      arm64: perf: Abstract system register accesses away
      ARM: Make CONFIG_CPU_V7 valid for 32bit ARMv8 implementations
      ARM: perf: Allow the use of the PMUv3 driver on 32bit ARM
      ARM: mach-virt: Select PMUv3 driver by default

Mark Brown (7):
      arm64/sysreg: Convert HFG[RW]TR_EL2 to automatic generation
      arm64/sysreg: Update ID_AA64PFR1_EL1 for DDI0601 2022-12
      arm64/idreg: Don't disable SME when disabling SVE
      arm64/sysreg: Convert HFGITR_EL2 to automatic generation
      arm64/cpufeature: Pull out helper for CPUID register definitions
      arm64/cpufeature: Consistently use symbolic constants for min_field_value
      arm64/cpufeature: Use helper macro to specify ID register for capabilites

Mark Rutland (15):
      ftrace: selftest: remove broken trace_direct_tramp
      arm64: atomics: lse: improve cmpxchg implementation
      arm64: uaccess: permit __smp_store_release() to use zero register
      arm64: uaccess: permit put_{user,kernel} to use zero register
      arm64: uaccess: remove unnecessary earlyclobber
      arm64/sysreg: allow *Enum blocks in SysregFields blocks
      arm64: stacktrace: recover return address for first entry
      arm64: stacktrace: move dump functions to end of file
      arm64: stacktrace: always inline core stacktrace functions
      arm64: add FIXADDR_TOT_{START,SIZE}
      arm64: mm: move fixmap code to its own file
      arm64: mm: always map fixmap at page granularity
      arm64: avoid redundant PAC stripping in __builtin_return_address()
      arm64: use XPACLRI to strip PAC
      arm64: move PAC masks to <asm/pointer_auth.h>

Nick Alcock (1):
      kbuild, drivers/perf: remove MODULE_LICENSE in non-modules

Pavankumar Kondeti (1):
      arm64: kernel: Fix kernel warning when nokaslr is passed to commandline

Pierre Gondois (1):
      firmware: arm_sdei: Fix sleep from invalid context BUG

Robin Murphy (2):
      perf/arm-cmn: Validate cycles events fully
      perf/arm-cmn: Fix port detection for CMN-700

Simon Horman (1):
      arm64: kexec: include reboot.h

Stephane Eranian (1):
      arm64: pmuv3: dynamically map PERF_COUNT_HW_BRANCH_INSTRUCTIONS

Sumit Garg (1):
      arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step

Teo Couprie Diaz (1):
      arm64: compat: Remove defines now in asm-generic

Uwe Kleine-König (1):
      ACPI: AGDI: Improve error reporting for problems during .remove()

Will Deacon (14):
      Revert "ARM: mach-virt: Select PMUv3 driver by default"
      Revert "Revert "arm64: dma: Drop cache invalidation from arch_dma_prep_coherent()""
      Merge tag 'trace-direct-v6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace into for-next/ftrace
      Merge branch 'for-next/acpi' into for-next/core
      Merge branch 'for-next/asm' into for-next/core
      Merge branch 'for-next/cpufeature' into for-next/core
      Merge branch 'for-next/ftrace' into for-next/core
      Merge branch 'for-next/kdump' into for-next/core
      Merge branch 'for-next/misc' into for-next/core
      Merge branch 'for-next/mm' into for-next/core
      KVM: arm64: Ensure CPU PMU probes before pKVM host de-privilege
      Merge branch 'for-next/perf' into for-next/core
      Merge branch 'for-next/stacktrace' into for-next/core
      Merge branch 'for-next/sysreg' into for-next/core

Yang Li (3):
      perf: arm: Use devm_platform_get_and_ioremap_resource()
      perf: qcom: Use devm_platform_get_and_ioremap_resource()
      drivers/perf: Use devm_platform_get_and_ioremap_resource()

Yu Zhe (2):
      arm64: armv8_deprecated: remove unnecessary (void*) conversions
      arm64: kexec: remove unnecessary (void*) conversions

Zaid Al-Bassam (3):
      perf: pmuv3: Abstract PMU version checks
      perf: pmuv3: Move inclusion of kvm_host.h to the arch-specific helper
      perf: pmuv3: Change GENMASK to GENMASK_ULL

Zhenhua Huang (1):
      mm,kfence: decouple kfence from page granularity mapping judgement

 Documentation/devicetree/bindings/arm/pmu.yaml     |   2 +
 arch/arm/include/asm/arm_pmuv3.h                   | 247 ++++++++++++
 arch/arm/mm/Kconfig                                |   2 +-
 arch/arm64/Kconfig                                 |  18 +
 arch/arm64/include/asm/arm_pmuv3.h                 | 155 ++++++++
 arch/arm64/include/asm/atomic_lse.h                |  17 +-
 arch/arm64/include/asm/barrier.h                   |  10 +-
 arch/arm64/include/asm/compat.h                    |   4 -
 arch/arm64/include/asm/compiler.h                  |  36 +-
 arch/arm64/include/asm/debug-monitors.h            |   1 +
 arch/arm64/include/asm/fixmap.h                    |  22 +-
 arch/arm64/include/asm/ftrace.h                    |  22 ++
 arch/arm64/include/asm/kernel-pgtable.h            |   5 +-
 arch/arm64/include/asm/kexec.h                     |   6 -
 arch/arm64/include/asm/kfence.h                    |  10 +
 arch/arm64/include/asm/memory.h                    |   5 -
 arch/arm64/include/asm/mmu.h                       |   2 +
 arch/arm64/include/asm/perf_event.h                | 249 ------------
 arch/arm64/include/asm/pointer_auth.h              |  13 +-
 arch/arm64/include/asm/sysreg.h                    |   9 -
 arch/arm64/include/asm/uaccess.h                   |   6 +-
 arch/arm64/kernel/Makefile                         |   1 -
 arch/arm64/kernel/armv8_deprecated.c               |   4 +-
 arch/arm64/kernel/asm-offsets.c                    |   6 +
 arch/arm64/kernel/cpufeature.c                     | 272 +++----------
 arch/arm64/kernel/crash_core.c                     |   1 +
 arch/arm64/kernel/debug-monitors.c                 |   5 +
 arch/arm64/kernel/entry-ftrace.S                   |  90 ++++-
 arch/arm64/kernel/fpsimd.c                         |   4 +-
 arch/arm64/kernel/ftrace.c                         |  46 ++-
 arch/arm64/kernel/idreg-override.c                 |   9 +-
 arch/arm64/kernel/kgdb.c                           |   2 +
 arch/arm64/kernel/machine_kexec.c                  |  23 +-
 arch/arm64/kernel/perf_callchain.c                 |   2 +-
 arch/arm64/kernel/process.c                        |   2 +-
 arch/arm64/kernel/proton-pack.c                    |   3 -
 arch/arm64/kernel/signal.c                         |  18 +-
 arch/arm64/kernel/stacktrace.c                     | 144 +++----
 arch/arm64/kvm/arm.c                               |  45 ---
 arch/arm64/kvm/pkvm.c                              |  47 +++
 arch/arm64/lib/uaccess_flushcache.c                |   6 -
 arch/arm64/mm/Makefile                             |   2 +-
 arch/arm64/mm/dma-mapping.c                        |  17 +-
 arch/arm64/mm/fixmap.c                             | 203 ++++++++++
 arch/arm64/mm/init.c                               |  34 +-
 arch/arm64/mm/mmu.c                                | 288 +++-----------
 arch/arm64/mm/pageattr.c                           |   7 +-
 arch/arm64/mm/ptdump.c                             |   2 +-
 arch/arm64/tools/gen-sysreg.awk                    |  95 +++--
 arch/arm64/tools/sysreg                            | 165 +++++++-
 arch/s390/kernel/mcount.S                          |   5 +
 arch/x86/kernel/ftrace_32.S                        |   5 +
 arch/x86/kernel/ftrace_64.S                        |   4 +
 drivers/acpi/arm64/agdi.c                          |  13 +-
 drivers/firmware/arm_sdei.c                        |  37 +-
 drivers/perf/Kconfig                               |  10 +
 drivers/perf/Makefile                              |   1 +
 drivers/perf/alibaba_uncore_drw_pmu.c              |   3 +-
 drivers/perf/amlogic/meson_ddr_pmu_core.c          |   8 +-
 drivers/perf/apple_m1_cpu_pmu.c                    |  15 +-
 drivers/perf/arm-cmn.c                             |  61 +--
 drivers/perf/arm_cspmu/arm_cspmu.c                 |   6 +-
 drivers/perf/arm_dmc620_pmu.c                      |   3 +-
 .../perf_event.c => drivers/perf/arm_pmuv3.c       | 158 +++-----
 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c       |   2 +-
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c      |  19 +-
 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c       |   9 +-
 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c       |  13 +-
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c        |   2 +-
 drivers/perf/hisilicon/hisi_uncore_pmu.c           |   4 +-
 drivers/perf/hisilicon/hisi_uncore_pmu.h           |   3 +-
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c      |   2 +-
 drivers/perf/qcom_l3_pmu.c                         |   3 +-
 include/kvm/arm_pmu.h                              |   2 +-
 include/linux/cpuhotplug.h                         |   1 -
 include/linux/ftrace.h                             |  61 +--
 include/linux/perf/arm_pmuv3.h                     | 303 ++++++++++++++
 kernel/bpf/trampoline.c                            |  12 +-
 kernel/trace/Kconfig                               |   2 +-
 kernel/trace/ftrace.c                              | 438 ++-------------------
 kernel/trace/trace_selftest.c                      |  19 +-
 mm/kfence/core.c                                   |   4 +
 samples/Kconfig                                    |   2 +-
 samples/ftrace/ftrace-direct-modify.c              |  10 +-
 samples/ftrace/ftrace-direct-multi-modify.c        |   9 +-
 samples/ftrace/ftrace-direct-multi.c               |   5 +-
 samples/ftrace/ftrace-direct-too.c                 |  10 +-
 samples/ftrace/ftrace-direct.c                     |  10 +-
 88 files changed, 1936 insertions(+), 1722 deletions(-)
 create mode 100644 arch/arm/include/asm/arm_pmuv3.h
 create mode 100644 arch/arm64/include/asm/arm_pmuv3.h
 create mode 100644 arch/arm64/mm/fixmap.c
 rename arch/arm64/kernel/perf_event.c => drivers/perf/arm_pmuv3.c (92%)
 create mode 100644 include/linux/perf/arm_pmuv3.h


             reply	other threads:[~2023-04-25  9:32 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-25  9:32 Will Deacon [this message]
2023-04-25 19:45 ` [GIT PULL] arm64 updates for 6.4 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230425093218.GA7967@willie-the-truck \
    --to=will@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=kernel-team@android.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).