mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
perf-tools fixes and updates for v6.19
A number of small updates: - skip building BPF skeletons if libopenssl is missing - a couple of test updates - handle error cases of filename__read_build_id() - support NVIDIA Olympus for ARM SPE profiling - update tool headers to sync with the kernel Signed-off-by: Namhyung Kim <namhyung@kernel.org> -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQSo2x5BnqMqsoHtzsmMstVUGiXMgwUCaVg+TgAKCRCMstVUGiXM g1RGAQCdCKNbdPm45ALTQp6BNg5hLmglzwXG85KPsqwI2r+xIAEAnpYShUMfBCiw sigdkXJUkD3TFE1NdXenz92iNThV9Ag= =UT5P -----END PGP SIGNATURE----- Merge tag 'perf-tools-fixes-for-v6.19-2026-01-02' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools Pull perf tool fixes and from Namhyung Kim: - skip building BPF skeletons if libopenssl is missing - a couple of test updates - handle error cases of filename__read_build_id() - support NVIDIA Olympus for ARM SPE profiling - update tool headers to sync with the kernel * tag 'perf-tools-fixes-for-v6.19-2026-01-02' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: tools build: Fix the common set of features test wrt libopenssl tools headers: Sync syscall table with kernel sources tools headers: Sync linux/socket.h with kernel sources tools headers: Sync linux/gfp_types.h with kernel sources tools headers: Sync arm64 headers with kernel sources tools headers: Sync x86 headers with kernel sources tools headers: Sync UAPI sound/asound.h with kernel sources tools headers: Sync UAPI linux/mount.h with kernel sources tools headers: Sync UAPI linux/fs.h with kernel sources tools headers: Sync UAPI linux/fcntl.h with kernel sources tools headers: Sync UAPI KVM headers with kernel sources tools headers: Sync UAPI drm/drm.h with kernel sources perf arm-spe: Add NVIDIA Olympus to neoverse list tools headers arm64: Add NVIDIA Olympus part perf tests top: Make the test exclusive perf tests kvm: Avoid leaving perf.data.guest file around perf symbol: Fix ENOENT case for filename__read_build_id perf tools: Disable BPF skeleton if no libopenssl found tools/build: Add a feature test for libopenssl
This commit is contained in:
commit
805f9a0613
@ -81,7 +81,6 @@
|
|||||||
#define ARM_CPU_PART_CORTEX_A78AE 0xD42
|
#define ARM_CPU_PART_CORTEX_A78AE 0xD42
|
||||||
#define ARM_CPU_PART_CORTEX_X1 0xD44
|
#define ARM_CPU_PART_CORTEX_X1 0xD44
|
||||||
#define ARM_CPU_PART_CORTEX_A510 0xD46
|
#define ARM_CPU_PART_CORTEX_A510 0xD46
|
||||||
#define ARM_CPU_PART_CORTEX_X1C 0xD4C
|
|
||||||
#define ARM_CPU_PART_CORTEX_A520 0xD80
|
#define ARM_CPU_PART_CORTEX_A520 0xD80
|
||||||
#define ARM_CPU_PART_CORTEX_A710 0xD47
|
#define ARM_CPU_PART_CORTEX_A710 0xD47
|
||||||
#define ARM_CPU_PART_CORTEX_A715 0xD4D
|
#define ARM_CPU_PART_CORTEX_A715 0xD4D
|
||||||
@ -93,6 +92,7 @@
|
|||||||
#define ARM_CPU_PART_NEOVERSE_V2 0xD4F
|
#define ARM_CPU_PART_NEOVERSE_V2 0xD4F
|
||||||
#define ARM_CPU_PART_CORTEX_A720 0xD81
|
#define ARM_CPU_PART_CORTEX_A720 0xD81
|
||||||
#define ARM_CPU_PART_CORTEX_X4 0xD82
|
#define ARM_CPU_PART_CORTEX_X4 0xD82
|
||||||
|
#define ARM_CPU_PART_NEOVERSE_V3AE 0xD83
|
||||||
#define ARM_CPU_PART_NEOVERSE_V3 0xD84
|
#define ARM_CPU_PART_NEOVERSE_V3 0xD84
|
||||||
#define ARM_CPU_PART_CORTEX_X925 0xD85
|
#define ARM_CPU_PART_CORTEX_X925 0xD85
|
||||||
#define ARM_CPU_PART_CORTEX_A725 0xD87
|
#define ARM_CPU_PART_CORTEX_A725 0xD87
|
||||||
@ -130,6 +130,7 @@
|
|||||||
|
|
||||||
#define NVIDIA_CPU_PART_DENVER 0x003
|
#define NVIDIA_CPU_PART_DENVER 0x003
|
||||||
#define NVIDIA_CPU_PART_CARMEL 0x004
|
#define NVIDIA_CPU_PART_CARMEL 0x004
|
||||||
|
#define NVIDIA_CPU_PART_OLYMPUS 0x010
|
||||||
|
|
||||||
#define FUJITSU_CPU_PART_A64FX 0x001
|
#define FUJITSU_CPU_PART_A64FX 0x001
|
||||||
|
|
||||||
@ -171,7 +172,6 @@
|
|||||||
#define MIDR_CORTEX_A78AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
|
#define MIDR_CORTEX_A78AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
|
||||||
#define MIDR_CORTEX_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)
|
#define MIDR_CORTEX_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)
|
||||||
#define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510)
|
#define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510)
|
||||||
#define MIDR_CORTEX_X1C MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1C)
|
|
||||||
#define MIDR_CORTEX_A520 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A520)
|
#define MIDR_CORTEX_A520 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A520)
|
||||||
#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
|
#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
|
||||||
#define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715)
|
#define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715)
|
||||||
@ -183,6 +183,7 @@
|
|||||||
#define MIDR_NEOVERSE_V2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V2)
|
#define MIDR_NEOVERSE_V2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V2)
|
||||||
#define MIDR_CORTEX_A720 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A720)
|
#define MIDR_CORTEX_A720 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A720)
|
||||||
#define MIDR_CORTEX_X4 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X4)
|
#define MIDR_CORTEX_X4 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X4)
|
||||||
|
#define MIDR_NEOVERSE_V3AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3AE)
|
||||||
#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
|
#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
|
||||||
#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
|
#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
|
||||||
#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
|
#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
|
||||||
@ -222,6 +223,7 @@
|
|||||||
|
|
||||||
#define MIDR_NVIDIA_DENVER MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_DENVER)
|
#define MIDR_NVIDIA_DENVER MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_DENVER)
|
||||||
#define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
|
#define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
|
||||||
|
#define MIDR_NVIDIA_OLYMPUS MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_OLYMPUS)
|
||||||
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
|
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
|
||||||
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
|
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
|
||||||
#define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09)
|
#define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09)
|
||||||
@ -245,7 +247,7 @@
|
|||||||
/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */
|
/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */
|
||||||
#define MIDR_FUJITSU_ERRATUM_010001 MIDR_FUJITSU_A64FX
|
#define MIDR_FUJITSU_ERRATUM_010001 MIDR_FUJITSU_A64FX
|
||||||
#define MIDR_FUJITSU_ERRATUM_010001_MASK (~MIDR_CPU_VAR_REV(1, 0))
|
#define MIDR_FUJITSU_ERRATUM_010001_MASK (~MIDR_CPU_VAR_REV(1, 0))
|
||||||
#define TCR_CLEAR_FUJITSU_ERRATUM_010001 (TCR_NFD1 | TCR_NFD0)
|
#define TCR_CLEAR_FUJITSU_ERRATUM_010001 (TCR_EL1_NFD1 | TCR_EL1_NFD0)
|
||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
#ifndef __ASSEMBLER__
|
||||||
|
|
||||||
|
|||||||
@ -314,6 +314,7 @@
|
|||||||
#define X86_FEATURE_SM4 (12*32+ 2) /* SM4 instructions */
|
#define X86_FEATURE_SM4 (12*32+ 2) /* SM4 instructions */
|
||||||
#define X86_FEATURE_AVX_VNNI (12*32+ 4) /* "avx_vnni" AVX VNNI instructions */
|
#define X86_FEATURE_AVX_VNNI (12*32+ 4) /* "avx_vnni" AVX VNNI instructions */
|
||||||
#define X86_FEATURE_AVX512_BF16 (12*32+ 5) /* "avx512_bf16" AVX512 BFLOAT16 instructions */
|
#define X86_FEATURE_AVX512_BF16 (12*32+ 5) /* "avx512_bf16" AVX512 BFLOAT16 instructions */
|
||||||
|
#define X86_FEATURE_LASS (12*32+ 6) /* "lass" Linear Address Space Separation */
|
||||||
#define X86_FEATURE_CMPCCXADD (12*32+ 7) /* CMPccXADD instructions */
|
#define X86_FEATURE_CMPCCXADD (12*32+ 7) /* CMPccXADD instructions */
|
||||||
#define X86_FEATURE_ARCH_PERFMON_EXT (12*32+ 8) /* Intel Architectural PerfMon Extension */
|
#define X86_FEATURE_ARCH_PERFMON_EXT (12*32+ 8) /* Intel Architectural PerfMon Extension */
|
||||||
#define X86_FEATURE_FZRM (12*32+10) /* Fast zero-length REP MOVSB */
|
#define X86_FEATURE_FZRM (12*32+10) /* Fast zero-length REP MOVSB */
|
||||||
@ -338,6 +339,7 @@
|
|||||||
#define X86_FEATURE_AMD_STIBP (13*32+15) /* Single Thread Indirect Branch Predictors */
|
#define X86_FEATURE_AMD_STIBP (13*32+15) /* Single Thread Indirect Branch Predictors */
|
||||||
#define X86_FEATURE_AMD_STIBP_ALWAYS_ON (13*32+17) /* Single Thread Indirect Branch Predictors always-on preferred */
|
#define X86_FEATURE_AMD_STIBP_ALWAYS_ON (13*32+17) /* Single Thread Indirect Branch Predictors always-on preferred */
|
||||||
#define X86_FEATURE_AMD_IBRS_SAME_MODE (13*32+19) /* Indirect Branch Restricted Speculation same mode protection*/
|
#define X86_FEATURE_AMD_IBRS_SAME_MODE (13*32+19) /* Indirect Branch Restricted Speculation same mode protection*/
|
||||||
|
#define X86_FEATURE_EFER_LMSLE_MBZ (13*32+20) /* EFER.LMSLE must be zero */
|
||||||
#define X86_FEATURE_AMD_PPIN (13*32+23) /* "amd_ppin" Protected Processor Inventory Number */
|
#define X86_FEATURE_AMD_PPIN (13*32+23) /* "amd_ppin" Protected Processor Inventory Number */
|
||||||
#define X86_FEATURE_AMD_SSBD (13*32+24) /* Speculative Store Bypass Disable */
|
#define X86_FEATURE_AMD_SSBD (13*32+24) /* Speculative Store Bypass Disable */
|
||||||
#define X86_FEATURE_VIRT_SSBD (13*32+25) /* "virt_ssbd" Virtualized Speculative Store Bypass Disable */
|
#define X86_FEATURE_VIRT_SSBD (13*32+25) /* "virt_ssbd" Virtualized Speculative Store Bypass Disable */
|
||||||
@ -502,6 +504,15 @@
|
|||||||
#define X86_FEATURE_IBPB_EXIT_TO_USER (21*32+14) /* Use IBPB on exit-to-userspace, see VMSCAPE bug */
|
#define X86_FEATURE_IBPB_EXIT_TO_USER (21*32+14) /* Use IBPB on exit-to-userspace, see VMSCAPE bug */
|
||||||
#define X86_FEATURE_ABMC (21*32+15) /* Assignable Bandwidth Monitoring Counters */
|
#define X86_FEATURE_ABMC (21*32+15) /* Assignable Bandwidth Monitoring Counters */
|
||||||
#define X86_FEATURE_MSR_IMM (21*32+16) /* MSR immediate form instructions */
|
#define X86_FEATURE_MSR_IMM (21*32+16) /* MSR immediate form instructions */
|
||||||
|
#define X86_FEATURE_SGX_EUPDATESVN (21*32+17) /* Support for ENCLS[EUPDATESVN] instruction */
|
||||||
|
|
||||||
|
#define X86_FEATURE_SDCIAE (21*32+18) /* L3 Smart Data Cache Injection Allocation Enforcement */
|
||||||
|
#define X86_FEATURE_CLEAR_CPU_BUF_VM_MMIO (21*32+19) /*
|
||||||
|
* Clear CPU buffers before VM-Enter if the vCPU
|
||||||
|
* can access host MMIO (ignored for all intents
|
||||||
|
* and purposes if CLEAR_CPU_BUF_VM is set).
|
||||||
|
*/
|
||||||
|
#define X86_FEATURE_X2AVIC_EXT (21*32+20) /* AMD SVM x2AVIC support for 4k vCPUs */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BUG word(s)
|
* BUG word(s)
|
||||||
|
|||||||
@ -166,6 +166,10 @@
|
|||||||
* Processor MMIO stale data
|
* Processor MMIO stale data
|
||||||
* vulnerabilities.
|
* vulnerabilities.
|
||||||
*/
|
*/
|
||||||
|
#define ARCH_CAP_MCU_ENUM BIT(16) /*
|
||||||
|
* Indicates the presence of microcode update
|
||||||
|
* feature enumeration and status information.
|
||||||
|
*/
|
||||||
#define ARCH_CAP_FB_CLEAR BIT(17) /*
|
#define ARCH_CAP_FB_CLEAR BIT(17) /*
|
||||||
* VERW clears CPU fill buffer
|
* VERW clears CPU fill buffer
|
||||||
* even on MDS_NO CPUs.
|
* even on MDS_NO CPUs.
|
||||||
@ -327,6 +331,26 @@
|
|||||||
PERF_CAP_PEBS_FORMAT | PERF_CAP_PEBS_BASELINE | \
|
PERF_CAP_PEBS_FORMAT | PERF_CAP_PEBS_BASELINE | \
|
||||||
PERF_CAP_PEBS_TIMING_INFO)
|
PERF_CAP_PEBS_TIMING_INFO)
|
||||||
|
|
||||||
|
/* Arch PEBS */
|
||||||
|
#define MSR_IA32_PEBS_BASE 0x000003f4
|
||||||
|
#define MSR_IA32_PEBS_INDEX 0x000003f5
|
||||||
|
#define ARCH_PEBS_OFFSET_MASK 0x7fffff
|
||||||
|
#define ARCH_PEBS_INDEX_WR_SHIFT 4
|
||||||
|
|
||||||
|
#define ARCH_PEBS_RELOAD 0xffffffff
|
||||||
|
#define ARCH_PEBS_CNTR_ALLOW BIT_ULL(35)
|
||||||
|
#define ARCH_PEBS_CNTR_GP BIT_ULL(36)
|
||||||
|
#define ARCH_PEBS_CNTR_FIXED BIT_ULL(37)
|
||||||
|
#define ARCH_PEBS_CNTR_METRICS BIT_ULL(38)
|
||||||
|
#define ARCH_PEBS_LBR_SHIFT 40
|
||||||
|
#define ARCH_PEBS_LBR (0x3ull << ARCH_PEBS_LBR_SHIFT)
|
||||||
|
#define ARCH_PEBS_VECR_XMM BIT_ULL(49)
|
||||||
|
#define ARCH_PEBS_GPR BIT_ULL(61)
|
||||||
|
#define ARCH_PEBS_AUX BIT_ULL(62)
|
||||||
|
#define ARCH_PEBS_EN BIT_ULL(63)
|
||||||
|
#define ARCH_PEBS_CNTR_MASK (ARCH_PEBS_CNTR_GP | ARCH_PEBS_CNTR_FIXED | \
|
||||||
|
ARCH_PEBS_CNTR_METRICS)
|
||||||
|
|
||||||
#define MSR_IA32_RTIT_CTL 0x00000570
|
#define MSR_IA32_RTIT_CTL 0x00000570
|
||||||
#define RTIT_CTL_TRACEEN BIT(0)
|
#define RTIT_CTL_TRACEEN BIT(0)
|
||||||
#define RTIT_CTL_CYCLEACC BIT(1)
|
#define RTIT_CTL_CYCLEACC BIT(1)
|
||||||
@ -929,6 +953,10 @@
|
|||||||
#define MSR_IA32_APICBASE_BASE (0xfffff<<12)
|
#define MSR_IA32_APICBASE_BASE (0xfffff<<12)
|
||||||
|
|
||||||
#define MSR_IA32_UCODE_WRITE 0x00000079
|
#define MSR_IA32_UCODE_WRITE 0x00000079
|
||||||
|
|
||||||
|
#define MSR_IA32_MCU_ENUMERATION 0x0000007b
|
||||||
|
#define MCU_STAGING BIT(4)
|
||||||
|
|
||||||
#define MSR_IA32_UCODE_REV 0x0000008b
|
#define MSR_IA32_UCODE_REV 0x0000008b
|
||||||
|
|
||||||
/* Intel SGX Launch Enclave Public Key Hash MSRs */
|
/* Intel SGX Launch Enclave Public Key Hash MSRs */
|
||||||
@ -1226,6 +1254,8 @@
|
|||||||
#define MSR_IA32_VMX_VMFUNC 0x00000491
|
#define MSR_IA32_VMX_VMFUNC 0x00000491
|
||||||
#define MSR_IA32_VMX_PROCBASED_CTLS3 0x00000492
|
#define MSR_IA32_VMX_PROCBASED_CTLS3 0x00000492
|
||||||
|
|
||||||
|
#define MSR_IA32_MCU_STAGING_MBOX_ADDR 0x000007a5
|
||||||
|
|
||||||
/* Resctrl MSRs: */
|
/* Resctrl MSRs: */
|
||||||
/* - Intel: */
|
/* - Intel: */
|
||||||
#define MSR_IA32_L3_QOS_CFG 0xc81
|
#define MSR_IA32_L3_QOS_CFG 0xc81
|
||||||
|
|||||||
@ -502,6 +502,7 @@ struct kvm_sync_regs {
|
|||||||
/* vendor-specific groups and attributes for system fd */
|
/* vendor-specific groups and attributes for system fd */
|
||||||
#define KVM_X86_GRP_SEV 1
|
#define KVM_X86_GRP_SEV 1
|
||||||
# define KVM_X86_SEV_VMSA_FEATURES 0
|
# define KVM_X86_SEV_VMSA_FEATURES 0
|
||||||
|
# define KVM_X86_SNP_POLICY_BITS 1
|
||||||
|
|
||||||
struct kvm_vmx_nested_state_data {
|
struct kvm_vmx_nested_state_data {
|
||||||
__u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
|
__u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
|
||||||
|
|||||||
@ -99,7 +99,8 @@ FEATURE_TESTS_BASIC := \
|
|||||||
libzstd \
|
libzstd \
|
||||||
disassembler-four-args \
|
disassembler-four-args \
|
||||||
disassembler-init-styled \
|
disassembler-init-styled \
|
||||||
file-handle
|
file-handle \
|
||||||
|
libopenssl
|
||||||
|
|
||||||
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
||||||
# of all feature tests
|
# of all feature tests
|
||||||
@ -147,7 +148,8 @@ FEATURE_DISPLAY ?= \
|
|||||||
lzma \
|
lzma \
|
||||||
bpf \
|
bpf \
|
||||||
libaio \
|
libaio \
|
||||||
libzstd
|
libzstd \
|
||||||
|
libopenssl
|
||||||
|
|
||||||
#
|
#
|
||||||
# Declare group members of a feature to display the logical OR of the detection
|
# Declare group members of a feature to display the logical OR of the detection
|
||||||
|
|||||||
@ -67,12 +67,13 @@ FILES= \
|
|||||||
test-libopencsd.bin \
|
test-libopencsd.bin \
|
||||||
test-clang.bin \
|
test-clang.bin \
|
||||||
test-llvm.bin \
|
test-llvm.bin \
|
||||||
test-llvm-perf.bin \
|
test-llvm-perf.bin \
|
||||||
test-libaio.bin \
|
test-libaio.bin \
|
||||||
test-libzstd.bin \
|
test-libzstd.bin \
|
||||||
test-clang-bpf-co-re.bin \
|
test-clang-bpf-co-re.bin \
|
||||||
test-file-handle.bin \
|
test-file-handle.bin \
|
||||||
test-libpfm4.bin
|
test-libpfm4.bin \
|
||||||
|
test-libopenssl.bin
|
||||||
|
|
||||||
FILES := $(addprefix $(OUTPUT),$(FILES))
|
FILES := $(addprefix $(OUTPUT),$(FILES))
|
||||||
|
|
||||||
@ -106,7 +107,7 @@ all: $(FILES)
|
|||||||
__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS)
|
__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS)
|
||||||
BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1
|
BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1
|
||||||
BUILD_BFD = $(BUILD) -DPACKAGE='"perf"' -lbfd -ldl
|
BUILD_BFD = $(BUILD) -DPACKAGE='"perf"' -lbfd -ldl
|
||||||
BUILD_ALL = $(BUILD) -fstack-protector-all -O2 -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -lslang $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -ldl -lz -llzma -lzstd
|
BUILD_ALL = $(BUILD) -fstack-protector-all -O2 -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -lslang $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -ldl -lz -llzma -lzstd -lssl
|
||||||
|
|
||||||
__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)
|
__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)
|
||||||
BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1
|
BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1
|
||||||
@ -381,6 +382,9 @@ $(OUTPUT)test-file-handle.bin:
|
|||||||
$(OUTPUT)test-libpfm4.bin:
|
$(OUTPUT)test-libpfm4.bin:
|
||||||
$(BUILD) -lpfm
|
$(BUILD) -lpfm
|
||||||
|
|
||||||
|
$(OUTPUT)test-libopenssl.bin:
|
||||||
|
$(BUILD) -lssl
|
||||||
|
|
||||||
$(OUTPUT)test-bpftool-skeletons.bin:
|
$(OUTPUT)test-bpftool-skeletons.bin:
|
||||||
$(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
|
$(SYSTEM_BPFTOOL) version | grep '^features:.*skeletons' \
|
||||||
> $(@:.bin=.make.output) 2>&1
|
> $(@:.bin=.make.output) 2>&1
|
||||||
|
|||||||
@ -142,6 +142,10 @@
|
|||||||
# include "test-libtraceevent.c"
|
# include "test-libtraceevent.c"
|
||||||
#undef main
|
#undef main
|
||||||
|
|
||||||
|
#define main main_test_libopenssl
|
||||||
|
# include "test-libopenssl.c"
|
||||||
|
#undef main
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
main_test_libpython();
|
main_test_libpython();
|
||||||
@ -173,6 +177,7 @@ int main(int argc, char *argv[])
|
|||||||
main_test_reallocarray();
|
main_test_reallocarray();
|
||||||
main_test_libzstd();
|
main_test_libzstd();
|
||||||
main_test_libtraceevent();
|
main_test_libtraceevent();
|
||||||
|
main_test_libopenssl();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
7
tools/build/feature/test-libopenssl.c
Normal file
7
tools/build/feature/test-libopenssl.c
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include <openssl/ssl.h>
|
||||||
|
#include <openssl/opensslv.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return SSL_library_init();
|
||||||
|
}
|
||||||
@ -55,9 +55,7 @@ enum {
|
|||||||
#ifdef CONFIG_LOCKDEP
|
#ifdef CONFIG_LOCKDEP
|
||||||
___GFP_NOLOCKDEP_BIT,
|
___GFP_NOLOCKDEP_BIT,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_SLAB_OBJ_EXT
|
|
||||||
___GFP_NO_OBJ_EXT_BIT,
|
___GFP_NO_OBJ_EXT_BIT,
|
||||||
#endif
|
|
||||||
___GFP_LAST_BIT
|
___GFP_LAST_BIT
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -98,11 +96,7 @@ enum {
|
|||||||
#else
|
#else
|
||||||
#define ___GFP_NOLOCKDEP 0
|
#define ___GFP_NOLOCKDEP 0
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_SLAB_OBJ_EXT
|
|
||||||
#define ___GFP_NO_OBJ_EXT BIT(___GFP_NO_OBJ_EXT_BIT)
|
#define ___GFP_NO_OBJ_EXT BIT(___GFP_NO_OBJ_EXT_BIT)
|
||||||
#else
|
|
||||||
#define ___GFP_NO_OBJ_EXT 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Physical address zone modifiers (see linux/mmzone.h - low four bits)
|
* Physical address zone modifiers (see linux/mmzone.h - low four bits)
|
||||||
|
|||||||
@ -857,9 +857,11 @@ __SYSCALL(__NR_open_tree_attr, sys_open_tree_attr)
|
|||||||
__SYSCALL(__NR_file_getattr, sys_file_getattr)
|
__SYSCALL(__NR_file_getattr, sys_file_getattr)
|
||||||
#define __NR_file_setattr 469
|
#define __NR_file_setattr 469
|
||||||
__SYSCALL(__NR_file_setattr, sys_file_setattr)
|
__SYSCALL(__NR_file_setattr, sys_file_setattr)
|
||||||
|
#define __NR_listns 470
|
||||||
|
__SYSCALL(__NR_listns, sys_listns)
|
||||||
|
|
||||||
#undef __NR_syscalls
|
#undef __NR_syscalls
|
||||||
#define __NR_syscalls 470
|
#define __NR_syscalls 471
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 32 bit systems traditionally used different
|
* 32 bit systems traditionally used different
|
||||||
|
|||||||
@ -906,6 +906,21 @@ struct drm_get_cap {
|
|||||||
*/
|
*/
|
||||||
#define DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT 6
|
#define DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT 6
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE
|
||||||
|
*
|
||||||
|
* If set to 1 the DRM core will allow setting the COLOR_PIPELINE
|
||||||
|
* property on a &drm_plane, as well as drm_colorop properties.
|
||||||
|
*
|
||||||
|
* Setting of these plane properties will be rejected when this client
|
||||||
|
* cap is set:
|
||||||
|
* - COLOR_ENCODING
|
||||||
|
* - COLOR_RANGE
|
||||||
|
*
|
||||||
|
* The client must enable &DRM_CLIENT_CAP_ATOMIC first.
|
||||||
|
*/
|
||||||
|
#define DRM_CLIENT_CAP_PLANE_COLOR_PIPELINE 7
|
||||||
|
|
||||||
/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
|
/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
|
||||||
struct drm_set_client_cap {
|
struct drm_set_client_cap {
|
||||||
__u64 capability;
|
__u64 capability;
|
||||||
|
|||||||
@ -179,6 +179,7 @@ struct kvm_xen_exit {
|
|||||||
#define KVM_EXIT_LOONGARCH_IOCSR 38
|
#define KVM_EXIT_LOONGARCH_IOCSR 38
|
||||||
#define KVM_EXIT_MEMORY_FAULT 39
|
#define KVM_EXIT_MEMORY_FAULT 39
|
||||||
#define KVM_EXIT_TDX 40
|
#define KVM_EXIT_TDX 40
|
||||||
|
#define KVM_EXIT_ARM_SEA 41
|
||||||
|
|
||||||
/* For KVM_EXIT_INTERNAL_ERROR */
|
/* For KVM_EXIT_INTERNAL_ERROR */
|
||||||
/* Emulate instruction failed. */
|
/* Emulate instruction failed. */
|
||||||
@ -473,6 +474,14 @@ struct kvm_run {
|
|||||||
} setup_event_notify;
|
} setup_event_notify;
|
||||||
};
|
};
|
||||||
} tdx;
|
} tdx;
|
||||||
|
/* KVM_EXIT_ARM_SEA */
|
||||||
|
struct {
|
||||||
|
#define KVM_EXIT_ARM_SEA_FLAG_GPA_VALID (1ULL << 0)
|
||||||
|
__u64 flags;
|
||||||
|
__u64 esr;
|
||||||
|
__u64 gva;
|
||||||
|
__u64 gpa;
|
||||||
|
} arm_sea;
|
||||||
/* Fix the size of the union. */
|
/* Fix the size of the union. */
|
||||||
char padding[256];
|
char padding[256];
|
||||||
};
|
};
|
||||||
@ -963,6 +972,8 @@ struct kvm_enable_cap {
|
|||||||
#define KVM_CAP_RISCV_MP_STATE_RESET 242
|
#define KVM_CAP_RISCV_MP_STATE_RESET 242
|
||||||
#define KVM_CAP_ARM_CACHEABLE_PFNMAP_SUPPORTED 243
|
#define KVM_CAP_ARM_CACHEABLE_PFNMAP_SUPPORTED 243
|
||||||
#define KVM_CAP_GUEST_MEMFD_FLAGS 244
|
#define KVM_CAP_GUEST_MEMFD_FLAGS 244
|
||||||
|
#define KVM_CAP_ARM_SEA_TO_USER 245
|
||||||
|
#define KVM_CAP_S390_USER_OPEREXEC 246
|
||||||
|
|
||||||
struct kvm_irq_routing_irqchip {
|
struct kvm_irq_routing_irqchip {
|
||||||
__u32 irqchip;
|
__u32 irqchip;
|
||||||
|
|||||||
@ -701,6 +701,11 @@ ifndef NO_LIBBPF
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(feature-libopenssl), 1)
|
||||||
|
$(call detected,CONFIG_LIBOPENSSL)
|
||||||
|
CFLAGS += -DHAVE_LIBOPENSSL_SUPPORT
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef BUILD_BPF_SKEL
|
ifndef BUILD_BPF_SKEL
|
||||||
# BPF skeletons control a large number of perf features, by default
|
# BPF skeletons control a large number of perf features, by default
|
||||||
# they are enabled.
|
# they are enabled.
|
||||||
@ -717,6 +722,9 @@ ifeq ($(BUILD_BPF_SKEL),1)
|
|||||||
else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
|
else ifeq ($(filter -DHAVE_LIBBPF_SUPPORT, $(CFLAGS)),)
|
||||||
$(warning Warning: Disabled BPF skeletons as libbpf is required)
|
$(warning Warning: Disabled BPF skeletons as libbpf is required)
|
||||||
BUILD_BPF_SKEL := 0
|
BUILD_BPF_SKEL := 0
|
||||||
|
else ifeq ($(filter -DHAVE_LIBOPENSSL_SUPPORT, $(CFLAGS)),)
|
||||||
|
$(warning Warning: Disabled BPF skeletons as libopenssl is required)
|
||||||
|
BUILD_BPF_SKEL := 0
|
||||||
else ifeq ($(call get-executable,$(CLANG)),)
|
else ifeq ($(call get-executable,$(CLANG)),)
|
||||||
$(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
|
$(warning Warning: Disabled BPF skeletons as clang ($(CLANG)) is missing)
|
||||||
BUILD_BPF_SKEL := 0
|
BUILD_BPF_SKEL := 0
|
||||||
|
|||||||
@ -484,3 +484,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|||||||
@ -384,3 +384,4 @@
|
|||||||
467 n64 open_tree_attr sys_open_tree_attr
|
467 n64 open_tree_attr sys_open_tree_attr
|
||||||
468 n64 file_getattr sys_file_getattr
|
468 n64 file_getattr sys_file_getattr
|
||||||
469 n64 file_setattr sys_file_setattr
|
469 n64 file_setattr sys_file_setattr
|
||||||
|
470 n64 listns sys_listns
|
||||||
|
|||||||
@ -560,3 +560,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|||||||
@ -472,3 +472,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns sys_listns
|
||||||
|
|||||||
@ -473,3 +473,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|||||||
@ -515,3 +515,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|||||||
@ -475,3 +475,4 @@
|
|||||||
467 i386 open_tree_attr sys_open_tree_attr
|
467 i386 open_tree_attr sys_open_tree_attr
|
||||||
468 i386 file_getattr sys_file_getattr
|
468 i386 file_getattr sys_file_getattr
|
||||||
469 i386 file_setattr sys_file_setattr
|
469 i386 file_setattr sys_file_setattr
|
||||||
|
470 i386 listns sys_listns
|
||||||
|
|||||||
@ -394,6 +394,7 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|
||||||
#
|
#
|
||||||
# Due to a historical design error, certain syscalls are numbered differently
|
# Due to a historical design error, certain syscalls are numbered differently
|
||||||
|
|||||||
@ -440,3 +440,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|||||||
@ -276,12 +276,14 @@ static bool dso__missing_buildid_cache(struct dso *dso, int parm __maybe_unused)
|
|||||||
{
|
{
|
||||||
char filename[PATH_MAX];
|
char filename[PATH_MAX];
|
||||||
struct build_id bid = { .size = 0, };
|
struct build_id bid = { .size = 0, };
|
||||||
|
int err;
|
||||||
|
|
||||||
if (!dso__build_id_filename(dso, filename, sizeof(filename), false))
|
if (!dso__build_id_filename(dso, filename, sizeof(filename), false))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (filename__read_build_id(filename, &bid) == -1) {
|
err = filename__read_build_id(filename, &bid);
|
||||||
if (errno == ENOENT)
|
if (err < 0) {
|
||||||
|
if (err == -ENOENT)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pr_warning("Problems with %s file, consider removing it from the cache\n",
|
pr_warning("Problems with %s file, consider removing it from the cache\n",
|
||||||
|
|||||||
@ -118,7 +118,7 @@ setup_qemu() {
|
|||||||
skip "/dev/kvm not accessible"
|
skip "/dev/kvm not accessible"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! perf kvm stat record -a sleep 0.01 >/dev/null 2>&1; then
|
if ! perf kvm stat record -o /dev/null -a sleep 0.01 >/dev/null 2>&1; then
|
||||||
skip "No permission to record kvm events"
|
skip "No permission to record kvm events"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# perf top tests
|
# perf top tests (exclusive)
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|||||||
@ -32,11 +32,29 @@ typedef __kernel_sa_family_t sa_family_t;
|
|||||||
* 1003.1g requires sa_family_t and that sa_data is char.
|
* 1003.1g requires sa_family_t and that sa_data is char.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Deprecated for in-kernel use. Use struct sockaddr_unsized instead. */
|
||||||
struct sockaddr {
|
struct sockaddr {
|
||||||
sa_family_t sa_family; /* address family, AF_xxx */
|
sa_family_t sa_family; /* address family, AF_xxx */
|
||||||
char sa_data[14]; /* 14 bytes of protocol address */
|
char sa_data[14]; /* 14 bytes of protocol address */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct sockaddr_unsized - Unspecified size sockaddr for callbacks
|
||||||
|
* @sa_family: Address family (AF_UNIX, AF_INET, AF_INET6, etc.)
|
||||||
|
* @sa_data: Flexible array for address data
|
||||||
|
*
|
||||||
|
* This structure is designed for callback interfaces where the
|
||||||
|
* total size is known via the sockaddr_len parameter. Unlike struct
|
||||||
|
* sockaddr which has a fixed 14-byte sa_data limit or struct
|
||||||
|
* sockaddr_storage which has a fixed 128-byte sa_data limit, this
|
||||||
|
* structure can accommodate addresses of any size, but must be used
|
||||||
|
* carefully.
|
||||||
|
*/
|
||||||
|
struct sockaddr_unsized {
|
||||||
|
__kernel_sa_family_t sa_family; /* address family, AF_xxx */
|
||||||
|
char sa_data[]; /* flexible address data */
|
||||||
|
};
|
||||||
|
|
||||||
struct linger {
|
struct linger {
|
||||||
int l_onoff; /* Linger active */
|
int l_onoff; /* Linger active */
|
||||||
int l_linger; /* How long to linger for */
|
int l_linger; /* How long to linger for */
|
||||||
@ -450,10 +468,10 @@ extern int __sys_connect(int fd, struct sockaddr __user *uservaddr,
|
|||||||
int addrlen);
|
int addrlen);
|
||||||
extern int __sys_listen(int fd, int backlog);
|
extern int __sys_listen(int fd, int backlog);
|
||||||
extern int __sys_listen_socket(struct socket *sock, int backlog);
|
extern int __sys_listen_socket(struct socket *sock, int backlog);
|
||||||
|
extern int do_getsockname(struct socket *sock, int peer,
|
||||||
|
struct sockaddr __user *usockaddr, int __user *usockaddr_len);
|
||||||
extern int __sys_getsockname(int fd, struct sockaddr __user *usockaddr,
|
extern int __sys_getsockname(int fd, struct sockaddr __user *usockaddr,
|
||||||
int __user *usockaddr_len);
|
int __user *usockaddr_len, int peer);
|
||||||
extern int __sys_getpeername(int fd, struct sockaddr __user *usockaddr,
|
|
||||||
int __user *usockaddr_len);
|
|
||||||
extern int __sys_socketpair(int family, int type, int protocol,
|
extern int __sys_socketpair(int family, int type, int protocol,
|
||||||
int __user *usockvec);
|
int __user *usockvec);
|
||||||
extern int __sys_shutdown_sock(struct socket *sock, int how);
|
extern int __sys_shutdown_sock(struct socket *sock, int how);
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include <asm/fcntl.h>
|
#include <asm/fcntl.h>
|
||||||
#include <linux/openat2.h>
|
#include <linux/openat2.h>
|
||||||
|
#include <linux/types.h>
|
||||||
|
|
||||||
#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
|
#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
|
||||||
#define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1)
|
#define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1)
|
||||||
@ -79,6 +80,17 @@
|
|||||||
*/
|
*/
|
||||||
#define RWF_WRITE_LIFE_NOT_SET RWH_WRITE_LIFE_NOT_SET
|
#define RWF_WRITE_LIFE_NOT_SET RWH_WRITE_LIFE_NOT_SET
|
||||||
|
|
||||||
|
/* Set/Get delegations */
|
||||||
|
#define F_GETDELEG (F_LINUX_SPECIFIC_BASE + 15)
|
||||||
|
#define F_SETDELEG (F_LINUX_SPECIFIC_BASE + 16)
|
||||||
|
|
||||||
|
/* Argument structure for F_GETDELEG and F_SETDELEG */
|
||||||
|
struct delegation {
|
||||||
|
__u32 d_flags; /* Must be 0 */
|
||||||
|
__u16 d_type; /* F_RDLCK, F_WRLCK, F_UNLCK */
|
||||||
|
__u16 __pad; /* Must be 0 */
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Types of directory notifications that may be requested.
|
* Types of directory notifications that may be requested.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -298,8 +298,9 @@ struct file_attr {
|
|||||||
#define BLKROTATIONAL _IO(0x12,126)
|
#define BLKROTATIONAL _IO(0x12,126)
|
||||||
#define BLKZEROOUT _IO(0x12,127)
|
#define BLKZEROOUT _IO(0x12,127)
|
||||||
#define BLKGETDISKSEQ _IOR(0x12,128,__u64)
|
#define BLKGETDISKSEQ _IOR(0x12,128,__u64)
|
||||||
/* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */
|
/* 130-136 and 142 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */
|
||||||
/* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */
|
/* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */
|
||||||
|
#define BLKTRACESETUP2 _IOWR(0x12, 142, struct blk_user_trace_setup2)
|
||||||
|
|
||||||
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
|
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
|
||||||
#define FIBMAP _IO(0x00,1) /* bmap access */
|
#define FIBMAP _IO(0x00,1) /* bmap access */
|
||||||
|
|||||||
@ -197,7 +197,7 @@ struct statmount {
|
|||||||
*/
|
*/
|
||||||
struct mnt_id_req {
|
struct mnt_id_req {
|
||||||
__u32 size;
|
__u32 size;
|
||||||
__u32 spare;
|
__u32 mnt_ns_fd;
|
||||||
__u64 mnt_id;
|
__u64 mnt_id;
|
||||||
__u64 param;
|
__u64 param;
|
||||||
__u64 mnt_ns_id;
|
__u64 mnt_ns_id;
|
||||||
|
|||||||
@ -60,7 +60,7 @@ struct snd_cea_861_aud_if {
|
|||||||
unsigned char db2_sf_ss; /* sample frequency and size */
|
unsigned char db2_sf_ss; /* sample frequency and size */
|
||||||
unsigned char db3; /* not used, all zeros */
|
unsigned char db3; /* not used, all zeros */
|
||||||
unsigned char db4_ca; /* channel allocation code */
|
unsigned char db4_ca; /* channel allocation code */
|
||||||
unsigned char db5_dminh_lsv; /* downmix inhibit & level-shit values */
|
unsigned char db5_dminh_lsv; /* downmix inhibit & level-shift values */
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@ -587,6 +587,7 @@ static const struct midr_range common_ds_encoding_cpus[] = {
|
|||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
|
||||||
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
|
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
|
||||||
|
MIDR_ALL_VERSIONS(MIDR_NVIDIA_OLYMPUS),
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -426,8 +426,10 @@ int libbfd__read_build_id(const char *filename, struct build_id *bid)
|
|||||||
|
|
||||||
if (!filename)
|
if (!filename)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
if (!is_regular_file(filename))
|
if (!is_regular_file(filename))
|
||||||
return -EWOULDBLOCK;
|
return errno == 0 ? -EWOULDBLOCK : -errno;
|
||||||
|
|
||||||
fd = open(filename, O_RDONLY);
|
fd = open(filename, O_RDONLY);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
|
|||||||
@ -902,8 +902,10 @@ int filename__read_build_id(const char *filename, struct build_id *bid)
|
|||||||
|
|
||||||
if (!filename)
|
if (!filename)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
if (!is_regular_file(filename))
|
if (!is_regular_file(filename))
|
||||||
return -EWOULDBLOCK;
|
return errno == 0 ? -EWOULDBLOCK : -errno;
|
||||||
|
|
||||||
err = kmod_path__parse(&m, filename);
|
err = kmod_path__parse(&m, filename);
|
||||||
if (err)
|
if (err)
|
||||||
|
|||||||
@ -104,8 +104,10 @@ int filename__read_build_id(const char *filename, struct build_id *bid)
|
|||||||
|
|
||||||
if (!filename)
|
if (!filename)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
if (!is_regular_file(filename))
|
if (!is_regular_file(filename))
|
||||||
return -EWOULDBLOCK;
|
return errno == 0 ? -EWOULDBLOCK : -errno;
|
||||||
|
|
||||||
fd = open(filename, O_RDONLY);
|
fd = open(filename, O_RDONLY);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
|
|||||||
@ -410,3 +410,4 @@
|
|||||||
467 common open_tree_attr sys_open_tree_attr
|
467 common open_tree_attr sys_open_tree_attr
|
||||||
468 common file_getattr sys_file_getattr
|
468 common file_getattr sys_file_getattr
|
||||||
469 common file_setattr sys_file_setattr
|
469 common file_setattr sys_file_setattr
|
||||||
|
470 common listns sys_listns
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user