Message ID | 20180117000521.29826-1-jakub.kicinski@netronome.com |
---|---|
Headers | show |
Series | bpf: add dumping and disassembler for non-host JITs | expand |
On Tue, 16 Jan 2018 16:05:18 -0800, Jakub Kicinski wrote: > Hi, Ah, forgot to insert "Jiong says:" here :) > Currently bpftool could disassemble host jited image, for example x86_64, > using libbfd. However it couldn't disassemble offload jited image. > > There are two reasons: > > 1. bpf_obj_get_info_by_fd/struct bpf_prog_info couldn't get the address > of jited image and image's length. > > 2. Even after issue 1 resolved, bpftool couldn't figure out what is the > offload arch from bpf_prog_info, therefore can't drive libbfd > disassembler correctly. > > This patch set resolve issue 1 by introducing two new fields "jited_len" > and "jited_image" in bpf_dev_offload. These two fields serve as the generic > interface to communicate the jited image address and length for all offload > targets to higher level caller. For example, bpf_obj_get_info_by_fd could > use them to fill the userspace visible fields jited_prog_len and > jited_prog_insns. > > This patch set resolve issue 2 by getting bfd backend name through > "ifindex", i.e network interface index. > > v1: > - Deduct bfd arch name through ifindex, i.e network interface index. > First, map ifindex to devname through ifindex_to_name_ns, then get > pci id through /sys/class/dev/DEVNAME/device/vendor. (Daniel, Alexei)
On 01/17/2018 01:05 AM, Jakub Kicinski wrote: > Hi, > > Currently bpftool could disassemble host jited image, for example x86_64, > using libbfd. However it couldn't disassemble offload jited image. > > There are two reasons: > > 1. bpf_obj_get_info_by_fd/struct bpf_prog_info couldn't get the address > of jited image and image's length. > > 2. Even after issue 1 resolved, bpftool couldn't figure out what is the > offload arch from bpf_prog_info, therefore can't drive libbfd > disassembler correctly. > > This patch set resolve issue 1 by introducing two new fields "jited_len" > and "jited_image" in bpf_dev_offload. These two fields serve as the generic > interface to communicate the jited image address and length for all offload > targets to higher level caller. For example, bpf_obj_get_info_by_fd could > use them to fill the userspace visible fields jited_prog_len and > jited_prog_insns. > > This patch set resolve issue 2 by getting bfd backend name through > "ifindex", i.e network interface index. > > v1: > - Deduct bfd arch name through ifindex, i.e network interface index. > First, map ifindex to devname through ifindex_to_name_ns, then get > pci id through /sys/class/dev/DEVNAME/device/vendor. (Daniel, Alexei) Looks good, series applied to bpf-next, thanks guys!