]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Allow multiple FBT probes to share a tracepoint.
authorMark Johnston <markj@FreeBSD.org>
Tue, 28 Aug 2018 20:21:36 +0000 (20:21 +0000)
committerMark Johnston <markj@FreeBSD.org>
Tue, 28 Aug 2018 20:21:36 +0000 (20:21 +0000)
commitc208cb9923a9e92c801f6eebe13d191906b2719e
tree786f426110010eb81af8185fa0e3783c9e49dc01
parent4ec2e460b5e0391307105c4280d802035399bf99
Allow multiple FBT probes to share a tracepoint.

With GNU ifuncs, multiple FBT probes may correspond to the same
instruction.  fbt_invop() assumed that this could not happen and
would return after the first probe found in the global FBT hash
table, which might not be the one that's enabled.  Fix the problem
on x86 by linking probes that share a tracepoint and having each
linked probe fire when the tracepoint is hit.

PR: 230846
Approved by: re (gjb)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D16921
sys/cddl/dev/fbt/aarch64/fbt_isa.c
sys/cddl/dev/fbt/arm/fbt_isa.c
sys/cddl/dev/fbt/fbt.c
sys/cddl/dev/fbt/fbt.h
sys/cddl/dev/fbt/mips/fbt_isa.c
sys/cddl/dev/fbt/powerpc/fbt_isa.c
sys/cddl/dev/fbt/riscv/fbt_isa.c
sys/cddl/dev/fbt/x86/fbt_isa.c