On Thu Oct 13 18:43:17 2022 +0000, Rémi Bernon wrote:
Simplifying the interface, so that it's just be about pushing data to the parser / reading data out of it, in the same way as the wg_transform is, and ultimately using the same `wg_sample` primitive for zero-copy. Most of the wg_parser_buffer fields are really only there for the purpose of this logic, moving it to the unix side will make them unnecessary. It also saves syscalls.
This doesn't really simplify the interface, though. It simplifies the wmvcore glue at the expense of making the wg_parser interface more complicated, but it's not clear to me that's a worthwhile trade.
I think that given the wmvcore interface, it should be possible to implement zero-copy while still dealing with the alternation logic in the wmvcore frontend. In particular we'd end up caching the whole sample on the PE side.
That said, it's possible this is less pretty than caching on the Unix side; I haven't tried the whole way through...