GSoC 2019: Efficient syscall tracing for strace

Paul Chaignon paul.chaignon at gmail.com
Tue Apr 9 05:33:24 UTC 2019


On Mon, Apr 08, 2019 at 11:53:34PM +0300, Dmitry V. Levin wrote:
> Hi,
> 
> On Mon, Apr 08, 2019 at 10:15:50PM +0200, Paul Chaignon wrote:
> > Hello all,
> > 
> > Please find my GSoC application draft below.
> > I'm sorry for posting it so close to the deadline (I have been working on
> > my PhD defense for the last few months).  I hope you will still consider it.
> > 
> > Regards,
> > Paul
> 
> Thanks for choosing strace project.
> Please note that the deadline for submitting the final proposal is close.
> 
> [...]
> > There are several opportunities to improve the current cBPF filter: it
> > currently contains a few unnecessary instructions and implements a linear
> > matching algorithm over the syscall numbers (although it takes ranges of
> > continuous numbers into account).  To limit the number of instructions,
> > the cBPF program could also match on the reverse set of syscalls (match
> > against syscalls that should be RET_ALLOWed instead of RET_TRACEd) when
> > that makes sense.
> 
> I suppose libseccomp might be a good source of ideas for generating a more
> optimal cBPF program.

Thanks for the suggestion, I'll have a look.  At the moment, I was
thinking we could either use binary search or a simple bit-matching
algorithm (see mail to Chen Jingpiao on the mailing list for details) to
match filtered syscalls.

> 
> [...]
> > Tentative schedule:
> > ==============
> > Week 1: Add more tests for seccomp-bpf
> > Week 2: Add support and tests for ARM
> > Week 3: Prepare patchset for seccomp-bpf & Work on review rounds for
> >   seccomp-bpf
> > Week 4: Work on review rounds for seccomp-bpf
> > Week 5: Improve cBPF program and run evaluations
> > 28/06 - Phase 1 deadline - Result: seccomp-bpf merged or in good state
> > Week 6: Rebase alt-backends
> > Week 7: Rebase alt-backends
> > Week 8: Prepare RFC patchset for alt-backends
> > Week 9: Develop PoC of tracepoint/BPF backend
> > 26/07 - Phase 2 deadline - Result: alt-backends posted on mailing list
> > Week 10: Develop PoC of tracepoint/BPF backend
> > Week 11: Prepare patchset for alt-backends & Work on review rounds
> > Week 12: Final week to work on review rounds if necessary
> > 19/08 - Final deadline - Result: alt-backends merged or in good state +
> >   RFC for tracepoint/BPF backend
> 
> It's not quite clear from this schedule whether do you plan to work
> on the gdbserver backend as well.

I did not plan to work on the gdbserver backend itself.  I'll update the
schedule for clarity.

I would prefer to target a smaller result for the GSoC and be sure to
finish, rather than end up with an abandoned patch.  Do you think I
overestimate the required work for the preparational backend patchset and
seccomp-bpf?

> 
> If you do, please mention it in the schedule.
> 
> The gdbserver backend would likely make some people happy but
> it would also take some of your GSoC time.
> 
> 
> -- 
> ldv
--
Paul


More information about the Strace-devel mailing list