Documentation ¶
Index ¶
- Variables
- func AttachKprobeMulti(ctx context.Context, bar *pb.ProgressBar, kprobes []Kprobe, a2n Addr2Name) (links []link.Link, ignored int)
- func AttachKprobes(ctx context.Context, bar *pb.ProgressBar, kps []Kprobe, batch uint) (links []link.Link, ignored int)
- func AttachTracepoint(coll *ebpf.Collection) (*tracing, bool, error)
- func GetFuncsByPos(funcs Funcs) map[int][]string
- func HaveAvailableFilterFunctions() bool
- func HaveBPFLinkKprobeMulti() bool
- func HaveBPFLinkTracing() bool
- func IsTracepointExist(group, tracepointName string) bool
- func NewByAddr() sort.Interface
- func NewCustomFuncsKprober(manifest map[string]string, coll *ebpf.Collection) *kprober
- func NewKprober(ctx context.Context, funcs Funcs, coll *ebpf.Collection, a2n Addr2Name, ...) *kprober
- func ParseKallsyms(funcs Funcs, all bool) (Addr2Name, BpfProgName2Addr, error)
- func Tracepoint(group string, progs map[string]*ebpf.Program) *tracing
- type Addr2Name
- type BpfProgName2Addr
- type FilterCfg
- type Flags
- type Funcs
- type Kprobe
Constants ¶
This section is empty.
Variables ¶
View Source
var ( NFSTracepointProgs = map[string]string{ "nfs_init_read": "nfs_initiate_read", "nfs_init_write": "nfs_initiate_write", } RPCTracepointProgs = map[string]string{ "rpc_task_begin": "rpc_task_begin", "rpc_task_done": "rpc_task_end", } )
View Source
var (
NFSKprobeProgs = map[string]string{
"kb_nfs_write_d": "nfs_writeback_done",
"kb_nfs_read_d": "nfs_readpage_done",
"rpc_exit_task": "rpc_exit_task",
"rpc_execute": "rpc_make_runnable",
}
)
Functions ¶
func AttachKprobeMulti ¶
func AttachKprobeMulti(ctx context.Context, bar *pb.ProgressBar, kprobes []Kprobe, a2n Addr2Name) (links []link.Link, ignored int)
AttachKprobeMulti attaches kprobe-multi serially.
func AttachKprobes ¶
func AttachKprobes(ctx context.Context, bar *pb.ProgressBar, kps []Kprobe, batch uint) (links []link.Link, ignored int)
AttachKprobes attaches kprobes concurrently.
func AttachTracepoint ¶
func AttachTracepoint(coll *ebpf.Collection) (*tracing, bool, error)
func GetFuncsByPos ¶
func HaveAvailableFilterFunctions ¶
func HaveAvailableFilterFunctions() bool
func HaveBPFLinkKprobeMulti ¶
func HaveBPFLinkKprobeMulti() bool
Very hacky way to check whether multi-link kprobe is supported.
func HaveBPFLinkTracing ¶
func HaveBPFLinkTracing() bool
Very hacky way to check whether tracing link is supported.
func IsTracepointExist ¶
func NewCustomFuncsKprober ¶
func NewCustomFuncsKprober(manifest map[string]string, coll *ebpf.Collection) *kprober
func NewKprober ¶
func ParseKallsyms ¶
func ParseKallsyms(funcs Funcs, all bool) (Addr2Name, BpfProgName2Addr, error)
Types ¶
type Addr2Name ¶
type Addr2Name struct { Addr2NameMap map[uint64]*ksym Addr2NameSlice []*ksym Name2AddrMap map[string][]uintptr }
func (*Addr2Name) FindNearestSym ¶
type BpfProgName2Addr ¶
type Flags ¶
Click to show internal directories.
Click to hide internal directories.