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: <ZTv_N8NKLb0ifLAj@arm.com>
Date:   Fri, 27 Oct 2023 19:19:35 +0100
From:   Catalin Marinas <catalin.marinas@....com>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     Will Deacon <will@...nel.org>,
        Oliver Upton <oliver.upton@...ux.dev>,
        Marc Zyngier <maz@...nel.org>,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [GIT PULL] arm64 updates for 6.7

Hi Linus,

Here's the main arm64 pull request for 6.7. No major architecture
features this time around, just some new HWCAP definitions, support for
the Ampere SoC PMUs and a few fixes/cleanups. The bulk of the changes is
reworking of the CPU capability checking code (cpus_have_cap() etc).
Thanks.

The following changes since commit 6465e260f48790807eef06b583b38ca9789b6072:

  Linux 6.6-rc3 (2023-09-24 14:31:13 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 14dcf78a6c042dd9421b11485b394c6273568bca:

  Merge branch 'for-next/cpus_have_const_cap' into for-next/core (2023-10-26 17:10:18 +0100)

----------------------------------------------------------------
arm64 updates for 6.7:

* Major refactoring of the CPU capability detection logic resulting in
  the removal of the cpus_have_const_cap() function and migrating the
  code to "alternative" branches where possible

* Backtrace/kgdb: use IPIs and pseudo-NMI

* Perf and PMU:

  - Add support for Ampere SoC PMUs

  - Multi-DTC improvements for larger CMN configurations with multiple
    Debug & Trace Controllers

  - Rework the Arm CoreSight PMU driver to allow separate registration of
    vendor backend modules

  - Fixes: add missing MODULE_DEVICE_TABLE to the amlogic perf
    driver; use device_get_match_data() in the xgene driver; fix NULL
    pointer dereference in the hisi driver caused by calling
    cpuhp_state_remove_instance(); use-after-free in the hisi driver

* HWCAP updates:

  - FEAT_SVE_B16B16 (BFloat16)

  - FEAT_LRCPC3 (release consistency model)

  - FEAT_LSE128 (128-bit atomic instructions)

* SVE: remove a couple of pseudo registers from the cpufeature code.
  There is logic in place already to detect mismatched SVE features

* Miscellaneous:

  - Reduce the default swiotlb size (currently 64MB) if no ZONE_DMA
    bouncing is needed. The buffer is still required for small kmalloc()
    buffers

  - Fix module PLT counting with !RANDOMIZE_BASE

  - Restrict CPU_BIG_ENDIAN to LLVM IAS 15.x or newer move
    synchronisation code out of the set_ptes() loop

  - More compact cpufeature displaying enabled cores

  - Kselftest updates for the new CPU features

----------------------------------------------------------------
Andre Przywara (1):
      clocksource/drivers/arm_arch_timer: limit XGene-1 workaround

Anshuman Khandual (2):
      drivers: perf: arm_pmuv3: Read PMMIR_EL1 unconditionally
      drivers: perf: arm_pmuv3: Drop some unused arguments from armv8_pmu_init()

Besar Wicaksono (1):
      perf: arm_cspmu: Separate Arm and vendor module

Catalin Marinas (7):
      arm64: swiotlb: Reduce the default size if no ZONE_DMA bouncing needed
      arm64: Mark the 'addr' argument to set_ptes() and __set_pte_at() as unused
      Merge branches 'for-next/sve-remove-pseudo-regs', 'for-next/backtrace-ipi', 'for-next/kselftest', 'for-next/misc' and 'for-next/cpufeat-display-cores', remote-tracking branch 'arm64/for-next/perf' into for-next/core
      Merge branch 'for-next/feat_sve_b16b16' into for-next/core
      Merge branch 'for-next/feat_lrcpc3' into for-next/core
      Merge branch 'for-next/feat_lse128' into for-next/core
      Merge branch 'for-next/cpus_have_const_cap' into for-next/core

Douglas Anderson (7):
      irqchip/gic-v3: Enable support for SGIs to act as NMIs
      arm64: idle: Tag the arm64 idle functions as __cpuidle
      arm64: smp: Add arch support for backtrace using pseudo-NMI
      arm64: smp: IPI_CPU_STOP and IPI_CPU_CRASH_STOP should try for NMI
      arm64: kgdb: Implement kgdb_roundup_cpus() to enable pseudo-NMI roundup
      arm64: smp: Mark IPI globals as __ro_after_init
      arm64: smp: Don't directly call arch_smp_send_reschedule() for wakeup

Gavin Shan (1):
      arm64: Remove system_uses_lse_atomics()

Hao Chen (1):
      drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for hisi_hns3_pmu uninit process

Ilkka Koskinen (5):
      perf: arm_cspmu: Split 64-bit write to 32-bit writes
      perf: arm_cspmu: Support implementation specific filters
      perf: arm_cspmu: Support implementation specific validation
      perf: arm_cspmu: ampere_cspmu: Add support for Ampere SoC PMU
      docs/perf: Add ampere_cspmu to toctree to fix a build warning

James Morse (1):
      arm64, irqchip/gic-v3, ACPI: Move MADT GICC enabled check into a helper

Jeremy Linton (2):
      arm64: cpufeature: Display the set of cores with a feature
      arm64: cpufeature: Change DBM to display enabled cores

Joey Gouly (4):
      arm64: add FEAT_LRCPC3 HWCAP
      selftests/arm64: add HWCAP2_LRCPC3 test
      arm64: add FEAT_LSE128 HWCAP
      kselftest/arm64: add FEAT_LSE128 to hwcap test

Junhao He (1):
      perf: hisi: Fix use-after-free when register pmu fails

Marek Szyprowski (1):
      perf/amlogic: add missing MODULE_DEVICE_TABLE

Maria Yu (1):
      arm64: module: Fix PLT counting when CONFIG_RANDOMIZE_BASE=n

Mark Brown (5):
      arm64/sve: Remove ZCR pseudo register from cpufeature code
      arm64/sve: Remove SMCR pseudo register from cpufeature code
      kselftest/arm64: Validate SVCR in streaming SVE stress test
      arm64/sve: Report FEAT_SVE_B16B16 to userspace
      kselftest/arm64: Verify HWCAP2_SVE_B16B16

Mark Rutland (40):
      arm64: smp: Remove dedicated wakeup IPI
      arm64: smp: avoid NMI IPIs with broken MediaTek FW
      clocksource/drivers/arm_arch_timer: Initialize evtstrm after finalizing cpucaps
      arm64/arm: xen: enlighten: Fix KPTI checks
      arm64: Factor out cpucap definitions
      arm64: Add cpucap_is_possible()
      arm64: Add cpus_have_final_boot_cap()
      arm64: Rework setup_cpu_features()
      arm64: Fixup user features at boot time
      arm64: Split kpti_install_ng_mappings()
      arm64: kvm: Use cpus_have_final_cap() explicitly
      arm64: Explicitly save/restore CPACR when probing SVE and SME
      arm64: Use build-time assertions for cpucap ordering
      arm64: Rename SVE/SME cpu_enable functions
      arm64: Use a positive cpucap for FP/SIMD
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_{ADDRESS,GENERIC}_AUTH
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_ARMv8_4_TTL
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_BTI
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_CACHE_DIC
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_CNP
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_DIT
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_GIC_PRIO_MASKING
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_PAN
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_EPAN
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_RNG
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_WFXT
      arm64: Avoid cpus_have_const_cap() for ARM64_HAS_TLB_RANGE
      arm64: Avoid cpus_have_const_cap() for ARM64_MTE
      arm64: Avoid cpus_have_const_cap() for ARM64_SSBS
      arm64: Avoid cpus_have_const_cap() for ARM64_SPECTRE_V2
      arm64: Avoid cpus_have_const_cap() for ARM64_{SVE,SME,SME2,FA64}
      arm64: Avoid cpus_have_const_cap() for ARM64_UNMAP_KERNEL_AT_EL0
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_843419
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_1542419
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_1742098
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_2645198
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_CAVIUM_23154
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_NVIDIA_CARMEL_CNP
      arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_REPEAT_TLBI
      arm64: Remove cpus_have_const_cap()

Nathan Chancellor (1):
      arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer

Rob Herring (1):
      drivers/perf: xgene: Use device_get_match_data()

Robin Murphy (3):
      perf/arm-cmn: Fix DTC domain detection
      perf/arm-cmn: Rework DTC counters (again)
      perf/arm-cmn: Enable per-DTC counter allocation

Ryan Roberts (1):
      arm64/mm: Hoist synchronization out of set_ptes() loop

Yicong Yang (2):
      drivers/perf: hisi_pcie: Check the type first in pmu::event_init()
      drivers/perf: hisi_pcie: Initialize event->cpu only on success

 Documentation/admin-guide/perf/ampere_cspmu.rst    |  29 +++
 Documentation/admin-guide/perf/index.rst           |   1 +
 Documentation/arch/arm64/cpu-feature-registers.rst |   2 +
 Documentation/arch/arm64/elf_hwcaps.rst            |   9 +
 arch/arm/xen/enlighten.c                           |  25 +-
 arch/arm64/Kconfig                                 |   2 +
 arch/arm64/include/asm/Kbuild                      |   2 +-
 arch/arm64/include/asm/alternative-macros.h        |   8 +-
 arch/arm64/include/asm/arch_gicv3.h                |   8 +
 arch/arm64/include/asm/archrandom.h                |   2 +-
 arch/arm64/include/asm/cacheflush.h                |   2 +-
 arch/arm64/include/asm/cpu.h                       |   6 -
 arch/arm64/include/asm/cpucaps.h                   |  67 +++++
 arch/arm64/include/asm/cpufeature.h                |  98 ++++----
 arch/arm64/include/asm/cputype.h                   |   3 +-
 arch/arm64/include/asm/fpsimd.h                    |  36 ++-
 arch/arm64/include/asm/hwcap.h                     |   3 +
 arch/arm64/include/asm/irq.h                       |   3 +
 arch/arm64/include/asm/irqflags.h                  |  20 +-
 arch/arm64/include/asm/kvm_emulate.h               |   4 +-
 arch/arm64/include/asm/kvm_host.h                  |   2 +-
 arch/arm64/include/asm/kvm_mmu.h                   |   2 +-
 arch/arm64/include/asm/lse.h                       |   9 +-
 arch/arm64/include/asm/mmu.h                       |   2 +-
 arch/arm64/include/asm/mmu_context.h               |  28 ++-
 arch/arm64/include/asm/module.h                    |   3 +-
 arch/arm64/include/asm/mte.h                       |   4 +-
 arch/arm64/include/asm/pgtable-prot.h              |   6 +-
 arch/arm64/include/asm/pgtable.h                   |  34 ++-
 arch/arm64/include/asm/smp.h                       |   4 +-
 arch/arm64/include/asm/spectre.h                   |   2 +-
 arch/arm64/include/asm/tlbflush.h                  |   7 +-
 arch/arm64/include/asm/vectors.h                   |   2 +-
 arch/arm64/include/uapi/asm/hwcap.h                |   3 +
 arch/arm64/kernel/acpi_parking_protocol.c          |   2 +-
 arch/arm64/kernel/cpu_errata.c                     |  17 --
 arch/arm64/kernel/cpufeature.c                     | 272 ++++++++++-----------
 arch/arm64/kernel/cpuinfo.c                        |   3 +
 arch/arm64/kernel/efi.c                            |   3 +-
 arch/arm64/kernel/fpsimd.c                         | 149 +++++------
 arch/arm64/kernel/idle.c                           |   4 +-
 arch/arm64/kernel/module-plts.c                    |  13 +-
 arch/arm64/kernel/mte.c                            |   4 +-
 arch/arm64/kernel/process.c                        |   2 +-
 arch/arm64/kernel/proton-pack.c                    |   2 +-
 arch/arm64/kernel/smp.c                            | 147 ++++++++---
 arch/arm64/kernel/suspend.c                        |  13 +-
 arch/arm64/kernel/sys_compat.c                     |   2 +-
 arch/arm64/kernel/traps.c                          |   2 +-
 arch/arm64/kernel/vdso.c                           |   2 +-
 arch/arm64/kvm/arm.c                               |  10 +-
 arch/arm64/kvm/guest.c                             |   6 +-
 arch/arm64/kvm/hyp/pgtable.c                       |   4 +-
 arch/arm64/kvm/mmu.c                               |   2 +-
 arch/arm64/kvm/sys_regs.c                          |   2 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   2 +-
 arch/arm64/lib/delay.c                             |   2 +-
 arch/arm64/mm/fault.c                              |   2 +-
 arch/arm64/mm/hugetlbpage.c                        |   3 +-
 arch/arm64/mm/init.c                               |  11 +-
 arch/arm64/mm/mmap.c                               |   2 +-
 arch/arm64/mm/mmu.c                                |   3 +-
 arch/arm64/mm/proc.S                               |   3 +-
 arch/arm64/tools/Makefile                          |   4 +-
 arch/arm64/tools/cpucaps                           |   2 +-
 arch/arm64/tools/gen-cpucaps.awk                   |   6 +-
 arch/arm64/tools/sysreg                            |   8 +-
 drivers/acpi/processor_core.c                      |   2 +-
 drivers/clocksource/arm_arch_timer.c               |  36 ++-
 drivers/irqchip/irq-gic-v3.c                       |  82 ++++---
 drivers/perf/amlogic/meson_g12_ddr_pmu.c           |   1 +
 drivers/perf/arm-cmn.c                             | 154 ++++++------
 drivers/perf/arm_cspmu/Kconfig                     |  19 +-
 drivers/perf/arm_cspmu/Makefile                    |   8 +-
 drivers/perf/arm_cspmu/ampere_cspmu.c              | 272 +++++++++++++++++++++
 drivers/perf/arm_cspmu/arm_cspmu.c                 | 201 +++++++++++----
 drivers/perf/arm_cspmu/arm_cspmu.h                 |  32 ++-
 drivers/perf/arm_cspmu/nvidia_cspmu.c              |  34 ++-
 drivers/perf/arm_cspmu/nvidia_cspmu.h              |  17 --
 drivers/perf/arm_pmuv3.c                           |  46 +---
 drivers/perf/hisilicon/hisi_pcie_pmu.c             |   9 +-
 drivers/perf/hisilicon/hisi_uncore_pa_pmu.c        |   4 +-
 drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c      |   4 +-
 drivers/perf/hisilicon/hns3_pmu.c                  |   8 +-
 drivers/perf/xgene_pmu.c                           |  37 +--
 include/linux/acpi.h                               |   5 +
 include/linux/cpuhotplug.h                         |   2 +
 tools/testing/selftests/arm64/abi/hwcap.c          |  54 ++++
 tools/testing/selftests/arm64/fp/sve-test.S        |  19 ++
 89 files changed, 1459 insertions(+), 734 deletions(-)
 create mode 100644 Documentation/admin-guide/perf/ampere_cspmu.rst
 create mode 100644 arch/arm64/include/asm/cpucaps.h
 create mode 100644 drivers/perf/arm_cspmu/ampere_cspmu.c
 delete mode 100644 drivers/perf/arm_cspmu/nvidia_cspmu.h

-- 
Catalin

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ