On 09/25/2015 03:18 PM, Yang Hongyang wrote: > > > On 09/24/2015 05:12 PM, Markus Armbruster wrote: >> Yang Hongyang <yan...@cn.fujitsu.com> writes: >> >>> This filter is to buffer/release packets, this feature can be used >>> when using MicroCheckpointing, or other Remus like VM FT solutions, you >> >> What's "Remus"? > > Remus is an opensource VM FT solution: > paper: http://http//www.cs.ubc.ca/~andy/papers/remus-nsdi-final.pdf > First implemented on Xen: > http://wiki.xen.org/wiki/Remus > > MicroCheckpointing in QEMU is another Remus implementation. > >
[...] >> >>> + * FIXME: even if guest can't receive packet for some reasons. >>> Filter >>> + * can still accept packet until its internal queue is full. >>> + */ >> >> I'm not sure I understand the comment. > > This is taken from Jason's comments, may be he can have a better explain? For example. For some reason, receiver could not receive more packets (.can_receive() returns zero). Without a filter, at most one packet will be queued in incoming queue and sender's poll will be disabled unit its sent_cb() was called. With a filter, it will keep receive the packets without caring about the receiver. This is suboptimal. May need more thoughts (e.g keeping sent_cb). [...]