twx-linux/include/uapi/linux
Daniel Xu fff7b64355 bpf: Add bpf_read_branch_records() helper
Branch records are a CPU feature that can be configured to record
certain branches that are taken during code execution. This data is
particularly interesting for profile guided optimizations. perf has had
branch record support for a while but the data collection can be a bit
coarse grained.

We (Facebook) have seen in experiments that associating metadata with
branch records can improve results (after postprocessing). We generally
use bpf_probe_read_*() to get metadata out of userspace. That's why bpf
support for branch records is useful.

Aside from this particular use case, having branch data available to bpf
progs can be useful to get stack traces out of userspace applications
that omit frame pointers.

Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20200218030432.4600-2-dxu@dxuuu.xyz
2020-02-19 14:37:36 -08:00
..
android
byteorder
caif
can
cifs
dvb
genwqe
hdlc wan/hdlc_x25: make lapb params configurable 2020-01-21 11:41:36 +01:00
hsi
iio
isdn
mmc
netfilter netfilter: nf_tables: Support for sets with multiple ranged fields 2020-01-27 08:54:30 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
tc_act net: sched: add erspan option support to act_tunnel_key 2019-11-21 11:44:06 -08:00
tc_ematch
usb
wimax
a.out.h
acct.h acct: stop using get_seconds() 2019-12-18 18:07:31 +01:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h bpf: Emit audit messages upon successful prog load and unload 2019-12-11 17:41:09 +01:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
batadv_packet.h batman-adv: Update copyright years for 2020 2020-01-01 00:00:33 +01:00
batman_adv.h batman-adv: Update copyright years for 2020 2020-01-01 00:00:33 +01:00
baycom.h
bcache.h bcache: use read_cache_page_gfp to read the superblock 2020-01-23 11:40:01 -07:00
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h
bpf_common.h
bpf_perf_event.h
bpf.h bpf: Add bpf_read_branch_records() helper 2020-02-19 14:37:36 -08:00
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: Introduce function-by-function verification 2020-01-10 17:20:07 +01:00
btrfs_tree.h btrfs: add support for 4-copy replication (raid1c4) 2019-11-18 17:51:49 +01:00
btrfs.h btrfs: add incompat for raid1 with 3, 4 copies 2019-11-18 17:51:49 +01:00
can.h
capability.h prctl: PR_{G,S}ET_IO_FLUSHER to support controlling memory reclaim 2020-01-28 10:09:51 +01:00
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h
cec.h
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda.h
coff.h
connector.h
const.h
coresight-stm.h
cramfs_fs.h
cryptouser.h
cuda.h
cyclades.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-16 21:51:42 -08:00
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h
dm-log-userspace.h
dma-buf.h
dma-heap.h dma-buf: heaps: Use _IOCTL_ for userspace IOCTL identifier 2019-12-17 21:37:40 +05:30
dn.h
dns_resolver.h
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h
elfcore.h y2038: elfcore: Use __kernel_old_timeval for process times 2019-11-15 14:38:29 +01:00
errno.h
errqueue.h y2038: socket: remove timespec reference in timestamping 2019-11-15 14:38:29 +01:00
erspan.h
ethtool_netlink.h ethtool: add WOL_NTF notification 2020-01-27 11:31:36 +01:00
ethtool.h ethtool: provide WoL settings with WOL_GET request 2020-01-27 11:31:36 +01:00
eventpoll.h
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h open: introduce openat2(2) syscall 2020-01-18 09:19:18 -05:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
fou.h
fpga-dfl.h
fs.h
fscrypt.h fscrypt: include <linux/ioctl.h> in UAPI header 2019-12-31 10:33:51 -06:00
fsi.h
fsl_hypervisor.h
fsmap.h
fsverity.h
fuse.h
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gpio.h
gsmmux.h
gtp.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h HID: hidraw: add support uniq ioctl 2019-12-11 15:31:52 +01:00
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
idxd.h dmaengine: idxd: Init and probe for Intel data accelerators 2020-01-24 11:18:45 +05:30
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h bonding: rename AD_STATE_* to LACP_STATE_* 2019-12-26 13:09:37 -08:00
if_bridge.h net: bridge: vlan: add per-vlan state 2020-01-24 12:58:14 +01:00
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h net: macsec: introduce the macsec_context structure 2020-01-14 11:31:41 -08:00
if_ltalk.h
if_macsec.h net: macsec: add nla support for changing the offloading selection 2020-01-14 11:31:41 -08:00
if_packet.h
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
if_x25.h
if_xdp.h
if.h wan/hdlc_x25: make lapb params configurable 2020-01-21 11:41:36 +01:00
ife.h
igmp.h
ila.h
in6.h
in_route.h
in.h tcp: Define IPPROTO_MPTCP 2020-01-09 18:41:41 -08:00
inet_diag.h
inotify.h
input-event-codes.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-12-07 18:33:01 -08:00
input.h Input: input_event - fix struct padding on sparc64 2019-12-13 15:00:36 -08:00
io_uring.h io_uring: add support for epoll_ctl(2) 2020-01-29 15:46:09 -07:00
ioctl.h
iommu.h
ip6_tunnel.h
ip_vs.h
ip.h
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irqnr.h
iso_fs.h
isst_if.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h kcov: fix struct layout for kcov_remote_arg 2020-01-04 13:55:09 -08:00
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h
kfd_ioctl.h
kvm_para.h
kvm.h KVM: s390: Add new reset vcpu API 2020-01-31 12:50:04 +01:00
l2tp.h
libc-compat.h
lightnvm.h
limits.h
lirc.h
llc.h
loop.h
lp.h
lwtunnel.h
magic.h fs: New zonefs file system 2020-02-07 14:39:38 +09:00
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h
media-bus-format.h
media.h
mei.h
membarrier.h
memfd.h
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h mii: Add helpers for parsing SGMII auto-negotiation 2020-01-05 23:22:32 -08:00
minix_fs.h
mman.h
mmtimer.h
module.h
mount.h
mpls_iptunnel.h
mpls.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h
msg.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h
neighbour.h
net_dropmon.h
net_namespace.h
net_tstamp.h net: Introduce peer to peer one step PTP time stamping. 2019-12-25 19:51:34 -08:00
net.h
netconf.h
netdevice.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink_diag.h
netlink.h
netrom.h
nexthop.h
nfc.h
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nl80211.h nl80211: add src and dst addr attributes for control port tx/rx 2020-02-07 12:58:37 +01:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h open: introduce openat2(2) syscall 2020-01-18 09:19:18 -05:00
openvswitch.h openvswitch: add TTL decrement action 2020-02-16 19:34:44 -08:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h PCI: dwc: intel: PCIe RC controller driver 2020-01-09 11:57:18 +00:00
pci.h
pcitest.h
perf_event.h
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net: sched: allow flower to match erspan options 2019-11-21 11:44:06 -08:00
pkt_sched.h net: sched: add Flow Queue PIE packet scheduler 2020-01-23 11:38:31 +01:00
pktcdvd.h
pmu.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
ppdev.h
ppp_defs.h y2038: syscall implementation cleanups 2019-12-01 14:00:59 -08:00
ppp-comp.h
ppp-ioctl.h
pps.h
pr.h
prctl.h prctl: PR_{G,S}ET_IO_FLUSHER to support controlling memory reclaim 2020-01-28 10:09:51 +01:00
psample.h
psci.h
psp-sev.h
ptp_clock.h ptp: Introduce strict checking of external time stamp options. 2019-11-15 12:48:32 -08:00
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h random: ignore GRND_RANDOM in getentropy(2) 2020-01-07 16:07:01 -05:00
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h y2038: rusage: use __kernel_old_timeval 2019-11-15 14:38:29 +01:00
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
romfs_fs.h
rose.h
route.h
rpmsg.h
rseq.h
rtc.h rtc: define RTC_VL_READ values 2019-12-18 10:37:18 +01:00
rtnetlink.h net: bridge: vlan: add rtnetlink group and notify support 2020-01-15 13:48:18 +01:00
rxrpc.h
scc.h linux/scc.h: make uapi linux/scc.h self-contained 2019-12-04 19:44:12 -08:00
sched.h ns: Introduce Time Namespace 2020-01-14 12:20:48 +01:00
scif_ioctl.h
screen_info.h
sctp.h
sdla.h
seccomp.h
securebits.h
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selinux_netlink.h
sem.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
serial_core.h
serial_reg.h
serial.h
serio.h
shm.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
signal.h
signalfd.h
smc_diag.h
smc.h
smiapp.h
snmp.h tcp: export count for rehash attempts 2020-01-26 15:28:47 +01:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h statx: define STATX_ATTR_VERITY 2019-11-13 12:15:34 -08:00
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h uapi: rename ext2_swab() to swab() and share globally in swab.h 2020-01-31 10:30:40 -08:00
switchtec_ioctl.h PCI/switchtec: Add Gen4 flash information interface support 2020-01-15 11:00:39 -06:00
sync_file.h
synclink.h
sysctl.h mm: fix comments related to node reclaim 2020-01-31 10:30:39 -08:00
sysinfo.h
target_core_user.h
taskstats.h tsacct: add 64-bit btime field 2019-12-18 18:07:31 +01:00
tcp_metrics.h
tcp.h tcp-zerocopy: Return sk_err (if set) along with tcp receive zerocopy. 2020-02-16 19:25:02 -08:00
tee.h tee: add AMD-TEE driver 2020-01-04 13:49:51 +08:00
termios.h
thermal.h
time_types.h y2038: rename itimerval to __kernel_old_itimerval 2019-12-18 18:07:33 +01:00
time.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
timerfd.h
times.h
timex.h y2038: sparc: remove use of struct timex 2019-12-18 18:07:33 +01:00
tiocl.h
tipc_config.h
tipc_netlink.h tipc: make legacy address flag readable over netlink 2019-12-20 21:18:42 -08:00
tipc_sockets_diag.h
tipc.h
tls.h
toshiba.h
tty_flags.h
tty.h
types.h
udf_fs_i.h
udmabuf.h
udp.h xfrm: add espintcp (RFC 8229) 2019-12-09 09:59:07 +01:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h
userio.h
utime.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
v4l2-controls.h
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
veth.h
vfio_ccw.h
vfio.h
vhost_types.h
vhost.h
videodev2.h media: v4l2-core: fix v4l2_buffer handling for time64 ABI 2020-01-03 15:50:21 +01:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpu.h
virtio_ids.h
virtio_input.h
virtio_iommu.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_scsi.h
virtio_types.h
virtio_vsock.h
vm_sockets_diag.h
vm_sockets.h vsock: add VMADDR_CID_LOCAL definition 2019-12-11 15:01:23 -08:00
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watchdog.h
wimax.h
wireguard.h wireguard: global: fix spelling mistakes in comments 2019-12-16 19:22:22 -08:00
wireless.h wireless: Use offsetof instead of custom macro. 2019-12-13 10:45:35 +01:00
wmi.h
x25.h
xattr.h
xdp_diag.h
xfrm.h
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h