dc28abd85186f16dafa247ef87c1958e23b7f59c
88 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
![]() |
5bd75403be |
Merge remote-tracking branch 'remotes/origin/tmp-f686d9f' into msm-lahaina
* remotes/origin/tmp-f686d9f:
ANDROID: update abi_gki_aarch64.xml for 5.2-rc6
Linux 5.2-rc6
Revert "iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock"
Bluetooth: Fix regression with minimum encryption key size alignment
tcp: refine memory limit test in tcp_fragment()
x86/vdso: Prevent segfaults due to hoisted vclock reads
SUNRPC: Fix a credential refcount leak
Revert "SUNRPC: Declare RPC timers as TIMER_DEFERRABLE"
net :sunrpc :clnt :Fix xps refcount imbalance on the error path
NFS4: Only set creation opendata if O_CREAT
ANDROID: gki_defconfig: workaround to enable configs
ANDROID: gki_defconfig: more configs for partners
ARM: 8867/1: vdso: pass --be8 to linker if necessary
KVM: nVMX: reorganize initial steps of vmx_set_nested_state
KVM: PPC: Book3S HV: Invalidate ERAT when flushing guest TLB entries
habanalabs: use u64_to_user_ptr() for reading user pointers
nfsd: replace Jeff by Chuck as nfsd co-maintainer
inet: clear num_timeout reqsk_alloc()
PCI/P2PDMA: Ignore root complex whitelist when an IOMMU is present
net: mvpp2: debugfs: Add pmap to fs dump
ipv6: Default fib6_type to RTN_UNICAST when not set
net: hns3: Fix inconsistent indenting
net/af_iucv: always register net_device notifier
net/af_iucv: build proper skbs for HiperTransport
net/af_iucv: remove GFP_DMA restriction for HiperTransport
doc: fix documentation about UIO_MEM_LOGICAL using
MAINTAINERS / Documentation: Thorsten Scherer is the successor of Gavin Schenk
docs: fb: Add TER16x32 to the available font names
MAINTAINERS: fpga: hand off maintainership to Moritz
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 507
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 506
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 503
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 502
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 496
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 495
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 490
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 489
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 488
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 487
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 485
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 484
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 482
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 481
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 480
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 479
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 477
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 475
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 474
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 473
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 472
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 471
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 469
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 468
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 467
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 466
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 465
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 464
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 463
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 462
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 461
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 460
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 459
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 457
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 456
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 455
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 454
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 452
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 451
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 250
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 248
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 247
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 245
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 244
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 243
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 239
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 238
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 237
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 233
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 232
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 231
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 226
KVM: arm/arm64: Fix emulated ptimer irq injection
net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge()
tests: kvm: Check for a kernel warning
kvm: tests: Sort tests in the Makefile alphabetically
KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT
KVM: x86: Modify struct kvm_nested_state to have explicit fields for data
fanotify: update connector fsid cache on add mark
quota: fix a problem about transfer quota
drm/i915: Don't clobber M/N values during fastset check
powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
ovl: make i_ino consistent with st_ino in more cases
scsi: qla2xxx: Fix hardlockup in abort command during driver remove
scsi: ufs: Avoid runtime suspend possibly being blocked forever
scsi: qedi: update driver version to 8.37.0.20
scsi: qedi: Check targetname while finding boot target information
hvsock: fix epollout hang from race condition
net/udp_gso: Allow TX timestamp with UDP GSO
net: netem: fix use after free and double free with packet corruption
net: netem: fix backlog accounting for corrupted GSO frames
net: lio_core: fix potential sign-extension overflow on large shift
tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL
apparmor: reset pos on failure to unpack for various functions
apparmor: enforce nullbyte at end of tag string
apparmor: fix PROFILE_MEDIATES for untrusted input
RDMA/efa: Handle mmap insertions overflow
tun: wake up waitqueues after IFF_UP is set
drm: return -EFAULT if copy_to_user() fails
net: remove duplicate fetch in sock_getsockopt
tipc: fix issues with early FAILOVER_MSG from peer
bnx2x: Check if transceiver implements DDM before access
xhci: detect USB 3.2 capable host controllers correctly
usb: xhci: Don't try to recover an endpoint if port is in error state.
KVM: fix typo in documentation
drm/panfrost: Make sure a BO is only unmapped when appropriate
md: fix for divide error in status_resync
soc: ixp4xx: npe: Fix an IS_ERR() vs NULL check in probe
arm64/mm: don't initialize pgd_cache twice
MAINTAINERS: Update my email address
arm64/sve: <uapi/asm/ptrace.h> should not depend on <uapi/linux/prctl.h>
ovl: fix typo in MODULE_PARM_DESC
ovl: fix bogus -Wmaybe-unitialized warning
ovl: don't fail with disconnected lower NFS
mmc: core: Prevent processing SDIO IRQs when the card is suspended
mmc: sdhci: sdhci-pci-o2micro: Correctly set bus width when tuning
brcmfmac: sdio: Don't tune while the card is off
mmc: core: Add sdio_retune_hold_now() and sdio_retune_release()
brcmfmac: sdio: Disable auto-tuning around commands expected to fail
mmc: core: API to temporarily disable retuning for SDIO CRC errors
Revert "brcmfmac: disable command decode in sdio_aos"
ARM: ixp4xx: include irqs.h where needed
ARM: ixp4xx: mark ixp4xx_irq_setup as __init
ARM: ixp4xx: don't select SERIAL_OF_PLATFORM
firmware: trusted_foundations: add ARMv7 dependency
usb: dwc2: Use generic PHY width in params setup
RDMA/efa: Fix success return value in case of error
IB/hfi1: Handle port down properly in pio
IB/hfi1: Handle wakeup of orphaned QPs for pio
IB/hfi1: Wakeup QPs orphaned on wait list after flush
IB/hfi1: Use aborts to trigger RC throttling
IB/hfi1: Create inline to get extended headers
IB/hfi1: Silence txreq allocation warnings
IB/hfi1: Avoid hardlockup with flushlist_lock
KVM: PPC: Book3S HV: Only write DAWR[X] when handling h_set_dawr in real mode
KVM: PPC: Book3S HV: Fix r3 corruption in h_set_dabr()
fs/namespace: fix unprivileged mount propagation
vfs: fsmount: add missing mntget()
cifs: fix GlobalMid_Lock bug in cifs_reconnect
SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write
staging: erofs: add requirements field in superblock
arm64: ssbd: explicitly depend on <linux/prctl.h>
block: fix page leak when merging to same page
block: return from __bio_try_merge_page if merging occured in the same page
Btrfs: fix failure to persist compression property xattr deletion on fsync
riscv: remove unused barrier defines
usb: chipidea: udc: workaround for endpoint conflict issue
MAINTAINERS: Change QCOM repo location
mmc: mediatek: fix SDIO IRQ detection issue
mmc: mediatek: fix SDIO IRQ interrupt handle flow
mmc: core: complete HS400 before checking status
riscv: mm: synchronize MMU after pte change
MAINTAINERS: Update my email address to use @kernel.org
ANDROID: update abi_gki_aarch64.xml for 5.2-rc5
riscv: dts: add initial board data for the SiFive HiFive Unleashed
riscv: dts: add initial support for the SiFive FU540-C000 SoC
dt-bindings: riscv: convert cpu binding to json-schema
dt-bindings: riscv: sifive: add YAML documentation for the SiFive FU540
arch: riscv: add support for building DTB files from DT source data
drm/i915/gvt: ignore unexpected pvinfo write
lapb: fixed leak of control-blocks.
tipc: purge deferredq list for each grp member in tipc_group_delete
ax25: fix inconsistent lock state in ax25_destroy_timer
neigh: fix use-after-free read in pneigh_get_next
tcp: fix compile error if !CONFIG_SYSCTL
hv_sock: Suppress bogus "may be used uninitialized" warnings
be2net: Fix number of Rx queues used for flow hashing
net: handle 802.1P vlan 0 packets properly
Linux 5.2-rc5
tcp: enforce tcp_min_snd_mss in tcp_mtu_probing()
tcp: add tcp_min_snd_mss sysctl
tcp: tcp_fragment() should apply sane memory limits
tcp: limit payload size of sacked skbs
Revert "net: phylink: set the autoneg state in phylink_phy_change"
bpf: fix nested bpf tracepoints with per-cpu data
bpf: Fix out of bounds memory access in bpf_sk_storage
vsock/virtio: set SOCK_DONE on peer shutdown
net: dsa: rtl8366: Fix up VLAN filtering
net: phylink: set the autoneg state in phylink_phy_change
powerpc/32: fix build failure on book3e with KVM
powerpc/booke: fix fast syscall entry on SMP
powerpc/32s: fix initial setup of segment registers on secondary CPU
x86/microcode, cpuhotplug: Add a microcode loader CPU hotplug callback
net: add high_order_alloc_disable sysctl/static key
tcp: add tcp_tx_skb_cache sysctl
tcp: add tcp_rx_skb_cache sysctl
sysctl: define proc_do_static_key()
hv_netvsc: Set probe mode to sync
net: sched: flower: don't call synchronize_rcu() on mask creation
net: dsa: fix warning same module names
sctp: Free cookie before we memdup a new one
net: dsa: microchip: Don't try to read stats for unused ports
qmi_wwan: extend permitted QMAP mux_id value range
qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode
qmi_wwan: add network device usage statistics for qmimux devices
qmi_wwan: add support for QMAP padding in the RX path
bpf, x64: fix stack layout of JITed bpf code
Smack: Restore the smackfsdef mount option and add missing prefixes
bpf, devmap: Add missing RCU read lock on flush
bpf, devmap: Add missing bulk queue free
bpf, devmap: Fix premature entry free on destroying map
ftrace: Fix NULL pointer dereference in free_ftrace_func_mapper()
module: Fix livepatch/ftrace module text permissions race
tracing/uprobe: Fix obsolete comment on trace_uprobe_create()
tracing/uprobe: Fix NULL pointer dereference in trace_uprobe_create()
tracing: Make two symbols static
tracing: avoid build warning with HAVE_NOP_MCOUNT
tracing: Fix out-of-range read in trace_stack_print()
gfs2: Fix rounding error in gfs2_iomap_page_prepare
net: phylink: further mac_config documentation improvements
nfc: Ensure presence of required attributes in the deactivate_target handler
btrfs: start readahead also in seed devices
x86/kasan: Fix boot with 5-level paging and KASAN
cfg80211: report measurement start TSF correctly
cfg80211: fix memory leak of wiphy device name
cfg80211: util: fix bit count off by one
mac80211: do not start any work during reconfigure flow
cfg80211: use BIT_ULL in cfg80211_parse_mbssid_data()
mac80211: only warn once on chanctx_conf being NULL
mac80211: drop robust management frames from unknown TA
gpu: ipu-v3: image-convert: Fix image downsize coefficients
gpu: ipu-v3: image-convert: Fix input bytesperline for packed formats
gpu: ipu-v3: image-convert: Fix input bytesperline width/height align
thunderbolt: Implement CIO reset correctly for Titan Ridge
ARM: davinci: da8xx: specify dma_coherent_mask for lcdc
ARM: davinci: da850-evm: call regulator_has_full_constraints()
timekeeping: Repair ktime_get_coarse*() granularity
Revert "ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops"
ANDROID: update abi_gki_aarch64.xml
mm/devm_memremap_pages: fix final page put race
PCI/P2PDMA: track pgmap references per resource, not globally
lib/genalloc: introduce chunk owners
PCI/P2PDMA: fix the gen_pool_add_virt() failure path
mm/devm_memremap_pages: introduce devm_memunmap_pages
drivers/base/devres: introduce devm_release_action()
mm/vmscan.c: fix trying to reclaim unevictable LRU page
coredump: fix race condition between collapse_huge_page() and core dumping
mm/mlock.c: change count_mm_mlocked_page_nr return type
mm: mmu_gather: remove __tlb_reset_range() for force flush
fs/ocfs2: fix race in ocfs2_dentry_attach_lock()
mm/vmscan.c: fix recent_rotated history
mm/mlock.c: mlockall error for flag MCL_ONFAULT
scripts/decode_stacktrace.sh: prefix addr2line with $CROSS_COMPILE
mm/list_lru.c: fix memory leak in __memcg_init_list_lru_node
mm: memcontrol: don't batch updates of local VM stats and events
PCI: PM: Skip devices in D0 for suspend-to-idle
ANDROID: Removed extraneous configs from gki
powerpc/bpf: use unsigned division instruction for 64-bit operations
bpf: fix div64 overflow tests to properly detect errors
bpf: sync BPF_FIB_LOOKUP flag changes with BPF uapi
bpf: simplify definition of BPF_FIB_LOOKUP related flags
cifs: add spinlock for the openFileList to cifsInodeInfo
cifs: fix panic in smb2_reconnect
x86/fpu: Don't use current->mm to check for a kthread
KVM: nVMX: use correct clean fields when copying from eVMCS
vfio-ccw: Destroy kmem cache region on module exit
block/ps3vram: Use %llu to format sector_t after LBDAF removal
libata: Extend quirks for the ST1000LM024 drives with NOLPM quirk
bcache: only set BCACHE_DEV_WB_RUNNING when cached device attached
bcache: fix stack corruption by PRECEDING_KEY()
arm64/sve: Fix missing SVE/FPSIMD endianness conversions
blk-mq: remove WARN_ON(!q->elevator) from blk_mq_sched_free_requests
blkio-controller.txt: Remove references to CFQ
block/switching-sched.txt: Update to blk-mq schedulers
null_blk: remove duplicate check for report zone
blk-mq: no need to check return value of debugfs_create functions
io_uring: fix memory leak of UNIX domain socket inode
block: force select mq-deadline for zoned block devices
binder: fix possible UAF when freeing buffer
drm/amdgpu: return 0 by default in amdgpu_pm_load_smu_firmware
drm/amdgpu: Fix bounds checking in amdgpu_ras_is_supported()
ANDROID: x86 gki_defconfig: enable DMA_CMA
ANDROID: Fixed x86 regression
ANDROID: gki_defconfig: enable DMA_CMA
Input: synaptics - enable SMBus on ThinkPad E480 and E580
net: mvpp2: prs: Use the correct helpers when removing all VID filters
net: mvpp2: prs: Fix parser range for VID filtering
mlxsw: spectrum: Disallow prio-tagged packets when PVID is removed
mlxsw: spectrum_buffers: Reduce pool size on Spectrum-2
selftests: tc_flower: Add TOS matching test
mlxsw: spectrum_flower: Fix TOS matching
selftests: mlxsw: Test nexthop offload indication
mlxsw: spectrum_router: Refresh nexthop neighbour when it becomes dead
mlxsw: spectrum: Use different seeds for ECMP and LAG hash
net: tls, correctly account for copied bytes with multiple sk_msgs
vrf: Increment Icmp6InMsgs on the original netdev
cpuset: restore sanity to cpuset_cpus_allowed_fallback()
net: ethtool: Allow matching on vlan DEI bit
linux-next: DOC: RDS: Fix a typo in rds.txt
x86/kgdb: Return 0 from kgdb_arch_set_breakpoint()
mpls: fix af_mpls dependencies for real
selinux: fix a missing-check bug in selinux_sb_eat_lsm_opts()
selinux: fix a missing-check bug in selinux_add_mnt_opt( )
arm64: tlbflush: Ensure start/end of address range are aligned to stride
usb: typec: Make sure an alt mode exist before getting its partner
KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy
KVM: arm64: Filter out invalid core register IDs in KVM_GET_REG_LIST
KVM: arm64: Implement vq_present() as a macro
xdp: check device pointer before clearing
bpf: net: Set sk_bpf_storage back to NULL for cloned sk
Btrfs: fix race between block group removal and block group allocation
clocksource/drivers/arm_arch_timer: Don't trace count reader functions
i2c: pca-platform: Fix GPIO lookup code
thunderbolt: Make sure device runtime resume completes before taking domain lock
drm: add fallback override/firmware EDID modes workaround
i2c: acorn: fix i2c warning
arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS
drm/edid: abstract override/firmware EDID retrieval
platform/mellanox: mlxreg-hotplug: Add devm_free_irq call to remove flow
platform/x86: mlx-platform: Fix parent device in i2c-mux-reg device registration
platform/x86: intel-vbtn: Report switch events when event wakes device
platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi
ARM: mvebu_v7_defconfig: fix Ethernet on Clearfog
x86/resctrl: Prevent NULL pointer dereference when local MBM is disabled
x86/resctrl: Don't stop walking closids when a locksetup group is found
iommu/arm-smmu: Avoid constant zero in TLBI writes
drm/i915/perf: fix whitelist on Gen10+
drm/i915/sdvo: Implement proper HDMI audio support for SDVO
drm/i915: Fix per-pixel alpha with CCS
drm/i915/dmc: protect against reading random memory
drm/i915/dsi: Use a fuzzy check for burst mode clock check
Input: imx_keypad - make sure keyboard can always wake up system
selinux: log raw contexts as untrusted strings
ptrace: restore smp_rmb() in __ptrace_may_access()
IB/hfi1: Correct tid qp rcd to match verbs context
IB/hfi1: Close PSM sdma_progress sleep window
IB/hfi1: Validate fault injection opcode user input
geneve: Don't assume linear buffers in error handler
vxlan: Don't assume linear buffers in error handler
net: openvswitch: do not free vport if register_netdevice() is failed.
net: correct udp zerocopy refcnt also when zerocopy only on append
drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc
ovl: fix wrong flags check in FS_IOC_FS[SG]ETXATTR ioctls
riscv: Fix udelay in RV32.
drm/vmwgfx: fix a warning due to missing dma_parms
riscv: export pm_power_off again
drm/vmwgfx: Honor the sg list segment size limitation
RISC-V: defconfig: enable clocks, serial console
drm/vmwgfx: Use the backdoor port if the HB port is not available
bpf: lpm_trie: check left child of last leftmost node for NULL
Revert "fuse: require /dev/fuse reads to have enough buffer capacity"
ALSA: ice1712: Check correct return value to snd_i2c_sendbytes (EWS/DMX 6Fire)
ALSA: oxfw: allow PCM capture for Stanton SCS.1m
ALSA: firewire-motu: fix destruction of data for isochronous resources
s390/ctl_reg: mark __ctl_set_bit and __ctl_clear_bit as __always_inline
s390/boot: disable address-of-packed-member warning
ANDROID: update gki aarch64 ABI representation
cgroup: Fix css_task_iter_advance_css_set() cset skip condition
drm/panfrost: Require the simple_ondemand governor
drm/panfrost: make devfreq optional again
drm/gem_shmem: Use a writecombine mapping for ->vaddr
mmc: sdhi: disallow HS400 for M3-W ES1.2, RZ/G2M, and V3H
ASoC: Intel: sst: fix kmalloc call with wrong flags
ASoC: core: Fix deadlock in snd_soc_instantiate_card()
cgroup/bfq: revert bfq.weight symlink change
ARM: dts: am335x phytec boards: Fix cd-gpios active level
ARM: dts: dra72x: Disable usb4_tm target module
nfp: ensure skb network header is set for packet redirect
tcp: fix undo spurious SYNACK in passive Fast Open
mpls: fix af_mpls dependencies
ibmvnic: Fix unchecked return codes of memory allocations
ibmvnic: Refresh device multicast list after reset
ibmvnic: Do not close unopened driver during reset
mpls: fix warning with multi-label encap
net: phy: rename Asix Electronics PHY driver
ipv6: flowlabel: fl6_sock_lookup() must use atomic_inc_not_zero
net: ipv4: fib_semantics: fix uninitialized variable
Input: iqs5xx - get axis info before calling input_mt_init_slots()
Linux 5.2-rc4
drm: panel-orientation-quirks: Add quirk for GPD MicroPC
drm: panel-orientation-quirks: Add quirk for GPD pocket2
counter/ftm-quaddec: Add missing dependencies in Kconfig
staging: iio: adt7316: Fix build errors when GPIOLIB is not set
x86/fpu: Update kernel's FPU state before using for the fsave header
MAINTAINERS: Karthikeyan Ramasubramanian is MIA
i2c: xiic: Add max_read_len quirk
ANDROID: update ABI representation
gpio: pca953x: hack to fix 24 bit gpio expanders
net/mlx5e: Support tagged tunnel over bond
net/mlx5e: Avoid detaching non-existing netdev under switchdev mode
net/mlx5e: Fix source port matching in fdb peer flow rule
net/mlx5e: Replace reciprocal_scale in TX select queue function
net/mlx5e: Add ndo_set_feature for uplink representor
net/mlx5: Avoid reloading already removed devices
net/mlx5: Update pci error handler entries and command translation
RAS/CEC: Convert the timer callback to a workqueue
RAS/CEC: Fix binary search function
x86/mm/KASLR: Compute the size of the vmemmap section properly
can: purge socket error queue on sock destruct
can: flexcan: Remove unneeded registration message
can: af_can: Fix error path of can_init()
can: m_can: implement errata "Needless activation of MRAF irq"
can: mcp251x: add support for mcp25625
dt-bindings: can: mcp251x: add mcp25625 support
can: xilinx_can: use correct bittiming_const for CAN FD core
can: flexcan: fix timeout when set small bitrate
can: usb: Kconfig: Remove duplicate menu entry
lockref: Limit number of cmpxchg loop retries
uaccess: add noop untagged_addr definition
x86/insn-eval: Fix use-after-free access to LDT entry
kbuild: use more portable 'command -v' for cc-cross-prefix
s390/unwind: correct stack switching during unwind
scsi: hpsa: correct ioaccel2 chaining
btrfs: Always trim all unallocated space in btrfs_trim_free_extents
netfilter: ipv6: nf_defrag: accept duplicate fragments again
powerpc/32s: fix booting with CONFIG_PPC_EARLY_DEBUG_BOOTX
drm/meson: fix G12A primary plane disabling
drm/meson: fix primary plane disabling
drm/meson: fix G12A HDMI PLL settings for 4K60 1000/1001 variations
block, bfq: add weight symlink to the bfq.weight cgroup parameter
cgroup: let a symlink too be created with a cftype file
powerpc/64s: __find_linux_pte() synchronization vs pmdp_invalidate()
powerpc/64s: Fix THP PMD collapse serialisation
powerpc: Fix kexec failure on book3s/32
drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards
drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW
drm/nouveau/secboot: split out FW version-specific LS function pointers
drm/nouveau/secboot: pass max supported FW version to LS load funcs
drm/nouveau/core: support versioned firmware loading
drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device
block: free sched's request pool in blk_cleanup_queue
bpf: expand section tests for test_section_names
bpf: more msg_name rewrite tests to test_sock_addr
bpf, bpftool: enable recvmsg attach types
bpf, libbpf: enable recvmsg attach types
bpf: sync tooling uapi header
bpf: fix unconnected udp hooks
vfio/mdev: Synchronize device create/remove with parent removal
vfio/mdev: Avoid creating sysfs remove file on stale device removal
pktgen: do not sleep with the thread lock held.
net: mvpp2: Use strscpy to handle stat strings
net: rds: fix memory leak in rds_ib_flush_mr_pool
ipv6: fix EFAULT on sendto with icmpv6 and hdrincl
ipv6: use READ_ONCE() for inet->hdrincl as in ipv4
soundwire: intel: set dai min and max channels correctly
soundwire: stream: fix bad unlock balance
x86/fpu: Use fault_in_pages_writeable() for pre-faulting
nvme-rdma: use dynamic dma mapping per command
nvme: Fix u32 overflow in the number of namespace list calculation
vfio/mdev: Improve the create/remove sequence
SoC: rt274: Fix internal jack assignment in set_jack callback
ALSA: hdac: fix memory release for SST and SOF drivers
ASoC: SOF: Intel: hda: use the defined ppcap functions
ASoC: core: move DAI pre-links initiation to snd_soc_instantiate_card
ASoC: Intel: cht_bsw_rt5672: fix kernel oops with platform_name override
ASoC: Intel: cht_bsw_nau8824: fix kernel oops with platform_name override
ASoC: Intel: bytcht_es8316: fix kernel oops with platform_name override
ASoC: Intel: cht_bsw_max98090: fix kernel oops with platform_name override
Revert "gfs2: Replace gl_revokes with a GLF flag"
arm64: Silence gcc warnings about arch ABI drift
parisc: Fix crash due alternative coding for NP iopdir_fdc bit
parisc: Use lpa instruction to load physical addresses in driver code
parisc: configs: Remove useless UEVENT_HELPER_PATH
parisc: Use implicit space register selection for loading the coherence index of I/O pdirs
usb: gadget: udc: lpc32xx: fix return value check in lpc32xx_udc_probe()
usb: gadget: dwc2: fix zlp handling
usb: dwc2: Set actual frame number for completed ISOC transfer for none DDMA
usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC
usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i]
usb: phy: mxs: Disable external charger detect in mxs_phy_hw_init()
usb: dwc2: Fix DMA cache alignment issues
usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression)
ARM64: trivial: s/TIF_SECOMP/TIF_SECCOMP/ comment typo fix
drm/komeda: Potential error pointer dereference
drm/komeda: remove set but not used variable 'kcrtc'
x86/CPU: Add more Icelake model numbers
hwmon: (pmbus/core) Treat parameters as paged if on multiple pages
hwmon: (pmbus/core) mutex_lock write in pmbus_set_samples
hwmon: (core) add thermal sensors only if dev->of_node is present
Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied"
net: aquantia: fix wol configuration not applied sometimes
ethtool: fix potential userspace buffer overflow
Fix memory leak in sctp_process_init
net: rds: fix memory leak when unload rds_rdma
ipv6: fix the check before getting the cookie in rt6_get_cookie
ipv4: not do cache for local delivery if bc_forwarding is enabled
selftests: vm: Fix test build failure when built by itself
tools: bpftool: Fix JSON output when lookup fails
mmc: also set max_segment_size in the device
mtip32xx: also set max_segment_size in the device
rsxx: don't call dma_set_max_seg_size
nvme-pci: don't limit DMA segement size
s390/qeth: handle error when updating TX queue count
s390/qeth: fix VLAN attribute in bridge_hostnotify udev event
s390/qeth: check dst entry before use
s390/qeth: handle limited IPv4 broadcast in L3 TX path
ceph: fix error handling in ceph_get_caps()
ceph: avoid iput_final() while holding mutex or in dispatch thread
ceph: single workqueue for inode related works
cgroup: css_task_iter_skip()'d iterators must be advanced before accessed
drm/amd/amdgpu: add RLC firmware to support raven1 refresh
drm/amd/powerplay: add set_power_profile_mode for raven1_refresh
drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 449
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 448
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 445
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 444
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 443
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 442
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 440
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 438
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 437
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 435
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 434
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 433
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 432
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 431
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 430
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 429
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 426
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 424
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 423
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 421
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 420
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 419
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 418
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 417
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 416
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 414
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 412
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 411
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 410
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 409
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 408
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 407
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 406
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 405
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 404
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 403
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 402
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 401
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 400
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 399
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 397
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 396
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 395
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 394
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 393
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 392
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 391
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 390
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 389
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 388
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 387
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 380
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 378
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 377
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 376
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 375
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 373
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 371
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 370
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 367
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 365
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 364
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 363
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 362
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 354
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 353
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 352
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 351
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 350
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 349
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 348
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 347
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 346
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 344
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 343
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 342
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 341
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 339
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 338
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 334
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 332
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 328
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 326
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 325
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 324
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 323
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 322
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 321
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 320
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 316
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 315
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 314
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 313
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 312
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 311
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 310
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 309
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 308
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 307
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 301
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 300
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 299
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 297
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 296
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 294
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 292
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 291
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 290
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 289
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 287
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 283
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 281
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 280
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 278
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 277
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 276
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 275
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 274
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 273
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 272
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 271
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 270
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 269
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 268
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 267
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 266
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 265
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 264
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 263
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 262
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 260
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 258
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 257
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 256
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 254
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 253
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 252
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 251
lib/test_stackinit: Handle Clang auto-initialization pattern
block: Drop unlikely before IS_ERR(_OR_NULL)
xen/swiotlb: don't initialize swiotlb twice on arm64
s390/mm: fix address space detection in exception handling
HID: logitech-dj: Fix 064d:c52f receiver support
Revert "HID: core: Call request_module before doing device_add"
Revert "HID: core: Do not call request_module() in async context"
Revert "HID: Increase maximum report size allowed by hid_field_extract()"
tests: fix pidfd-test compilation
signal: improve comments
samples: fix pidfd-metadata compilation
arm64: arch_timer: mark functions as __always_inline
arm64: smp: Moved cpu_logical_map[] to smp.h
arm64: cpufeature: Fix missing ZFR0 in __read_sysreg_by_encoding()
selftests/bpf: move test_lirc_mode2_user to TEST_GEN_PROGS_EXTENDED
USB: Fix chipmunk-like voice when using Logitech C270 for recording audio.
USB: usb-storage: Add new ID to ums-realtek
udmabuf: actually unmap the scatterlist
net: fix indirect calls helpers for ptype list hooks.
net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set
scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous()
scsi: ufs: Check that space was properly alloced in copy_query_response
udp: only choose unbound UDP socket for multicast when not in a VRF
net/tls: replace the sleeping lock around RX resync with a bit lock
Revert "net/tls: avoid NULL-deref on resync during device removal"
block: aoe: no need to check return value of debugfs_create functions
net: dsa: sja1105: Fix link speed not working at 100 Mbps and below
net: phylink: avoid reducing support mask
scripts/checkstack.pl: Fix arm64 wrong or unknown architecture
kbuild: tar-pkg: enable communication with jobserver
kconfig: tests: fix recursive inclusion unit test
kbuild: teach kselftest-merge to find nested config files
nvmet: fix data_len to 0 for bdev-backed write_zeroes
MAINTAINERS: Hand over skd maintainership
ASoC: sun4i-i2s: Add offset to RX channel select
ASoC: sun4i-i2s: Fix sun8i tx channel offset mask
ASoC: max98090: remove 24-bit format support if RJ is 0
ASoC: da7219: Fix build error without CONFIG_I2C
ASoC: SOF: Intel: hda: Fix COMPILE_TEST build error
drm/arm/hdlcd: Allow a bit of clock tolerance
drm/arm/hdlcd: Actually validate CRTC modes
drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times
drm/komeda: fixing of DMA mapping sg segment warning
netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments
habanalabs: Read upper bits of trace buffer from RWPHI
arm64: arch_k3: Fix kconfig dependency warning
drm: don't block fb changes for async plane updates
drm/vc4: fix fb references in async update
drm/msm: fix fb references in async update
drm/amd: fix fb references in async update
drm/rockchip: fix fb references in async update
xen-blkfront: switch kcalloc to kvcalloc for large array allocation
drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable()
drm/mediatek: clear num_pipes when unbind driver
drm/mediatek: call drm_atomic_helper_shutdown() when unbinding driver
drm/mediatek: unbind components in mtk_drm_unbind()
drm/mediatek: fix unbind functions
net: sfp: read eeprom in maximum 16 byte increments
selftests: set sysctl bc_forwarding properly in router_broadcast.sh
ANDROID: update gki aarch64 ABI representation
net: ethernet: mediatek: Use NET_IP_ALIGN to judge if HW RX_2BYTE_OFFSET is enabled
net: ethernet: mediatek: Use hw_feature to judge if HWLRO is supported
net: ethernet: ti: cpsw_ethtool: fix ethtool ring param set
ANDROID: gki_defconfig: Enable CMA, SLAB_FREELIST (RANDOM and HARDENED) on x86
bpf: udp: Avoid calling reuseport's bpf_prog from udp_gro
bpf: udp: ipv6: Avoid running reuseport's bpf_prog from __udp6_lib_err
rcu: locking and unlocking need to always be at least barriers
ANDROID: gki_defconfig: enable SLAB_FREELIST_RANDOM, SLAB_FREELIST_HARDENED
ANDROID: gki_defconfig: enable CMA and increase CMA_AREAS
ASoC: SOF: fix DSP oops definitions in FW ABI
ASoC: hda: fix unbalanced codec dev refcount for HDA_DEV_ASOC
ASoC: SOF: ipc: replace fw ready bitfield with explicit bit ordering
ASoC: SOF: bump to ABI 3.6
ASoC: SOF: soundwire: add initial soundwire support
ASoC: SOF: uapi: mirror firmware changes
ASoC: Intel: Baytrail: add quirk for Aegex 10 (RU2) tablet
xfs: inode btree scrubber should calculate im_boffset correctly
mmc: sdhci_am654: Fix SLOTTYPE write
usb: typec: ucsi: ccg: fix memory leak in do_flash
ANDROID: update gki aarch64 ABI representation
habanalabs: Fix virtual address access via debugfs for 2MB pages
drm/komeda: Constify the usage of komeda_component/pipeline/dev_funcs
x86/power: Fix 'nosmt' vs hibernation triple fault during resume
mm/vmalloc: Avoid rare case of flushing TLB with weird arguments
mm/vmalloc: Fix calculation of direct map addr range
PM: sleep: Add kerneldoc comments to some functions
drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out
sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD
mdesc: fix a missing-check bug in get_vdev_port_node_info()
drm/i915/gvt: add F_CMD_ACCESS flag for wa regs
sparc64: Fix regression in non-hypervisor TLB flush xcall
packet: unconditionally free po->rollover
Update my email address
net: hns: Fix loopback test failed at copper ports
Linux 5.2-rc3
net: dsa: mv88e6xxx: avoid error message on remove from VLAN 0
mm, compaction: make sure we isolate a valid PFN
include/linux/generic-radix-tree.h: fix kerneldoc comment
kernel/signal.c: trace_signal_deliver when signal_group_exit
drivers/iommu/intel-iommu.c: fix variable 'iommu' set but not used
spdxcheck.py: fix directory structures
kasan: initialize tag to 0xff in __kasan_kmalloc
z3fold: fix sheduling while atomic
scripts/gdb: fix invocation when CONFIG_COMMON_CLK is not set
mm/gup: continue VM_FAULT_RETRY processing even for pre-faults
ocfs2: fix error path kobject memory leak
memcg: make it work on sparse non-0-node systems
mm, memcg: consider subtrees in memory.events
prctl_set_mm: downgrade mmap_sem to read lock
prctl_set_mm: refactor checks from validate_prctl_map
kernel/fork.c: make max_threads symbol static
arch/arm/boot/compressed/decompress.c: fix build error due to lz4 changes
arch/parisc/configs/c8000_defconfig: remove obsoleted CONFIG_DEBUG_SLAB_LEAK
mm/vmalloc.c: fix typo in comment
lib/sort.c: fix kernel-doc notation warnings
mm: fix Documentation/vm/hmm.rst Sphinx warnings
treewide: fix typos of SPDX-License-Identifier
crypto: ux500 - fix license comment syntax error
MAINTAINERS: add I2C DT bindings to ARM platforms
MAINTAINERS: add DT bindings to i2c drivers
mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
iwlwifi: mvm: change TLC config cmd sent by rs to be async
iwlwifi: Fix double-free problems in iwl_req_fw_callback()
iwlwifi: fix AX201 killer sku loading firmware issue
iwlwifi: print fseq info upon fw assert
iwlwifi: clear persistence bit according to device family
iwlwifi: fix load in rfkill flow for unified firmware
iwlwifi: mvm: remove d3_sram debugfs file
bpf, riscv: clear high 32 bits for ALU32 add/sub/neg/lsh/rsh/arsh
libbpf: Return btf_fd for load_sk_storage_btf
HID: a4tech: fix horizontal scrolling
HID: hyperv: Add a module description line
net: dsa: sja1105: Don't store frame type in skb->cb
block: print offending values when cloned rq limits are exceeded
blk-mq: Document the blk_mq_hw_queue_to_node() arguments
blk-mq: Fix spelling in a source code comment
block: Fix bsg_setup_queue() kernel-doc header
block: Fix rq_qos_wait() kernel-doc header
block: Fix blk_mq_*_map_queues() kernel-doc headers
block: Fix throtl_pending_timer_fn() kernel-doc header
block: Convert blk_invalidate_devt() header into a non-kernel-doc header
block/partitions/ldm: Convert a kernel-doc header into a non-kernel-doc header
leds: avoid flush_work in atomic context
cgroup: Include dying leaders with live threads in PROCS iterations
cgroup: Implement css_task_iter_skip()
cgroup: Call cgroup_release() before __exit_signal()
netfilter: nf_tables: fix module autoload with inet family
Revert "lockd: Show pid of lockd for remote locks"
ALSA: hda/realtek - Update headset mode for ALC256
fs/adfs: fix filename fixup handling for "/" and "//" names
fs/adfs: move append_filetype_suffix() into adfs_object_fixup()
fs/adfs: remove truncated filename hashing
fs/adfs: factor out filename fixup
fs/adfs: factor out object fixups
fs/adfs: factor out filename case lowering
fs/adfs: factor out filename comparison
ovl: doc: add non-standard corner cases
pstore/ram: Run without kernel crash dump region
MAINTAINERS: add Vasily Gorbik and Christian Borntraeger for s390
MAINTAINERS: Farewell Martin Schwidefsky
pstore: Set tfm to NULL on free_buf_for_compression
nds32: add new emulations for floating point instruction
nds32: Avoid IEX status being incorrectly modified
math-emu: Use statement expressions to fix Wshift-count-overflow warning
net: correct zerocopy refcnt with udp MSG_MORE
ethtool: Check for vlan etype or vlan tci when parsing flow_rule
net: don't clear sock->sk early to avoid trouble in strparser
net-gro: fix use-after-free read in napi_gro_frags()
net: dsa: tag_8021q: Create a stable binary format
net: dsa: tag_8021q: Change order of rx_vid setup
net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
docs cgroups: add another example size for hugetlb
NFSv4.1: Fix bug only first CB_NOTIFY_LOCK is handled
NFSv4.1: Again fix a race where CB_NOTIFY_LOCK fails to wake a waiter
ipv4: tcp_input: fix stack out of bounds when parsing TCP options.
mlxsw: spectrum: Prevent force of 56G
mlxsw: spectrum_acl: Avoid warning after identical rules insertion
SUNRPC: Fix a use after free when a server rejects the RPCSEC_GSS credential
net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
SUNRPC fix regression in umount of a secure mount
r8169: fix MAC address being lost in PCI D3
treewide: Add SPDX license identifier - Kbuild
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 225
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 224
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 223
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 221
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 220
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 218
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 217
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 216
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 215
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 214
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 213
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 211
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 210
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 209
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 207
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 203
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 200
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 199
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 198
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 195
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 191
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 190
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 188
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 185
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 183
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 182
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 180
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 179
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 178
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 175
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 173
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 172
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 171
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 170
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 167
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 166
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 165
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 164
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 162
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 161
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 160
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 158
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 155
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 154
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 151
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 150
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 148
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 147
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 145
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 144
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 143
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 142
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 140
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 139
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 138
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 137
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 136
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 135
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 133
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 132
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 131
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 130
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 129
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 128
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 127
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 126
net: core: support XDP generic on stacked devices.
netvsc: unshare skb in VF rx handler
udp: Avoid post-GRO UDP checksum recalculation
nvme-tcp: fix queue mapping when queue count is limited
nvme-rdma: fix queue mapping when queue count is limited
fpga: zynqmp-fpga: Correctly handle error pointer
selftests: vm: install test_vmalloc.sh for run_vmtests
userfaultfd: selftest: fix compiler warning
kselftest/cgroup: fix incorrect test_core skip
kselftest/cgroup: fix unexpected testing failure on test_core
kselftest/cgroup: fix unexpected testing failure on test_memcontrol
xtensa: Fix section mismatch between memblock_reserve and mem_reserve
signal/ptrace: Don't leak unitialized kernel memory with PTRACE_PEEK_SIGINFO
mwifiex: Abort at too short BSS descriptor element
mwifiex: Fix possible buffer overflows at parsing bss descriptor
drm/i915/gvt: Assign NULL to the pointer after memory free.
drm/i915/gvt: Check if cur_pt_type is valid
x86: intel_epb: Do not build when CONFIG_PM is unset
crypto: hmac - fix memory leak in hmac_init_tfm()
crypto: jitterentropy - change back to module_init()
ARM: dts: Drop bogus CLKSEL for timer12 on dra7
KVM: PPC: Book3S HV: Restore SPRG3 in kvmhv_p9_guest_entry()
KVM: PPC: Book3S HV: Fix lockdep warning when entering guest on POWER9
KVM: PPC: Book3S HV: XIVE: Fix page offset when clearing ESB pages
KVM: PPC: Book3S HV: XIVE: Take the srcu read lock when accessing memslots
KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts
KVM: PPC: Book3S HV: XIVE: Introduce a new mutex for the XIVE device
drm/i915/gvt: Fix cmd length of VEB_DI_IECP
drm/i915/gvt: refine ggtt range validation
drm/i915/gvt: Fix vGPU CSFE_CHICKEN1_REG mmio handler
drm/i915/gvt: Fix GFX_MODE handling
drm/i915/gvt: Update force-to-nonpriv register whitelist
drm/i915/gvt: Initialize intel_gvt_gtt_entry in stack
ima: show rules with IMA_INMASK correctly
evm: check hash algorithm passed to init_desc()
scsi: libsas: delete sas port if expander discover failed
scsi: libsas: only clear phy->in_shutdown after shutdown event done
scsi: scsi_dh_alua: Fix possible null-ptr-deref
scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask
scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs)
scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route()
net: phy: dp83867: Set up RGMII TX delay
net: phy: dp83867: do not call config_init twice
net: phy: dp83867: increase SGMII autoneg timer duration
net: phy: dp83867: fix speed 10 in sgmii mode
net: phy: marvell10g: report if the PHY fails to boot firmware
net: phylink: ensure consistent phy interface mode
cgroup: Use css_tryget() instead of css_tryget_online() in task_get_css()
blk-mq: Fix memory leak in error handling
usbip: usbip_host: fix stub_dev lock context imbalance regression
net: sh_eth: fix mdio access in sh_eth_close() for R-Car Gen2 and RZ/A1 SoCs
MIPS: uprobes: remove set but not used variable 'epc'
s390/crypto: fix possible sleep during spinlock aquired
MIPS: pistachio: Build uImage.gz by default
MIPS: Make virt_addr_valid() return bool
MIPS: Bounds check virt_addr_valid
CIFS: cifs_read_allocate_pages: don't iterate through whole page array on ENOMEM
RDMA/efa: Remove MAYEXEC flag check from mmap flow
mlx5: avoid 64-bit division
IB/hfi1: Validate page aligned for a given virtual address
IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
IB/hfi1: Insure freeze_work work_struct is canceled on shutdown
IB/rdmavt: Fix alloc_qpn() WARN_ON()
ASoC: sun4i-codec: fix first delay on Speaker
drm/amdgpu: reserve stollen vram for raven series
media: venus: hfi_parser: fix a regression in parser
selftests: bpf: fix compiler warning in flow_dissector test
arm64: use the correct function type for __arm64_sys_ni_syscall
arm64: use the correct function type in SYSCALL_DEFINE0
arm64: fix syscall_fn_t type
block: don't protect generic_make_request_checks with blk_queue_enter
block: move blk_exit_queue into __blk_release_queue
selftests: bpf: complete sub-register zero extension checks
selftests: bpf: move sub-register zero extension checks into subreg.c
ovl: detect overlapping layers
drm/i915/icl: Add WaDisableBankHangMode
ALSA: fireface: Use ULL suffixes for 64-bit constants
signal/arm64: Use force_sig not force_sig_fault for SIGKILL
nl80211: fill all policy .type entries
mac80211: free peer keys before vif down in mesh
ANDROID: ABI out: Use the extension .xml rather then .out
drm/mediatek: respect page offset for PRIME mmap calls
drm/mediatek: adjust ddp clock control flow
ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops
KVM: PPC: Book3S HV: XIVE: Fix the enforced limit on the vCPU identifier
KVM: PPC: Book3S HV: XIVE: Do not test the EQ flag validity when resetting
KVM: PPC: Book3S HV: XIVE: Clear file mapping when device is released
KVM: PPC: Book3S HV: Don't take kvm->lock around kvm_for_each_vcpu
KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list
KVM: PPC: Book3S HV: Use new mutex to synchronize MMU setup
KVM: PPC: Book3S HV: Avoid touching arch.mmu_ready in XIVE release functions
Revert "drivers: thermal: tsens: Add new operation to check if a sensor is enabled"
net/mlx5e: Disable rxhash when CQE compress is enabled
net/mlx5e: restrict the real_dev of vlan device is the same as uplink device
net/mlx5: Allocate root ns memory using kzalloc to match kfree
net/mlx5: Avoid double free in fs init error unwinding path
net/mlx5: Avoid double free of root ns in the error flow path
net/mlx5: Fix error handling in mlx5_load()
Documentation: net-sysfs: Remove duplicate PHY device documentation
llc: fix skb leak in llc_build_and_send_ui_pkt()
selftests: pmtu: Fix encapsulating device in pmtu_vti6_link_change_mtu
dfs_cache: fix a wrong use of kfree in flush_cache_ent()
fs/cifs/smb2pdu.c: fix buffer free in SMB2_ioctl_free
cifs: fix memory leak of pneg_inbuf on -EOPNOTSUPP ioctl case
xenbus: Avoid deadlock during suspend due to open transactions
xen/pvcalls: Remove set but not used variable
tracing: Avoid memory leak in predicate_parse()
habanalabs: fix bug in checking huge page optimization
mmc: sdhci: Fix SDIO IRQ thread deadlock
dpaa_eth: use only online CPU portals
net: mvneta: Fix err code path of probe
net: stmmac: Do not output error on deferred probe
Btrfs: fix race updating log root item during fsync
Btrfs: fix wrong ctime and mtime of a directory after log replay
ARC: [plat-hsdk] Get rid of inappropriate PHY settings
ARC: [plat-hsdk]: Add support of Vivante GPU
ARC: [plat-hsdk]: enable creg-gpio controller
Btrfs: fix fsync not persisting changed attributes of a directory
btrfs: qgroup: Check bg while resuming relocation to avoid NULL pointer dereference
btrfs: reloc: Also queue orphan reloc tree for cleanup to avoid BUG_ON()
Btrfs: incremental send, fix emission of invalid clone operations
Btrfs: incremental send, fix file corruption when no-holes feature is enabled
btrfs: correct zstd workspace manager lock to use spin_lock_bh()
btrfs: Ensure replaced device doesn't have pending chunk allocation
ia64: fix build errors by exporting paddr_to_nid()
ASoC: SOF: Intel: hda: fix the hda init chip
ASoC: SOF: ipc: fix a race, leading to IPC timeouts
ASoC: SOF: control: correct the copy size for bytes kcontrol put
ASoC: SOF: pcm: remove warning - initialize workqueue on open
ASoC: SOF: pcm: clear hw_params_upon_resume flag correctly
ASoC: SOF: core: fix error handling with the probe workqueue
ASoC: SOF: core: remove snd_soc_unregister_component in case of error
ASoC: SOF: core: remove DSP after unregistering machine driver
ASoC: soc-core: fixup references at soc_cleanup_card_resources()
arm64/module: revert to unsigned interpretation of ABS16/32 relocations
KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID
kvm: fix compile on s390 part 2
xprtrdma: Use struct_size() in kzalloc()
tools headers UAPI: Sync kvm.h headers with the kernel sources
perf record: Fix s390 missing module symbol and warning for non-root users
perf machine: Read also the end of the kernel
perf test vmlinux-kallsyms: Ignore aliases to _etext when searching on kallsyms
perf session: Add missing swap ops for namespace events
perf namespace: Protect reading thread's namespace
tools headers UAPI: Sync drm/drm.h with the kernel
s390/crypto: fix gcm-aes-s390 selftest failures
s390/zcrypt: Fix wrong dispatching for control domain CPRBs
s390/pci: fix assignment of bus resources
s390/pci: fix struct definition for set PCI function
s390: mark __cpacf_check_opcode() and cpacf_query_func() as __always_inline
s390: add unreachable() to dump_fault_info() to fix -Wmaybe-uninitialized
tools headers UAPI: Sync drm/i915_drm.h with the kernel
tools headers UAPI: Sync linux/fs.h with the kernel
tools headers UAPI: Sync linux/sched.h with the kernel
tools arch x86: Sync asm/cpufeatures.h with the with the kernel
tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls
perf arm64: Fix mksyscalltbl when system kernel headers are ahead of the kernel
perf data: Fix 'strncat may truncate' build failure with recent gcc
arm64: Fix the arm64_personality() syscall wrapper redirection
rtw88: Make some symbols static
rtw88: avoid circular locking between local->iflist_mtx and rtwdev->mutex
rsi: Properly initialize data in rsi_sdio_ta_reset
rtw88: fix unassigned rssi_level in rtw_sta_info
rtw88: fix subscript above array bounds compiler warning
fuse: extract helper for range writeback
fuse: fix copy_file_range() in the writeback case
mmc: meson-gx: fix irq ack
mmc: tmio: fix SCC error handling to avoid false positive CRC error
mmc: tegra: Fix a warning message
memstick: mspro_block: Fix an error code in mspro_block_issue_req()
mac80211: mesh: fix RCU warning
nl80211: fix station_info pertid memory leak
mac80211: Do not use stack memory with scatterlist for GMAC
ALSA: line6: Assure canceling delayed work at disconnection
configfs: Fix use-after-free when accessing sd->s_dentry
ALSA: hda - Force polling mode on CNL for fixing codec communication
i2c: synquacer: fix synquacer_i2c_doxfer() return value
i2c: mlxcpld: Fix wrong initialization order in probe
i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr
RDMA/core: Fix panic when port_data isn't initialized
RDMA/uverbs: Pass udata on uverbs error unwind
RDMA/core: Clear out the udata before error unwind
net: aquantia: tcp checksum 0xffff being handled incorrectly
net: aquantia: fix LRO with FCS error
net: aquantia: check rx csum for all packets in LRO session
net: aquantia: tx clean budget logic error
vhost: scsi: add weight support
vhost: vsock: add weight support
vhost_net: fix possible infinite loop
vhost: introduce vhost_exceeds_weight()
virtio: Fix indentation of VIRTIO_MMIO
virtio: add unlikely() to WARN_ON_ONCE()
iommu/vt-d: Set the right field for Page Walk Snoop
iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock
iommu: Add missing new line for dma type
drm/etnaviv: lock MMU while dumping core
block: Don't revalidate bdev of hidden gendisk
loop: Don't change loop device under exclusive opener
drm/imx: ipuv3-plane: fix atomic update status query for non-plus i.MX6Q
drm/qxl: drop WARN_ONCE()
iio: temperature: mlx90632 Relax the compatibility check
iio: imu: st_lsm6dsx: fix PM support for st_lsm6dsx i2c controller
staging:iio:ad7150: fix threshold mode config bit
fuse: add FUSE_WRITE_KILL_PRIV
fuse: fallocate: fix return with locked inode
PCI: PM: Avoid possible suspend-to-idle issue
ACPI: PM: Call pm_set_suspend_via_firmware() during hibernation
ACPI/PCI: PM: Add missing wakeup.flags.valid checks
ovl: support the FS_IOC_FS[SG]ETXATTR ioctls
soundwire: stream: fix out of boundary access on port properties
net: tulip: de4x5: Drop redundant MODULE_DEVICE_TABLE()
selftests/tls: add test for sleeping even though there is data
net/tls: fix no wakeup on partial reads
selftests/tls: test for lowat overshoot with multiple records
net/tls: fix lowat calculation if some data came from previous record
dpaa2-eth: Make constant 64-bit long
dpaa2-eth: Use PTR_ERR_OR_ZERO where appropriate
dpaa2-eth: Fix potential spectre issue
bonding/802.3ad: fix slave link initialization transition states
io_uring: Fix __io_uring_register() false success
net: ethtool: Document get_rxfh_context and set_rxfh_context ethtool ops
net: stmmac: dwmac-mediatek: modify csr_clk value to fix mdio read/write fail
net: stmmac: fix csr_clk can't be zero issue
net: stmmac: update rx tail pointer register to fix rx dma hang issue.
ip_sockglue: Fix missing-check bug in ip_ra_control()
ipv6_sockglue: Fix a missing-check bug in ip6_ra_control()
efi: Allow the number of EFI configuration tables entries to be zero
efi/x86/Add missing error handling to old_memmap 1:1 mapping code
parisc: Fix compiler warnings in float emulation code
parisc/slab: cleanup after /proc/slab_allocators removal
bpf: sockmap, fix use after free from sleep in psock backlog workqueue
net: sched: don't use tc_action->order during action dump
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
net: fec: fix the clk mismatch in failed_reset path
habanalabs: Avoid using a non-initialized MMU cache mutex
habanalabs: fix debugfs code
uapi/habanalabs: add opcode for enable/disable device debug mode
habanalabs: halt debug engines on user process close
selftests: rtc: rtctest: specify timeouts
selftests/harness: Allow test to configure timeout
selftests/ftrace: Add checkbashisms meta-testcase
selftests/ftrace: Make a script checkbashisms clean
media: smsusb: better handle optional alignment
test_firmware: Use correct snprintf() limit
genwqe: Prevent an integer overflow in the ioctl
parport: Fix mem leak in parport_register_dev_model
fpga: dfl: expand minor range when registering chrdev region
fpga: dfl: Add lockdep classes for pdata->lock
fpga: dfl: afu: Pass the correct device to dma_mapping_error()
fpga: stratix10-soc: fix use-after-free on s10_init()
w1: ds2408: Fix typo after
|
||
![]() |
163363455b |
tracing: introduce TRACE_EVENT_NOP()
Sometimes we want to define a tracepoint as a do-nothing function. So I introduce TRACE_EVENT_NOP, DECLARE_EVENT_CLASS_NOP and DEFINE_EVENT_NOP for this kind of usage. Link: http://lkml.kernel.org/r/1553602391-11926-2-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao <laoar.shao@gmail.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
||
![]() |
4bbfd7467c |
Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU changes from Paul E. McKenney: - Convert RCU's BUG_ON() and similar calls to WARN_ON() and similar. - Replace calls of RCU-bh and RCU-sched update-side functions to their vanilla RCU counterparts. This series is a step towards complete removal of the RCU-bh and RCU-sched update-side functions. ( Note that some of these conversions are going upstream via their respective maintainers. ) - Documentation updates, including a number of flavor-consolidation updates from Joel Fernandes. - Miscellaneous fixes. - Automate generation of the initrd filesystem used for rcutorture testing. - Convert spin_is_locked() assertions to instead use lockdep. ( Note that some of these conversions are going upstream via their respective maintainers. ) - SRCU updates, especially including a fix from Dennis Krein for a bag-on-head-class bug. - RCU torture-test updates. Signed-off-by: Ingo Molnar <mingo@kernel.org> |
||
![]() |
0c7a52e4d4 |
tracepoint: Use __idx instead of idx in DO_TRACE macro to make it unique
After enabling KVM event tracing, almost all of trace_kvm_exit()'s printk shows "kvm_exit: IRQ: ..." even if the actual exception_type is NOT IRQ. More specifically, trace_kvm_exit() is defined in virt/kvm/arm/trace.h by TRACE_EVENT. This slight problem may have existed after commit |
||
![]() |
7440172974 |
tracing: Replace synchronize_sched() and call_rcu_sched()
Now that synchronize_rcu() waits for preempt-disable regions of code as well as RCU read-side critical sections, synchronize_sched() can be replaced by synchronize_rcu(). Similarly, call_rcu_sched() can be replaced by call_rcu(). This commit therefore makes these changes. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: <linux-kernel@vger.kernel.org> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
||
![]() |
9c0be3f6b5 |
tracepoint: Fix tracepoint array element size mismatch
commit
|
||
![]() |
865e63b04e |
tracing: Add back in rcu_irq_enter/exit_irqson() for rcuidle tracepoints
Borislav reported the following splat:
=============================
WARNING: suspicious RCU usage
4.19.0-rc1+ #1 Not tainted
-----------------------------
./include/linux/rcupdate.h:631 rcu_read_lock() used illegally while idle!
other info that might help us debug this:
RCU used illegally from idle CPU!
rcu_scheduler_active = 2, debug_locks = 1
RCU used illegally from extended quiescent state!
1 lock held by swapper/0/0:
#0: 000000004557ee0e (rcu_read_lock){....}, at: perf_event_output_forward+0x0/0x130
stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.19.0-rc1+ #1
Hardware name: LENOVO 2320CTO/2320CTO, BIOS G2ET86WW (2.06 ) 11/13/2012
Call Trace:
dump_stack+0x85/0xcb
perf_event_output_forward+0xf6/0x130
__perf_event_overflow+0x52/0xe0
perf_swevent_overflow+0x91/0xb0
perf_tp_event+0x11a/0x350
? find_held_lock+0x2d/0x90
? __lock_acquire+0x2ce/0x1350
? __lock_acquire+0x2ce/0x1350
? retint_kernel+0x2d/0x2d
? find_held_lock+0x2d/0x90
? tick_nohz_get_sleep_length+0x83/0xb0
? perf_trace_cpu+0xbb/0xd0
? perf_trace_buf_alloc+0x5a/0xa0
perf_trace_cpu+0xbb/0xd0
cpuidle_enter_state+0x185/0x340
do_idle+0x1eb/0x260
cpu_startup_entry+0x5f/0x70
start_kernel+0x49b/0x4a6
secondary_startup_64+0xa4/0xb0
This is due to the tracepoints moving to SRCU usage which does not require
RCU to be "watching". But perf uses these tracepoints with RCU and expects
it to be. Hence, we still need to add in the rcu_irq_enter/exit_irqson()
calls for "rcuidle" tracepoints. This is a temporary fix until we have SRCU
working in NMI context, and then perf can be converted to use that instead
of normal RCU.
Link: http://lkml.kernel.org/r/20180904162611.6a120068@gandalf.local.home
Cc: x86-ml <x86@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Reported-by: Borislav Petkov <bp@alien8.de>
Tested-by: Borislav Petkov <bp@alien8.de>
Reviewed-by: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Fixes:
|
||
![]() |
46e0c9be20 |
kernel: tracepoints: add support for relative references
To avoid the need for relocating absolute references to tracepoint structures at boot time when running relocatable kernels (which may take a disproportionate amount of space), add the option to emit these tables as relative references instead. Link: http://lkml.kernel.org/r/20180704083651.24360-7-ard.biesheuvel@linaro.org Acked-by: Michael Ellerman <mpe@ellerman.id.au> Acked-by: Ingo Molnar <mingo@kernel.org> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: James Morris <james.morris@microsoft.com> Cc: James Morris <jmorris@namei.org> Cc: Jessica Yu <jeyu@kernel.org> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Kees Cook <keescook@chromium.org> Cc: Nicolas Pitre <nico@linaro.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Petr Mladek <pmladek@suse.com> Cc: Russell King <linux@armlinux.org.uk> Cc: "Serge E. Hallyn" <serge@hallyn.com> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: Thomas Garnier <thgarnie@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
e6753f23d9 |
tracepoint: Make rcuidle tracepoint callers use SRCU
In recent tests with IRQ on/off tracepoints, a large performance overhead ~10% is noticed when running hackbench. This is root caused to calls to rcu_irq_enter_irqson and rcu_irq_exit_irqson from the tracepoint code. Following a long discussion on the list [1] about this, we concluded that srcu is a better alternative for use during rcu idle. Although it does involve extra barriers, its lighter than the sched-rcu version which has to do additional RCU calls to notify RCU idle about entry into RCU sections. In this patch, we change the underlying implementation of the trace_*_rcuidle API to use SRCU. This has shown to improve performance alot for the high frequency irq enable/disable tracepoints. Test: Tested idle and preempt/irq tracepoints. Here are some performance numbers: With a run of the following 30 times on a single core x86 Qemu instance with 1GB memory: hackbench -g 4 -f 2 -l 3000 Completion times in seconds. CONFIG_PROVE_LOCKING=y. No patches (without this series) Mean: 3.048 Median: 3.025 Std Dev: 0.064 With Lockdep using irq tracepoints with RCU implementation: Mean: 3.451 (-11.66 %) Median: 3.447 (-12.22%) Std Dev: 0.049 With Lockdep using irq tracepoints with SRCU implementation (this series): Mean: 3.020 (I would consider the improvement against the "without this series" case as just noise). Median: 3.013 Std Dev: 0.033 [1] https://patchwork.kernel.org/patch/10344297/ [remove rcu_read_lock_sched_notrace as its the equivalent of preempt_disable_notrace and is unnecessary to call in tracepoint code] Link: http://lkml.kernel.org/r/20180730222423.196630-3-joel@joelfernandes.org Cleaned-up-by: Peter Zijlstra <peterz@infradead.org> Acked-by: Peter Zijlstra <peterz@infradead.org> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> [ Simplified WARN_ON_ONCE() ] Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
||
![]() |
ec15872daa |
docs: fix broken references with multiple hints
The script: ./scripts/documentation-file-ref-check --fix Gives multiple hints for broken references on some files. Manually use the one that applies for some files. Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Acked-by: James Morris <james.morris@microsoft.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Acked-by: Jonathan Corbet <corbet@lwn.net> |
||
![]() |
844ccdd7dc |
rcu: Eliminate rcu_irq_enter_disabled()
Now that the irq path uses the rcu_nmi_{enter,exit}() algorithm, rcu_irq_enter() and rcu_irq_exit() may be used from any context. There is thus no need for rcu_irq_enter_disabled() and for the checks using it. This commit therefore eliminates rcu_irq_enter_disabled(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
||
![]() |
4f0dfd76e9 |
tracing: define TRACE_DEFINE_SIZEOF() macro to map sizeof's to their values
Perf has a problem that if sizeof() macros are used within TRACE_EVENT() macro's they end up in userspace as "sizeof(kernel structure)" which cannot properly be parsed. Add a macro which can forward this data through the eval_map for userspace utilization. Link: http://lkml.kernel.org/r/20170531215653.3240-10-jeremy.linton@arm.com Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
||
![]() |
00f4b652b6 |
trace: rename trace_enum_map to trace_eval_map
Each enum is loaded into the trace_enum_map, as we are now using this for more than enums rename it. Link: http://lkml.kernel.org/r/20170531215653.3240-3-jeremy.linton@arm.com Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
||
![]() |
d54b6eeb55 |
tracing: Make sure rcu_irq_enter() can work for trace_*_rcuidle() trace events
Stack tracing discovered that there's a small location inside the RCU infrastructure where calling rcu_irq_enter() does not work. As trace events use rcu_irq_enter() it must make sure that it is functionable. A check against rcu_irq_enter_disabled() is added with a WARN_ON_ONCE() as no trace event should ever be used in that part of RCU. If the warning is triggered, then the trace event is ignored. Restructure the __DO_TRACE() a bit to get rid of the prercu and postrcu, and just have an rcucheck that does the work from within the _DO_TRACE() macro. gcc optimization will compile out the rcucheck=0 case. Link: http://lkml.kernel.org/r/20170405093207.404f8deb@gandalf.local.home Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
||
![]() |
8cf868affd |
tracing: Have the reg function allow to fail
Some tracepoints have a registration function that gets enabled when the tracepoint is enabled. There may be cases that the registraction function must fail (for example, can't allocate enough memory). In this case, the tracepoint should also fail to register, otherwise the user would not know why the tracepoint is not working. Cc: David Howells <dhowells@redhat.com> Cc: Seiji Aguchi <seiji.aguchi@hds.com> Cc: Anton Blanchard <anton@samba.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
dc17147de3 |
tracing: Fix check for cpu online when event is disabled
Commit |
||
![]() |
f37755490f |
tracepoints: Do not trace when cpu is offline
The tracepoint infrastructure uses RCU sched protection to enable and
disable tracepoints safely. There are some instances where tracepoints are
used in infrastructure code (like kfree()) that get called after a CPU is
going offline, and perhaps when it is coming back online but hasn't been
registered yet.
This can probuce the following warning:
[ INFO: suspicious RCU usage. ]
4.4.0-00006-g0fe53e8-dirty #34 Tainted: G S
-------------------------------
include/trace/events/kmem.h:141 suspicious rcu_dereference_check() usage!
other info that might help us debug this:
RCU used illegally from offline CPU! rcu_scheduler_active = 1, debug_locks = 1
no locks held by swapper/8/0.
stack backtrace:
CPU: 8 PID: 0 Comm: swapper/8 Tainted: G S 4.4.0-00006-g0fe53e8-dirty #34
Call Trace:
[c0000005b76c78d0] [c0000000008b9540] .dump_stack+0x98/0xd4 (unreliable)
[c0000005b76c7950] [c00000000010c898] .lockdep_rcu_suspicious+0x108/0x170
[c0000005b76c79e0] [c00000000029adc0] .kfree+0x390/0x440
[c0000005b76c7a80] [c000000000055f74] .destroy_context+0x44/0x100
[c0000005b76c7b00] [c0000000000934a0] .__mmdrop+0x60/0x150
[c0000005b76c7b90] [c0000000000e3ff0] .idle_task_exit+0x130/0x140
[c0000005b76c7c20] [c000000000075804] .pseries_mach_cpu_die+0x64/0x310
[c0000005b76c7cd0] [c000000000043e7c] .cpu_die+0x3c/0x60
[c0000005b76c7d40] [c0000000000188d8] .arch_cpu_idle_dead+0x28/0x40
[c0000005b76c7db0] [c000000000101e6c] .cpu_startup_entry+0x50c/0x560
[c0000005b76c7ed0] [c000000000043bd8] .start_secondary+0x328/0x360
[c0000005b76c7f90] [c000000000008a6c] start_secondary_prolog+0x10/0x14
This warning is not a false positive either. RCU is not protecting code that
is being executed while the CPU is offline.
Instead of playing "whack-a-mole(TM)" and adding conditional statements to
the tracepoints we find that are used in this instance, simply add a
cpu_online() test to the tracepoint code where the tracepoint will be
ignored if the CPU is offline.
Use of raw_smp_processor_id() is fine, as there should never be a case where
the tracepoint code goes from running on a CPU that is online and suddenly
gets migrated to a CPU that is offline.
Link: http://lkml.kernel.org/r/1455387773-4245-1-git-send-email-kda@linux-powerpc.org
Reported-by: Denis Kirjanov <kda@linux-powerpc.org>
Fixes:
|
||
![]() |
c17488d066 |
Merge tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt: "Not much new with tracing for this release. Mostly just clean ups and minor fixes. Here's what else is new: - A new TRACE_EVENT_FN_COND macro, combining both _FN and _COND for those that want both. - New selftest to test the instance create and delete - Better debug output when ftrace fails" * tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (24 commits) ftrace: Fix the race between ftrace and insmod ftrace: Add infrastructure for delayed enabling of module functions x86: ftrace: Fix the comments for ftrace_modify_code_direct() tracing: Fix comment to use tracing_on over tracing_enable metag: ftrace: Fix the comments for ftrace_modify_code sh: ftrace: Fix the comments for ftrace_modify_code() ia64: ftrace: Fix the comments for ftrace_modify_code() ftrace: Clean up ftrace_module_init() code ftrace: Join functions ftrace_module_init() and ftrace_init_module() tracing: Introduce TRACE_EVENT_FN_COND macro tracing: Use seq_buf_used() in seq_buf_to_user() instead of len bpf: Constify bpf_verifier_ops structure ftrace: Have ftrace_ops_get_func() handle RCU and PER_CPU flags too ftrace: Remove use of control list and ops ftrace: Fix output of enabled_functions for showing tramp ftrace: Fix a typo in comment ftrace: Show all tramps registered to a record on ftrace_bug() ftrace: Add variable ftrace_expected for archs to show expected code ftrace: Add new type to distinguish what kind of ftrace_bug() tracing: Update cond flag when enabling or disabling a trigger ... |
||
![]() |
5cb52b5e16 |
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf updates from Ingo Molnar: "Kernel side changes: - Intel Knights Landing support. (Harish Chegondi) - Intel Broadwell-EP uncore PMU support. (Kan Liang) - Core code improvements. (Peter Zijlstra.) - Event filter, LBR and PEBS fixes. (Stephane Eranian) - Enable cycles:pp on Intel Atom. (Stephane Eranian) - Add cycles:ppp support for Skylake. (Andi Kleen) - Various x86 NMI overhead optimizations. (Andi Kleen) - Intel PT enhancements. (Takao Indoh) - AMD cache events fix. (Vince Weaver) Tons of tooling changes: - Show random perf tool tips in the 'perf report' bottom line (Namhyung Kim) - perf report now defaults to --group if the perf.data file has grouped events, try it with: # perf record -e '{cycles,instructions}' -a sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 1.093 MB perf.data (1247 samples) ] # perf report # Samples: 1K of event 'anon group { cycles, instructions }' # Event count (approx.): 1955219195 # # Overhead Command Shared Object Symbol 2.86% 0.22% swapper [kernel.kallsyms] [k] intel_idle 1.05% 0.33% firefox libxul.so [.] js::SetObjectElement 1.05% 0.00% kworker/0:3 [kernel.kallsyms] [k] gen6_ring_get_seqno 0.88% 0.17% chrome chrome [.] 0x0000000000ee27ab 0.65% 0.86% firefox libxul.so [.] js::ValueToId<(js::AllowGC)1> 0.64% 0.23% JS Helper libxul.so [.] js::SplayTree<js::jit::LiveRange*, js::jit::LiveRange>::splay 0.62% 1.27% firefox libxul.so [.] js::GetIterator 0.61% 1.74% firefox libxul.so [.] js::NativeSetProperty 0.61% 0.31% firefox libxul.so [.] js::SetPropertyByDefining - Introduce the 'perf stat record/report' workflow: Generate perf.data files from 'perf stat', to tap into the scripting capabilities perf has instead of defining a 'perf stat' specific scripting support to calculate event ratios, etc. Simple example: $ perf stat record -e cycles usleep 1 Performance counter stats for 'usleep 1': 1,134,996 cycles 0.000670644 seconds time elapsed $ perf stat report Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1': 1,134,996 cycles 0.000670644 seconds time elapsed $ It generates PERF_RECORD_ userspace records to store the details: $ perf report -D | grep PERF_RECORD 0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637 0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535 0x12a [0x40]: PERF_RECORD_STAT_CONFIG 0x16a [0x30]: PERF_RECORD_STAT -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text 0x1da [0x18]: PERF_RECORD_STAT_ROUND [acme@ssdandy linux]$ An effort was made to make perf.data files generated like this to not generate cryptic messages when processed by older tools. The 'perf script' bits need rebasing, will go up later. - Make command line options always available, even when they depend on some feature being enabled, warning the user about use of such options (Wang Nan) - Support hw breakpoint events (mem:0xAddress) in the default output mode in 'perf script' (Wang Nan) - Fixes and improvements for supporting annotating ARM binaries, support ARM call and jump instructions, more work needed to have arch specific stuff separated into tools/perf/arch/*/annotate/ (Russell King) - Add initial 'perf config' command, for now just with a --list command to the contents of the configuration file in use and a basic man page describing its format, commands for doing edits and detailed documentation are being reviewed and proof-read. (Taeung Song) - Allows BPF scriptlets specify arguments to be fetched using DWARF info, using a prologue generated at compile/build time (He Kuang, Wang Nan) - Allow attaching BPF scriptlets to module symbols (Wang Nan) - Allow attaching BPF scriptlets to userspace code using uprobe (Wang Nan) - BPF programs now can specify 'perf probe' tunables via its section name, separating key=val values using semicolons (Wang Nan) Testing some of these new BPF features: Use case: get callchains when receiving SSL packets, filter then in the kernel, at arbitrary place. # cat ssl.bpf.c #define SEC(NAME) __attribute__((section(NAME), used)) struct pt_regs; SEC("func=__inet_lookup_established hnum") int func(struct pt_regs *ctx, int err, unsigned short port) { return err == 0 && port == 443; } char _license[] SEC("license") = "GPL"; int _version SEC("version") = LINUX_VERSION_CODE; # # perf record -a -g -e ssl.bpf.c ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.787 MB perf.data (3 samples) ] # perf script | head -30 swapper 0 [000] 58783.268118: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux) 856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux) 2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux) 2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux) 96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux) 969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux) 2dede5 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux) 95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux) 1163ffa start_kernel ([kernel.vmlinux].init.text) 11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text) 1163623 x86_64_start_kernel ([kernel.vmlinux].init.text) qemu-system-x86 9178 [003] 58785.792417: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb 8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux) 896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux) 8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux) 855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) 856660 netif_receive_skb_internal (/lib/modules/4.3.0+/build/vmlinux) 8566ec netif_receive_skb_sk (/lib/modules/4.3.0+/build/vmlinux) 430a br_handle_frame_finish ([bridge]) 48bc br_handle_frame ([bridge]) 855f44 __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux) 8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux) # - Use 'perf probe' various options to list functions, see what variables can be collected at any given point, experiment first collecting without a filter, then filter, use it together with 'perf trace', 'perf top', with or without callchains, if it explodes, please tell us! - Introduce a new callchain mode: "folded", that will list per line representations of all callchains for a give histogram entry, facilitating 'perf report' output processing by other tools, such as Brendan Gregg's flamegraph tools (Namhyung Kim) E.g: # perf report | grep -v ^# | head 18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry | ---cpu_startup_entry | |--12.07%--start_secondary | --6.30%--rest_init start_kernel x86_64_start_reservations x86_64_start_kernel # Becomes, in "folded" mode: # perf report -g folded | grep -v ^# | head -5 18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry 12.07% cpu_startup_entry;start_secondary 6.30% cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 16.90% 0.00% swapper [kernel.kallsyms] [k] call_cpuidle 11.23% call_cpuidle;cpu_startup_entry;start_secondary 5.67% call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 16.90% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter 11.23% cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary 5.67% cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel 15.12% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter_state # The user can also select one of "count", "period" or "percent" as the first column. ... and lots of infrastructure enhancements, plus fixes and other changes, features I failed to list - see the shortlog and the git log for details" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (271 commits) perf evlist: Add --trace-fields option to show trace fields perf record: Store data mmaps for dwarf unwind perf libdw: Check for mmaps also in MAP__VARIABLE tree perf unwind: Check for mmaps also in MAP__VARIABLE tree perf unwind: Use find_map function in access_dso_mem perf evlist: Remove perf_evlist__(enable|disable)_event functions perf evlist: Make perf_evlist__open() open evsels with their cpus and threads (like perf record does) perf report: Show random usage tip on the help line perf hists: Export a couple of hist functions perf diff: Use perf_hpp__register_sort_field interface perf tools: Add overhead/overhead_children keys defaults via string perf tools: Remove list entry from struct sort_entry perf tools: Include all tools/lib directory for tags/cscope/TAGS targets perf script: Align event name properly perf tools: Add missing headers in perf's MANIFEST perf tools: Do not show trace command if it's not compiled in perf report: Change default to use event group view perf top: Decay periods in callchains tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/ tools lib: Sync tools/lib/find_bit.c with the kernel ... |
||
![]() |
2701121b8f |
tracing: Introduce TRACE_EVENT_FN_COND macro
TRACE_EVENT_FN can't be used in some circumstances like invoking trace functions from offlined CPU due to RCU usage. This patch adds the TRACE_EVENT_FN_COND macro to make such trace points conditional. Link: http://lkml.kernel.org/r/1450124286-4822-1-git-send-email-kda@linux-powerpc.org Signed-off-by: Denis Kirjanov <kda@linux-powerpc.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
7c9906ca5e |
rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}()
This commit replaces a local_irq_save()/local_irq_restore() pair with a lockdep assertion that interrupts are already disabled. This should remove the corresponding overhead from the interrupt entry/exit fastpaths. This change was inspired by the fact that Iftekhar Ahmed's mutation testing showed that removing rcu_irq_enter()'s call to local_ird_restore() had no effect, which might indicate that interrupts were always enabled anyway. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
||
![]() |
bd2a634d9e |
tracepoints: Move struct tracepoint to new tracepoint-defs.h header
Steven recommended open coding access to tracepoint->key to add trace points to headers. Unfortunately this is difficult for some headers (such as x86 asm/msr.h) because including tracepoint.h includes so many other headers that it causes include loops. The main problem is the include of linux/rcupdate.h, which pulls in a lot of other headers. The rcu header is only needed when actually defining trace points. Move the struct tracepoint into a separate tracepoint-defs.h header that can be included without pulling in all of RCU. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Link: http://lkml.kernel.org/r/1449018060-1742-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar <mingo@kernel.org> |
||
![]() |
a15920bea0 |
tracepoints: Fix documentation of RCU lockdep checks
The documentation on top of __DECLARE_TRACE() does not match its
implementation since the condition check has been added to the
RCU lockdep checks. Update the documentation to match its
implementation.
Link: http://lkml.kernel.org/r/1446504164-21563-1-git-send-email-mathieu.desnoyers@efficios.com
CC: Dave Hansen <dave@sr71.net>
Fixes:
|
||
![]() |
7904b5c498 |
tracepoint: Give priority to probes of tracepoints
In order to guarantee that a probe will be called before other probes that are attached to a tracepoint, there needs to be a mechanism to provide priority of one probe over the others. Adding a prio field to the struct tracepoint_func, which lets the probes be sorted by the priority set in the structure. If no priority is specified, then a priority of 10 is given (this is a macro, and perhaps may be changed in the future). Now probes may be added to affect other probes that are attached to a tracepoint with a guaranteed order. One use case would be to allow tracing of tracepoints be able to filter by pid. A special (higher priority probe) may be added to the sched_switch tracepoint and set the necessary flags of the other tracepoints to notify them if they should be traced or not. In case a tracepoint is enabled at the sched_switch tracepoint too, the order of the two are not random. Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
c63b7682b6 |
tracing: Allow disabling compilation of specific trace systems
Allow a trace events header file to disable compilation of its trace events by defining the preprocessor macro NOTRACE. This could be done, for example, according to a Kconfig option. Link: http://lkml.kernel.org/r/1438432079-11704-3-git-send-email-tal.shorer@gmail.com Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
0c564a538a |
tracing: Add TRACE_DEFINE_ENUM() macro to map enums to their values
Several tracepoints use the helper functions __print_symbolic() or __print_flags() and pass in enums that do the mapping between the binary data stored and the value to print. This works well for reading the ASCII trace files, but when the data is read via userspace tools such as perf and trace-cmd, the conversion of the binary value to a human string format is lost if an enum is used, as userspace does not have access to what the ENUM is. For example, the tracepoint trace_tlb_flush() has: __print_symbolic(REC->reason, { TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" }, { TLB_REMOTE_SHOOTDOWN, "remote shootdown" }, { TLB_LOCAL_SHOOTDOWN, "local shootdown" }, { TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" }) Which maps the enum values to the strings they represent. But perf and trace-cmd do no know what value TLB_LOCAL_MM_SHOOTDOWN is, and would not be able to map it. With TRACE_DEFINE_ENUM(), developers can place these in the event header files and ftrace will convert the enums to their values: By adding: TRACE_DEFINE_ENUM(TLB_FLUSH_ON_TASK_SWITCH); TRACE_DEFINE_ENUM(TLB_REMOTE_SHOOTDOWN); TRACE_DEFINE_ENUM(TLB_LOCAL_SHOOTDOWN); TRACE_DEFINE_ENUM(TLB_LOCAL_MM_SHOOTDOWN); $ cat /sys/kernel/debug/tracing/events/tlb/tlb_flush/format [...] __print_symbolic(REC->reason, { 0, "flush on task switch" }, { 1, "remote shootdown" }, { 2, "local shootdown" }, { 3, "local mm shootdown" }) The above is what userspace expects to see, and tools do not need to be modified to parse them. Link: http://lkml.kernel.org/r/20150403013802.220157513@goodmis.org Cc: Guilherme Cox <cox@computer.org> Cc: Tony Luck <tony.luck@gmail.com> Cc: Xie XiuQi <xiexiuqi@huawei.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Tested-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
a05d59a567 |
tracing: Add condition check to RCU lockdep checks
The trace_tlb_flush() tracepoint can be called when a CPU is going offline.
When a CPU is offline, RCU is no longer watching that CPU and since the
tracepoint is protected by RCU, it must not be called. To prevent the
tlb_flush tracepoint from being called when the CPU is offline, it was
converted to a TRACE_EVENT_CONDITION where the condition checks if the
CPU is online before calling the tracepoint.
Unfortunately, this was not enough to stop lockdep from complaining about
it. Even though the RCU protected code of the tracepoint will never be
called, the condition is hidden within the tracepoint, and even though the
condition prevents RCU code from being called, the lockdep checks are
outside the tracepoint (this is to test tracepoints even when they are not
enabled).
Even though tracepoints should be checked to be RCU safe when they are not
enabled, the condition should still be considered when checking RCU.
Link: http://lkml.kernel.org/r/CA+icZUUGiGDoL5NU8RuxKzFjoLjEKRtUWx=JB8B9a0EQv-eGzQ@mail.gmail.com
Fixes:
|
||
![]() |
3a630178fd |
tracing: generate RCU warnings even when tracepoints are disabled
Dave Jones reported seeing a bug from one of my TLB tracepoints: http://lkml.kernel.org/r/20140806181801.GA4605@redhat.com I've been running these patches for months and never saw this. But, a big chunk of my testing, especially with all the debugging enabled, was in a vm where intel_idle doesn't work. On the systems where I was using intel_idle, I never had lockdep enabled and this tracepoint on at the same time. This patch ensures that whenever we have lockdep available, we do _some_ RCU activity at the site of the tracepoint, despite whether the tracepoint's condition matches or even if the tracepoint itself is completely disabled. This is a bit of a hack, but it is pretty self-contained. I confirmed that with this patch plus lockdep I get the same splat as Dave Jones did, but without enabling the tracepoint explicitly. Link: http://lkml.kernel.org/p/20140807175204.C257CAC5@viggo.jf.intel.com Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Cc: Dave Hansen <dave@sr71.net> Cc: Dave Jones <davej@redhat.com>, Cc: paulmck@linux.vnet.ibm.com Cc: Ingo Molnar <mingo@redhat.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
3c49b52b15 |
tracing: Do not do anything special with tracepoint_string when tracing is disabled
When CONFIG_TRACING is not enabled, there's no reason to save the trace strings either by the linker or as a static variable that can be referenced later. Simply pass back the string that is given to tracepoint_string(). Had to move the define to include/linux/tracepoint.h so that it is still visible when CONFIG_TRACING is not set. Link: http://lkml.kernel.org/p/1406318733-26754-2-git-send-email-nicolas.pitre@linaro.org Suggested-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
7c65bbc7dc |
tracing: Add trace_<tracepoint>_enabled() function
There are some code paths in the kernel that need to do some preparations before it calls a tracepoint. As that code is worthless overhead when the tracepoint is not enabled, it would be prudent to have that code only run when the tracepoint is active. To accomplish this, all tracepoints now get a static inline function called "trace_<tracepoint-name>_enabled()" which returns true when the tracepoint is enabled and false otherwise. As an added bonus, that function uses the static_key of the tracepoint such that no branch is needed. if (trace_mytracepoint_enabled()) { arg = process_tp_arg(); trace_mytracepoint(arg); } Will keep the "process_tp_arg()" (which may be expensive to run) from being executed when the tracepoint isn't enabled. It's best to encapsulate the tracepoint itself in the if statement just to keep races. For example, if you had: if (trace_mytracepoint_enabled()) arg = process_tp_arg(); trace_mytracepoint(arg); There's a chance that the tracepoint could be enabled just after the if statement, and arg will be undefined when calling the tracepoint. Link: http://lkml.kernel.org/r/20140506094407.507b6435@gandalf.local.home Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
b725dfea24 |
tracepoint: Fix sparse warnings in tracepoint.c
Fix the following sparse warnings: CHECK kernel/tracepoint.c kernel/tracepoint.c:184:18: warning: incorrect type in assignment (different address spaces) kernel/tracepoint.c:184:18: expected struct tracepoint_func *tp_funcs kernel/tracepoint.c:184:18: got struct tracepoint_func [noderef] <asn:4>*funcs kernel/tracepoint.c:216:18: warning: incorrect type in assignment (different address spaces) kernel/tracepoint.c:216:18: expected struct tracepoint_func *tp_funcs kernel/tracepoint.c:216:18: got struct tracepoint_func [noderef] <asn:4>*funcs kernel/tracepoint.c:392:24: error: return expression in void function CC kernel/tracepoint.o kernel/tracepoint.c: In function tracepoint_module_going: kernel/tracepoint.c:491:6: warning: symbol 'syscall_regfunc' was not declared. Should it be static? kernel/tracepoint.c:508:6: warning: symbol 'syscall_unregfunc' was not declared. Should it be static? Link: http://lkml.kernel.org/r/1397049883-28692-1-git-send-email-mathieu.desnoyers@efficios.com Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
eb7d035c59 |
tracepoint: Simplify tracepoint module search
Instead of copying the num_tracepoints and tracepoints_ptrs from the module structure to the tp_mod structure, which only uses it to find the module associated to tracepoints of modules that are coming and going, simply copy the pointer to the module struct to the tracepoint tp_module structure. Also removed un-needed brackets around an if statement. Link: http://lkml.kernel.org/r/20140408201705.4dad2c4a@gandalf.local.home Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
de7b297390 |
tracepoint: Use struct pointer instead of name hash for reg/unreg tracepoints
Register/unregister tracepoint probes with struct tracepoint pointer rather than tracepoint name. This change, which vastly simplifies tracepoint.c, has been proposed by Steven Rostedt. It also removes 8.8kB (mostly of text) to the vmlinux size. From this point on, the tracers need to pass a struct tracepoint pointer to probe register/unregister. A probe can now only be connected to a tracepoint that exists. Moreover, tracers are responsible for unregistering the probe before the module containing its associated tracepoint is unloaded. text data bss dec hex filename 10443444 4282528 10391552 25117524 17f4354 vmlinux.orig 10434930 4282848 10391552 25109330 17f2352 vmlinux Link: http://lkml.kernel.org/r/1396992381-23785-2-git-send-email-mathieu.desnoyers@efficios.com CC: Ingo Molnar <mingo@kernel.org> CC: Frederic Weisbecker <fweisbec@gmail.com> CC: Andrew Morton <akpm@linux-foundation.org> CC: Frank Ch. Eigler <fche@redhat.com> CC: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> [ SDR - fixed return val in void func in tracepoint_module_going() ] Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
68114e5eb8 |
Merge tag 'trace-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt: "Most of the changes were largely clean ups, and some documentation. But there were a few features that were added: Uprobes now work with event triggers and multi buffers and have support under ftrace and perf. The big feature is that the function tracer can now be used within the multi buffer instances. That is, you can now trace some functions in one buffer, others in another buffer, all functions in a third buffer and so on. They are basically agnostic from each other. This only works for the function tracer and not for the function graph trace, although you can have the function graph tracer running in the top level buffer (or any tracer for that matter) and have different function tracing going on in the sub buffers" * tag 'trace-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (45 commits) tracing: Add BUG_ON when stack end location is over written tracepoint: Remove unused API functions Revert "tracing: Move event storage for array from macro to standalone function" ftrace: Constify ftrace_text_reserved tracepoints: API doc update to tracepoint_probe_register() return value tracepoints: API doc update to data argument ftrace: Fix compilation warning about control_ops_free ftrace/x86: BUG when ftrace recovery fails ftrace: Warn on error when modifying ftrace function ftrace: Remove freelist from struct dyn_ftrace ftrace: Do not pass data to ftrace_dyn_arch_init ftrace: Pass retval through return in ftrace_dyn_arch_init() ftrace: Inline the code from ftrace_dyn_table_alloc() ftrace: Cleanup of global variables ftrace_new_pgs and ftrace_update_cnt tracing: Evaluate len expression only once in __dynamic_array macro tracing: Correctly expand len expressions from __dynamic_array macro tracing/module: Replace include of tracepoint.h with jump_label.h in module.h tracing: Fix event header migrate.h to include tracepoint.h tracing: Fix event header writeback.h to include tracepoint.h tracing: Warn if a tracepoint is not set via debugfs ... |
||
![]() |
0dea6d5263 |
tracepoint: Remove unused API functions
After the following commit:
commit
|
||
![]() |
45ab2813d4 |
tracing: Do not add event files for modules that fail tracepoints
If a module fails to add its tracepoints due to module tainting, do not
create the module event infrastructure in the debugfs directory. As the events
will not work and worse yet, they will silently fail, making the user wonder
why the events they enable do not display anything.
Having a warning on module load and the events not visible to the users
will make the cause of the problem much clearer.
Link: http://lkml.kernel.org/r/20140227154923.265882695@goodmis.org
Fixes:
|
||
![]() |
e23c34bb41 |
Merge branch 'master' into for-next
Sync with Linus' tree to be able to apply fixes on top of newer things in tree (efi-stub). Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
||
![]() |
2621bca83a |
tracepoint: comment fix "binay" -> "binary"
Binary was written as binay, probably by mistake. Fix it. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
||
![]() |
d5b5f391d4 |
ftrace, perf: Avoid infinite event generation loop
Vince's perf-trinity fuzzer found yet another 'interesting' problem. When we sample the irq_work_exit tracepoint with period==1 (or PERF_SAMPLE_PERIOD) and we add an fasync SIGNAL handler we create an infinite event generation loop: ,-> <IPI> | irq_work_exit() -> | trace_irq_work_exit() -> | ... | __perf_event_overflow() -> (due to fasync) | irq_work_queue() -> (irq_work_list must be empty) '--------- arch_irq_work_raise() Similar things can happen due to regular poll() wakeups if we exceed the ring-buffer wakeup watermark, or have an event_limit. To avoid this, dis-allow sampling this particular tracepoint. In order to achieve this, create a special perf_perm function pointer for each event and call this (when set) on trying to create a tracepoint perf event. [ roasted: use expr... to allow for ',' in your expression ] Reported-by: Vince Weaver <vincent.weaver@maine.edu> Tested-by: Vince Weaver <vincent.weaver@maine.edu> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Dave Jones <davej@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Link: http://lkml.kernel.org/r/20131114152304.GC5364@laptop.programming.kicks-ass.net Signed-off-by: Ingo Molnar <mingo@kernel.org> |
||
![]() |
f5abaa1bfc |
tracing: Add DEFINE_EVENT_FN() macro
Each TRACE_EVENT() adds several helper functions. If two or more trace events share the same structure and print format, they can also share most of these helper functions and save a lot of space from duplicate code. This is why the DECLARE_EVENT_CLASS() and DEFINE_EVENT() were created. Some events require a trigger to be called at registering and unregistering of the event and to do so they use TRACE_EVENT_FN(). If multiple events require a trigger, they currently have no choice but to use TRACE_EVENT_FN() as there's no DEFINE_EVENT_FN() available. This unfortunately causes a lot of wasted duplicate code created. By adding a DEFINE_EVENT_FN(), these events can still use a DECLARE_EVENT_CLASS() and then define their own triggers. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/51C3236C.8030508@hds.com Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com> |
||
![]() |
d62840995a |
trace: Allow idle-safe tracepoints to be called from irq
__DECLARE_TRACE_RCU() currently creates an _rcuidle() tracepoint which may safely be invoked from what RCU considers to be an idle CPU. However, these _rcuidle() tracepoints may -not- be invoked from the handler of an irq taken from idle, because rcu_idle_enter() zeroes RCU's nesting-level counter, so that the rcu_irq_exit() returning to idle will trigger a WARN_ON_ONCE(). This commit therefore substitutes rcu_irq_enter() for rcu_idle_exit() and rcu_irq_exit() for rcu_idle_enter() in order to make the _rcuidle() tracepoints usable from irq handlers as well as from process context. Reported-by: Dave Jones <davej@redhat.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
7ece55a4a3 |
trace: Don't declare trace_*_rcuidle functions in modules
Tracepoints declare a static inline trace_*_rcuidle variant of the trace function, to support safely generating trace events from the idle loop. Module code never actually uses that variant of trace functions, because modules don't run code that needs tracing with RCU idled. However, the declaration of those otherwise unused functions causes the module to reference rcu_idle_exit and rcu_idle_enter, which RCU does not export to modules. To avoid this, don't generate trace_*_rcuidle functions for tracepoints declared in module code. Link: http://lkml.kernel.org/r/20120905062306.GA14756@leaf Reported-by: Steven Rostedt <rostedt@goodmis.org> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
326f418b4c |
tracepoint: Use static_key_false(), since static_branch() is deprecated
Convert the last user of static_branch() -> static_key_false(). Signed-off-by: Jason Baron <jbaron@redhat.com> Cc: rostedt@goodmis.org Cc: mathieu.desnoyers@efficios.com Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/5fffcd40a6c063769badcdd74a7d90980500dbcb.1340909155.git.jbaron@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org> |
||
![]() |
c5905afb0e |
static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]()
So here's a boot tested patch on top of Jason's series that does all the cleanups I talked about and turns jump labels into a more intuitive to use facility. It should also address the various misconceptions and confusions that surround jump labels. Typical usage scenarios: #include <linux/static_key.h> struct static_key key = STATIC_KEY_INIT_TRUE; if (static_key_false(&key)) do unlikely code else do likely code Or: if (static_key_true(&key)) do likely code else do unlikely code The static key is modified via: static_key_slow_inc(&key); ... static_key_slow_dec(&key); The 'slow' prefix makes it abundantly clear that this is an expensive operation. I've updated all in-kernel code to use this everywhere. Note that I (intentionally) have not pushed through the rename blindly through to the lowest levels: the actual jump-label patching arch facility should be named like that, so we want to decouple jump labels from the static-key facility a bit. On non-jump-label enabled architectures static keys default to likely()/unlikely() branches. Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Jason Baron <jbaron@redhat.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: a.p.zijlstra@chello.nl Cc: mathieu.desnoyers@efficios.com Cc: davem@davemloft.net Cc: ddaney.cavm@gmail.com Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/20120222085809.GA26397@elte.hu Signed-off-by: Ingo Molnar <mingo@elte.hu> |
||
![]() |
2fbb90db1b |
tracing/rcu: Add trace_##name##__rcuidle() static tracepoint for inside rcu_idle_exit() sections
Added is a new static inline function that lets *any* tracepoint be used inside a rcu_idle_exit() section. And this also solves the problem where the same tracepoint may be used inside a rcu_idle_exit() section as well as outside of one. I added a new tracepoint function with a "_rcuidle" extension. All tracepoints can be used with either the normal "trace_foobar()" function, or the "trace_foobar_rcuidle()" function when inside a rcu_idle_exit() section. All tracepoints defined by TRACE_EVENT() or any of the derivatives will have a "_rcuidle()" function also defined. When a tracepoint is used within an rcu_idle_exit() section, the "_rcuidle()" version must be used. This denotes that the tracepoint is within rcu_idle_exit() and it allows the rcu read locks within the tracepoint to still be valid, as this version takes us out of rcu_idle_exit(). Another nice aspect about this patch is that "static inline"s are not compiled into text when not used. So only the tracepoints that actually use the _rcuidle() version will have them defined in the actual text that is booted. Link: http://lkml.kernel.org/r/1328563113.2200.39.camel@gandalf.stny.rr.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
b75ef8b44b |
Tracepoint: Dissociate from module mutex
Copy the information needed from struct module into a local module list held within tracepoint.c from within the module coming/going notifier. This vastly simplifies locking of tracepoint registration / unregistration, because we don't have to take the module mutex to register and unregister tracepoints anymore. Steven Rostedt ran into dependency problems related to modules mutex vs kprobes mutex vs ftrace mutex vs tracepoint mutex that seems to be hard to fix without removing this dependency between tracepoint and module mutex. (note: it should be investigated whether kprobes could benefit of being dissociated from the modules mutex too.) This also fixes module handling of tracepoint list iterators, because it was expecting the list to be sorted by pointer address. Given we have control on our own list now, it's OK to sort this list which has tracepoints as its only purpose. The reason why this sorting is required is to handle the fact that seq files (and any read() operation from user-space) cannot hold the tracepoint mutex across multiple calls, so list entries may vanish between calls. With sorting, the tracepoint iterator becomes usable even if the list don't contain the exact item pointed to by the iterator anymore. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Acked-by: Jason Baron <jbaron@redhat.com> CC: Ingo Molnar <mingo@elte.hu> CC: Lai Jiangshan <laijs@cn.fujitsu.com> CC: Peter Zijlstra <a.p.zijlstra@chello.nl> CC: Thomas Gleixner <tglx@linutronix.de> CC: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Link: http://lkml.kernel.org/r/20110810191839.GC8525@Krystal Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
d430d3d7e6 |
jump label: Introduce static_branch() interface
Introduce: static __always_inline bool static_branch(struct jump_label_key *key); instead of the old JUMP_LABEL(key, label) macro. In this way, jump labels become really easy to use: Define: struct jump_label_key jump_key; Can be used as: if (static_branch(&jump_key)) do unlikely code enable/disale via: jump_label_inc(&jump_key); jump_label_dec(&jump_key); that's it! For the jump labels disabled case, the static_branch() becomes an atomic_read(), and jump_label_inc()/dec() are simply atomic_inc(), atomic_dec() operations. We show testing results for this change below. Thanks to H. Peter Anvin for suggesting the 'static_branch()' construct. Since we now require a 'struct jump_label_key *key', we can store a pointer into the jump table addresses. In this way, we can enable/disable jump labels, in basically constant time. This change allows us to completely remove the previous hashtable scheme. Thanks to Peter Zijlstra for this re-write. Testing: I ran a series of 'tbench 20' runs 5 times (with reboots) for 3 configurations, where tracepoints were disabled. jump label configured in avg: 815.6 jump label *not* configured in (using atomic reads) avg: 800.1 jump label *not* configured in (regular reads) avg: 803.4 Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <20110316212947.GA8792@redhat.com> Signed-off-by: Jason Baron <jbaron@redhat.com> Suggested-by: H. Peter Anvin <hpa@linux.intel.com> Tested-by: David Daney <ddaney@caviumnetworks.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
6549864629 |
tracepoints: Fix section alignment using pointer array
Make the tracepoints more robust, making them solid enough to handle compiler
changes by not relying on anything based on compiler-specific behavior with
respect to structure alignment. Implement an approach proposed by David Miller:
use an array of const pointers to refer to the individual structures, and export
this pointer array through the linker script rather than the structures per se.
It will consume 32 extra bytes per tracepoint (24 for structure padding and 8
for the pointers), but are less likely to break due to compiler changes.
History:
commit
|
||
![]() |
bd1c8b22b7 |
tracepoint: Add __rcu annotation
Add __rcu annotation to : (struct tracepoint)->funcs Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> LKML-Reference: <4D22D4F1.50505@cn.fujitsu.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
||
![]() |
ec6e7c3ae3 |
tracing/trivial: Add missing comma in TRACE_EVENT comment
Add missing comma within the TRACE_EVENT() example in tracepoint.h. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> LKML-Reference: <20110106184532.GA2526@Krystal> CC: Frederic Weisbecker <fweisbec@gmail.com> CC: Ingo Molnar <mingo@elte.hu> CC: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |