lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230425093218.GA7967@willie-the-truck>
Date:   Tue, 25 Apr 2023 10:32:19 +0100
From:   Will Deacon <will@...nel.org>
To:     torvalds@...ux-foundation.org
Cc:     catalin.marinas@....com, linux-arm-kernel@...ts.infradead.org,
        linux-kernel@...r.kernel.org, kernel-team@...roid.com,
        maz@...nel.org, rostedt@...dmis.org
Subject: [GIT PULL] arm64 updates for 6.4

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ