On Fri, 12 Apr 2024 14:53:08 -0500 Daniel Jurgens wrote:
> Once the RTNL locking around the control buffer is removed there can be
> contention on the per queue RX interrupt coalescing data. Use a spin
> lock per queue.

Does not compile on Clang.

> +                     scoped_guard(spinlock, &vi->rq[i].intr_coal_lock) {
> +                             err = virtnet_send_rx_ctrl_coal_vq_cmd(vi, i,
> +                                                                    
> vi->intr_coal_rx.max_usecs,
> +                                                                    
> vi->intr_coal_rx.max_packets);
> +                             if (err)
> +                                     return err;
> +                     }

Do you really think this needs a scoped guard and 4th indentation level,
instead of just:

                        ..lock(..);
                        err = virtnet_send_rx_ctrl_coal_vq_cmd(vi, i,
                                                               
vi->intr_coal_rx.max_usecs,
                                                               
vi->intr_coal_rx.max_packets);
                        ..unlock(..);
                        if (err)
                                return err;

> +             scoped_guard(spinlock, &vi->rq[i].intr_coal_lock) {
> +                     vi->rq[i].intr_coal.max_usecs = ec->rx_coalesce_usecs;
> +                     vi->rq[i].intr_coal.max_packets = 
> ec->rx_max_coalesced_frames;
> +             }

:-|
-- 
pw-bot: cr

Reply via email to