Re: [RFC PATCH 4/4] virtio-net: sleep instead of busy waiting for cvq command

From: Alvaro Karsz
Date: Thu Dec 22 2022 - 01:44:55 EST


Hi Jason,

Adding timeout to the cvq is a great idea IMO.

> - /* Spin for a response, the kick causes an ioport write, trapping
> - * into the hypervisor, so the request should be handled immediately.
> - */
> - while (!virtqueue_get_buf(vi->cvq, &tmp) &&
> - !virtqueue_is_broken(vi->cvq))
> - cpu_relax();
> + virtqueue_wait_for_used(vi->cvq, &tmp);

Do you think that we should continue like nothing happened in case of a timeout?
Shouldn't we reset the device?
What happens if a device completes the control command after timeout?

Thanks

Alvaro