Hi Hanna, I was thinking about how this could work without SUSPEND/RESUME. What do you think of the following?
1. The front-end sends VHOST_USER_RESET_DEVICE (or VHOST_USER_RESET_OWNER, when necessary) when the guest driver resets the device but not on vhost_dev_start()/vhost_dev_stop(). 2. Suspend the device when all virtqueues are stopped via VHOST_USER_GET_VRING_BASE. Resume the device after at least one virtqueue is started and enabled. 3. Ignore VHOST_USER_SET_STATUS. Reset would work. The device would suspend and resume without losing state. Existing vhost-user backends already behave like this in practice (they often don't implement RESET_DEVICE). It's close enough to what you're proposing that it doesn't require much additional work, but I think it covers the cases. Two concerns: 1. It's specific to vhost-user and diverges from vDPA. 2. VHOST_USER_SET_STATUS might be needed in the future even though it's not useful today. Stefan