Thread (14 messages) 14 messages, 5 authors, 2024-03-29

Re: [PATCH net-next v2 2/2] virtio-net: support dim profile fine-tuning

From: Heng Qi <hidden>
Date: 2024-03-28 02:26:28


在 2024/3/28 上午8:32, Jakub Kicinski 写道:
On Wed, 27 Mar 2024 15:45:50 +0100 Alexander Lobakin wrote:
quoted
quoted
+/* This is copied from NET_DIM_RX_EQE_PROFILES in DIM library */
+#define VIRTNET_DIM_RX_PKTS 256
+static struct dim_cq_moder rx_eqe_conf[] = {
+	{.usec = 1,   .pkts = VIRTNET_DIM_RX_PKTS,},
+	{.usec = 8,   .pkts = VIRTNET_DIM_RX_PKTS,},
+	{.usec = 64,  .pkts = VIRTNET_DIM_RX_PKTS,},
+	{.usec = 128, .pkts = VIRTNET_DIM_RX_PKTS,},
+	{.usec = 256, .pkts = VIRTNET_DIM_RX_PKTS,}
+};
This is wrong.
This way you will have one global table for ALL the virtio devices in
the system, while Ethtool performs configuration on a per-netdevice basis.
What you need is to have 1 dim_cq_moder per each virtio netdevice,
embedded somewhere into its netdev_priv(). Then
virtio_dim_{rx,tx}_work() will take profiles from there, not the global
struct. The global struct can stay here as const to initialize default
per-netdevice params.
I've been wondering lately if adaptive IRQ moderation isn't exactly
the kind of heuristic we would be best off deferring to BPF.
I have done 0 experiments -- are the thresholds enough
or do more interesting algos come to mind for anyone?
Hi Jakub.

I totally agree with your idea. In order to get the best practices for 
virtio DIM on our DPUs,
I actually spent a lot of energy on tuning, similar to the current 
custom profile list and virtio
ctrlq asynchronousization. There are some other tuning methods that may 
not be applicable to
other manufacturers, so they are cannot be released for the time being.

But anyway, adding a dim_bpf interface similar to native XDP (located at 
the beginning
of net_dim()) I think would be good, if you and BPF maintainers (Cc'd) 
are willing for a new bpf type
to be introduced. dim_bpf allows devices that want to implement best 
practices for adaptive
IRQ moderation to implement custom logic.

Also, I think the existing patches are still necessary, and this 
provides the simplest and most
direct way to tune.

Thanks!


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help