IO Visor TSC/Dev Meeting Minutes


Brenden Blanco <bblanco@...>
 

Attendees:

Alexei Starovoitov
Benjamin Poirier
Brendan Gregg
Brenden Blanco
Daniel Borkmann
Deepa Kalani
Luis Rodriguez
Mihai Budiu
Prem Jonnalagadda
Rich Lane

Here is an overview of work from the previous two weeks:

Brenden B. and Brendan G. presented at SCaLE 14x conference, giving a general
overview of IOVisor concepts. The talk was well received with good Q+A from the
audience. Slides are available at
https://www.socallinuxexpo.org/scale/14x/presentations/kernel-low-latency-tracing-and-networking.

Alexei submitted for review some patches on per-cpu hash and array bpf maps.
The API was structured with python (and other) binding friendliness in mind.
When that lands, BCC userspace support will follow.

Many upcoming work items were also discussed:

Alexei is working on native stack trace functionality support for bpf tracing
use cases. The API has been fleshed out and the implementation is currently
being massaged from the already existing alternative implementations from perf
and/or ftrace.

One big nice-to-have is support for bpf+tracepoints. The FS folks seem to be
onboard with the approach, but there is currently some resistance on the
networking side.

Folks are raising concerns about the way that complex map key/values in C are
accessed in the python and other APIs. Need to have a single source of truth
going forward. Consider generating a #include that can be used from C or
Python.

Alexei would like to remove the dependency on the .h files in /usr/share.
Brenden to statically include that file in libbcc. Alexei, please raise a
github issue for this.

On the tracing side, we discussed the use case and how user-space symbols could
work.
* For now, even a best-effort approach would be beneficial. Perhaps to start,
* only support binaries, not .so/dlopen symbols At runtime, will need to do
* some pid -> comm translation See systemtap/perf for hints on how it can work

Alexei also discussed a concept for ring/overwrite buffer for tracing. I didn't
catch all the details of how this would work, perhaps others can elaborate on
the mailing list.

Also desired would be an mmap of bpf arrays, for userspace sharing.
* May not work seamlessly with per-cpu

Daniel recently gave a talk at FOSDEM on eBPF+tc. The slides can be seen here:
https://fosdem.org/2016/schedule/event/ebpf/

A user on IRC raised a question about whether one could get an inotify for bpf
map changes. So far this is just food for future thought.

Next week, several of us will be attending netdev 1.1 conference in Europe.
There is a BoF on Thursday where Prem, John Fastabend, and Brenden will cover
"Describing datapath processing from userspace policy".

Finally, Luis talked about a problem set that he is currently interested in,
where IOVisor may play an interesting role. The topic loosely oversimplified is
how to avoid dead runtime code in the kernel. Some background on his thoughts
are available here:
* http://www.do-not-panic.com/2015/12/avoiding-dead-code-pvops-not-silver-bullet.html
* http://www.do-not-panic.com/2015/12/xen-and-x86-linux-zero-page.html
Hopefully

Thank you all!