This is a large refactor of the grpc_homa library to fix various bugs and implement missing features that it needed in order to pass the unit tests for distbench.
Apologies for the rough nature of these commits. The existing unit tests seem to have missed bugs that were pretty fundamental, so I just kept hacking until all the distbench unit tests passed in ASAN and TSAN modes. By the time all the bugs were understood the changes were too large and intertwined to factor into smaller ones. Several of the individual commits are for ease of review only, they don't actually compile without later commits.
Distbench is built with bazel, so we replaced the Makefile-based build system with a bazel-based one, which will be included in a commit to the distbench repository, not here. I was unable (unmotivated) to get the Makefile to build any code or any of the the grpc_homa unit tests, so I can't be certain that they continue to build and pass, but overall this has to be a big step in the right direction.
This is a large refactor of the grpc_homa library to fix various bugs and implement missing features that it needed in order to pass the unit tests for distbench.
It depends on the following kernel changes in HomaModule: https://github.com/PlatformLab/HomaModule/pull/10
Apologies for the rough nature of these commits. The existing unit tests seem to have missed bugs that were pretty fundamental, so I just kept hacking until all the distbench unit tests passed in ASAN and TSAN modes. By the time all the bugs were understood the changes were too large and intertwined to factor into smaller ones. Several of the individual commits are for ease of review only, they don't actually compile without later commits.
Distbench is built with bazel, so we replaced the Makefile-based build system with a bazel-based one, which will be included in a commit to the distbench repository, not here. I was unable (unmotivated) to get the Makefile to build any code or any of the the grpc_homa unit tests, so I can't be certain that they continue to build and pass, but overall this has to be a big step in the right direction.