bpf: add BTF ids in procfs for file descriptors to BTF objects
Implement the show_fdinfo hook for BTF FDs file operations, and make it print the id of the BTF object. This allows for a quick retrieval of the BTF id from its FD; or it can help understanding what type of object (BTF) the file descriptor points to. v2: - Do not expose data_size, only btf_id, in FD info. Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
ede6bc88d6
commit
3481e64bbe
|
@ -3376,6 +3376,15 @@ void btf_type_seq_show(const struct btf *btf, u32 type_id, void *obj,
|
|||
btf_type_ops(t)->seq_show(btf, t, type_id, obj, 0, m);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
static void bpf_btf_show_fdinfo(struct seq_file *m, struct file *filp)
|
||||
{
|
||||
const struct btf *btf = filp->private_data;
|
||||
|
||||
seq_printf(m, "btf_id:\t%u\n", btf->id);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int btf_release(struct inode *inode, struct file *filp)
|
||||
{
|
||||
btf_put(filp->private_data);
|
||||
|
@ -3383,6 +3392,9 @@ static int btf_release(struct inode *inode, struct file *filp)
|
|||
}
|
||||
|
||||
const struct file_operations btf_fops = {
|
||||
#ifdef CONFIG_PROC_FS
|
||||
.show_fdinfo = bpf_btf_show_fdinfo,
|
||||
#endif
|
||||
.release = btf_release,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue