On Wed, Mar 17, 2021 at 6:05 PM Stefan Hajnoczi wrote: > On Fri, Dec 18, 2020 at 05:39:34PM +0800, Jiachen Zhang wrote: > > Thanks for the suggestions. Actually, we choose to save all state > > information to QEMU because a virtiofsd has the same lifecycle as its > > QEMU master. However, saving things to a file do avoid communication with > > QEMU, and we no longer need to increase the complexity of vhost-user > > protocol. The suggestion to save fds to the systemd is also very > reasonable > > if we don't consider the lifecycle issues, we will try it. > > Hi, > We recently discussed crash recovery in the virtio-fs bi-weekly call and > I read some of this email thread because it's a topic I'm interested in. > > I agree with Marc-André that storing file descriptors does not need to > be in the vhost-user protocol. The lifetime of a vhost-user device > backend is not controlled by the VMM since the device backend is > launched separately. Therefore it's reasonable for the component that > launched the device backend to also have the responsibility of cleaning > up the vhost-user device backend. > > Using the sd_notify(3) interface is a neat idea. It's supported natively > by systemd but you can also implement a compatible interface in your own > software. This way the vhost-user device backend can be launched using > systemd or your own software. > > That said, if people find it more convenient to store fds using the > vhost-user protocol, then I think that is enough justification to add a > generic message to the vhost-user protocol. The important thing is to > make the message generic so it solves all crash recovery use cases. The > inflight fd messages were too specific and now we're having to think > about adding more messages again. > > Stefan > Hi, Stefan, I agreed with you that a virtiofsd must be launched by a software like systemd. So we are planning to define more generic persist/restore interfaces (callbacks). Then anyone can implement their own persist/restore callbacks to store states to proper places. And I think in the next version we will implement default callbacks for the interfaces. Instead of vhost-user messages, systemd's sd_notify(3) will be the default method for storing fds, and several tmpfs files can be the default place to store the shm regions. Jiachen