seL4 / projects_libs

Other
6 stars 20 forks source link

Libsharedringbuffer #15

Open lucypa opened 2 years ago

lucypa commented 2 years ago

This is a new library as part of the sDDF. It provides an efficient data transport layer between driver and client, and was implemented to improve network I/O performance. It will later be used as part of ongoing VMM projects as well.

Test with: seL4/global-components#33

lsf37 commented 2 years ago

Hi @lucypa, the content looks fine from my side, but I will leave a deeper review of that to systems people.

There is something slightly strange in the commit sequence of the PR, it seems to contain commits that are already on the master branch. Might just need a rebase.

Most of the commits in this PR should be squashed into fewer larger commits (X update, style, etc). The commits should be single logical units and ideally go from a working/compilable code state to working/compilable code state, so that git bisect can be used to find issues later. See also the git conventions and git style guide.

The link check is failing, but is fine to ignore for this PR (the failure is unrelated)

axel-h commented 2 years ago

Thanks for factoring this out. I wonder, How much does this differ from the libvirtqueue actually? Could this be code be unified somehow?

lucypa commented 2 years ago

Hi @axel-h Thanks for reviewing it. This design was chosen for the sDDF as it was more transparent and easy to reason about... there seems to be multiple implementations of virtqueues in various repositories and the particular one i looked into didn't quite match up with the paper it provided. This also performed better with camkes when benchmarked with an echo server. I think the plan is to review the virtqueue implementations for VMM work soon.