Skip to content

Instantly share code, notes, and snippets.

@n1kolasM
Last active August 29, 2017 04:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save n1kolasM/93da7c30a9b3cbe99a8e4c408d6c947d to your computer and use it in GitHub Desktop.
Save n1kolasM/93da7c30a9b3cbe99a8e4c408d6c947d to your computer and use it in GitHub Desktop.
GSoC 2017 Work Product Submission

GSoC 2017 Work Product Submission

What is done

  • Introduced new filtering architecture.
  • Moved all filtering to new architecture.
  • Created new filtering syntax for more complex filtering behaviour.
  • Implemented full fd and path filtering.
  • Fixed issues of old path filtering.
  • Improved testing of filtering.
  • Optimized filtering for default filtering expressions.

TODO

  • Merge code into main repository.
  • Implement new actions for formatting strace output.
  • Test callnum filter. (It is working, but it is not tested yet.)
  • Improve documentation of new filtering syntax.
  • Improve testing of fd/path filters.

Commits description

All commits

Merged commits

  • Path and fd filtering fixes (Merged):
    • (67ee2dcb) tests: improve syscall set syntax testing
    • (f027d330) pathtrace: fix missing syscalls
    • (71712fea) pathtrace: fix matching of execveat syscall
    • (86259ebb) Add TF flag to inotify_add_watch syscall entries

Issues fixed in these commits were found during testing of my fd and path filtering code.

  • Preparation commits (Merged):
    • (b75c5b14) Split qualify.c into basic_filters.c and filter_qualify.c
    • (35c006d9) tests: move check_* functions from options-syntax.test to separate file
    • (ff8e066b) Add macros for testing QUAL_* flags

These commits introduce minor changes to ease merging of new filtering architecture.

  • Architecture changes:
    • (09c781b1) pathtrace.c: introduce user-provided sets of paths (Merged)
    • (03e3dfbe) Introduce new filtering architecture
    • (7e839f90) Implement inject and fault actions
    • (35062ca5) Implement fd filter and read/write actions
    • (701cbcba) Implement path filter

These commits introduce new filtering architecture and change filtering implementation to use it.

  • Filtering improvements and new syntax:
    • (cef4ccf8) Improve fd filtering
    • (14ac6db7) Optimize default filtering
    • (0954edfe) Implement new filtering language parsing
    • (a1eca50d) Add stacktrace filter action

These commits introduce new filtering syntax and some implementation improvements.

  • Tests and documentation:
    • (67ee2dcb) tests: improve syscall set syntax testing
    • (e6086efc) tests: check error handling of syscall filter
    • (984704de) tests: check expression parsing
    • (5acadd5a) tests: check new syntax of inject/fault actions
    • (939f0a3b) tests: check fd filter
    • (45071d40) tests: check path filter
    • (14817f8d) Add description of new filtering syntax
    • (48722780) Update NEWS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment