Hi Adrian, > -----Original Message----- > From: Adrian Moreno <amore...@redhat.com> > Sent: Thursday, July 16, 2020 3:34 PM > To: Xia, Chenbo <chenbo....@intel.com>; dev@dpdk.org > Cc: maxime.coque...@redhat.com; Wang, Zhihong <zhihong.w...@intel.com>; > Li, Miao <miao...@intel.com> > Subject: Re: [PATCH 2/5] net/virtio: add DEVICE_NEEDS_RESET status bit > > Hi, > > On 7/16/20 4:26 AM, Xia, Chenbo wrote: > > Hi Adrian, > > > >> -----Original Message----- > >> From: Adrian Moreno <amore...@redhat.com> > >> Sent: Thursday, July 16, 2020 1:18 AM > >> To: dev@dpdk.org > >> Cc: maxime.coque...@redhat.com; Wang, Zhihong > >> <zhihong.w...@intel.com>; amore...@redhat.com; Xia, Chenbo > >> <chenbo....@intel.com> > >> Subject: [PATCH 2/5] net/virtio: add DEVICE_NEEDS_RESET status bit > >> > >> For the sake of completeness, add the definition of the missing > >> status bit in accordance with the virtio spec > >> > >> Signed-off-by: Adrian Moreno <amore...@redhat.com> > >> --- > >> drivers/net/virtio/virtio_pci.h | 13 +++++++------ > >> 1 file changed, 7 insertions(+), 6 deletions(-) > >> > >> diff --git a/drivers/net/virtio/virtio_pci.h > >> b/drivers/net/virtio/virtio_pci.h index 74ed77e33..ab61e911b 100644 > >> --- a/drivers/net/virtio/virtio_pci.h > >> +++ b/drivers/net/virtio/virtio_pci.h > >> @@ -57,12 +57,13 @@ struct virtnet_ctl; > >> #define VIRTIO_ID_9P 0x09 > >> > >> /* Status byte for guest to report progress. */ > >> -#define VIRTIO_CONFIG_STATUS_RESET 0x00 > >> -#define VIRTIO_CONFIG_STATUS_ACK 0x01 > >> -#define VIRTIO_CONFIG_STATUS_DRIVER 0x02 > >> -#define VIRTIO_CONFIG_STATUS_DRIVER_OK 0x04 -#define > >> VIRTIO_CONFIG_STATUS_FEATURES_OK 0x08 > >> -#define VIRTIO_CONFIG_STATUS_FAILED 0x80 > >> +#define VIRTIO_CONFIG_STATUS_RESET 0x00 > >> +#define VIRTIO_CONFIG_STATUS_ACK 0x01 > >> +#define VIRTIO_CONFIG_STATUS_DRIVER 0x02 > >> +#define VIRTIO_CONFIG_STATUS_DRIVER_OK 0x04 > >> +#define VIRTIO_CONFIG_STATUS_FEATURES_OK 0x08 > >> +#define VIRTIO_CONFIG_STATUS_DEV_NEED_RESET 0x40 > >> +#define VIRTIO_CONFIG_STATUS_FAILED 0x80 > > > > Do we need to delete ' VIRTIO_CONFIG_STATUS_RESET'? I see vhost lib > > does not have it now. And I read virtio 1.1 spec and find the > > description of writing 0 to reset device is deleted. I think virtio 1.1 > > spec is not > very clear about reset status. > > Does 'DEV_NEED_RESET' equal old 'RESET'? > > > In virtio 1.1 > "2.1.2 Device Requirements: Device Status Field > > The device MUST initialize device status to 0 upon reset. > ... > " > So I think having "#define VIRTIO_CONFIG_STATUS_RESET 0x00" is still useful to > understand what is going on in: > > void > vtpci_reset(struct virtio_hw *hw) > { > VTPCI_OPS(hw)->set_status(hw, VIRTIO_CONFIG_STATUS_RESET); > /* flush status write */ > VTPCI_OPS(hw)->get_status(hw); > } > > DEV_NEED_RESET is used for the device to notify that it has encountered an > unrecoverable error. Therefore, the driver would never > "set_status(VIRTIO_CONFIG_STATUS_DEV_NEED_RESET)"; instead, it should > read the status and if this bit is set, reset the device.
Yes, you are correct! I missed that part. Btw, should we add STATUS_RESET to Vhost lib? I see there's no reset status now. Thanks! Chenbo > > > > Thanks! > > Chenbo > > > >> > >> /* > >> * Each virtqueue indirect descriptor list must be physically contiguous. > >> -- > >> 2.26.2 > > > > -- > Adrián Moreno