Messages in this thread | | | Date | Mon, 31 Jul 2023 14:25:19 +0800 | Subject | Re: [PATCH net-next V4 2/3] virtio_net: support per queue interrupt coalesce command | From | Jason Wang <> |
| |
在 2023/7/28 13:46, Michael S. Tsirkin 写道: > On Thu, Jul 27, 2023 at 03:28:32PM +0200, Paolo Abeni wrote: >> On Tue, 2023-07-25 at 16:07 +0300, Gavin Li wrote: >>> Add interrupt_coalesce config in send_queue and receive_queue to cache user >>> config. >>> >>> Send per virtqueue interrupt moderation config to underlying device in >>> order to have more efficient interrupt moderation and cpu utilization of >>> guest VM. >>> >>> Additionally, address all the VQs when updating the global configuration, >>> as now the individual VQs configuration can diverge from the global >>> configuration. >>> >>> Signed-off-by: Gavin Li <gavinl@nvidia.com> >>> Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com> >>> Reviewed-by: Jiri Pirko <jiri@nvidia.com> >>> Acked-by: Michael S. Tsirkin <mst@redhat.com> >> FTR, this patch is significantly different from the version previously >> acked/reviewed, I'm unsure if all the reviewers are ok with the new >> one. >> >> [...] > still ok by me > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > > let's wait for Jason too.
I'm fine with this series (I've acked each patch).
Thanks
> >>> static int virtnet_set_coalesce(struct net_device *dev, >>> struct ethtool_coalesce *ec, >>> struct kernel_ethtool_coalesce *kernel_coal, >>> struct netlink_ext_ack *extack) >>> { >>> struct virtnet_info *vi = netdev_priv(dev); >>> - int ret, i, napi_weight; >>> + int ret, queue_number, napi_weight; >>> bool update_napi = false; >>> >>> /* Can't change NAPI weight if the link is up */ >>> napi_weight = ec->tx_max_coalesced_frames ? NAPI_POLL_WEIGHT : 0; >>> - if (napi_weight ^ vi->sq[0].napi.weight) { >>> - if (dev->flags & IFF_UP) >>> - return -EBUSY; >>> - else >>> - update_napi = true; >>> + for (queue_number = 0; queue_number < vi->max_queue_pairs; queue_number++) { >>> + ret = virtnet_should_update_vq_weight(dev->flags, napi_weight, >>> + vi->sq[queue_number].napi.weight, >>> + &update_napi); >>> + if (ret) >>> + return ret; >>> + >>> + if (update_napi) { >>> + /* All queues that belong to [queue_number, queue_count] will be >>> + * updated for the sake of simplicity, which might not be necessary >> It looks like the comment above still refers to the old code. Should >> be: >> [queue_number, vi->max_queue_pairs] >> >> Otherwise LGTM, thanks! >> >> Paolo
| |