On 2023/6/1 22:37, Eugenio Perez Martin wrote: > On Thu, Jun 1, 2023 at 3:49 PM Hawkins Jiawei <yin31...@gmail.com> wrote: >> >> To support restoring offloads state in vdpa, need to expose >> the function virtio_net_supported_guest_offloads(). >> QEMU uses this function to get the guest supported offloads >> and no needs to send the corresponding CVQ command if guest > > doesn't need to send?
I will correct it in the v4 patch. > >> enables all supported features. >> > > Good! I'd add the same message as the next patch's comment, to signal > it is because the device has already enabled by default: > > + * According to VirtIO standard, "Upon feature negotiation > + * corresponding offload gets enabled to preserve > + * backward compatibility." > + * So we do not need to send this CVQ command if the guest > + * also enables all supported offloads. I will add these messages in the v4 patch. Thanks! > > Thanks! > > >> Signed-off-by: Hawkins Jiawei <yin31...@gmail.com> >> --- >> hw/net/virtio-net.c | 2 +- >> include/hw/virtio/virtio-net.h | 1 + >> 2 files changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c >> index 7b27dad6c4..7e8897a8bc 100644 >> --- a/hw/net/virtio-net.c >> +++ b/hw/net/virtio-net.c >> @@ -874,7 +874,7 @@ static uint64_t >> virtio_net_guest_offloads_by_features(uint32_t features) >> return guest_offloads_mask & features; >> } >> >> -static inline uint64_t virtio_net_supported_guest_offloads(const VirtIONet >> *n) >> +uint64_t virtio_net_supported_guest_offloads(const VirtIONet *n) >> { >> VirtIODevice *vdev = VIRTIO_DEVICE(n); >> return virtio_net_guest_offloads_by_features(vdev->guest_features); >> diff --git a/include/hw/virtio/virtio-net.h b/include/hw/virtio/virtio-net.h >> index ef234ffe7e..5f5dcb4572 100644 >> --- a/include/hw/virtio/virtio-net.h >> +++ b/include/hw/virtio/virtio-net.h >> @@ -227,5 +227,6 @@ size_t virtio_net_handle_ctrl_iov(VirtIODevice *vdev, >> unsigned out_num); >> void virtio_net_set_netclient_name(VirtIONet *n, const char *name, >> const char *type); >> +uint64_t virtio_net_supported_guest_offloads(const VirtIONet *n); >> >> #endif >> -- >> 2.25.1 >> >