Re: [PATCH RFC v5 net-next 4/6] virtio-net: add basic interrupt coalescing support
From: Pawel Moll <hidden>
Date: 2015-02-13 12:41:18
Also in:
lkml
On Fri, 2015-02-13 at 02:52 +0000, Rusty Russell wrote:
"Michael S. Tsirkin" [off-list ref] writes:quoted
On Tue, Feb 10, 2015 at 12:02:37PM +1030, Rusty Russell wrote:quoted
Jason Wang [off-list ref] writes:quoted
This patch enables the interrupt coalescing setting through ethtool.The problem is that there's nothing network specific about interrupt coalescing. I can see other devices wanting exactly the same thing, which means we'd deprecate this in the next virtio standard. I think the right answer is to extend like we did with vring_used_event(), eg: 1) Add a new feature VIRTIO_F_RING_COALESCE. 2) Add another a 32-bit field after vring_used_event(), eg: #define vring_used_delay(vr) (*(u32 *)((vr)->avail->ring[(vr)->num + 2])) This loses the ability to coalesce by number of frames, but we can still do number of sg entries, as we do now with used_event, and we could change virtqueue_enable_cb_delayed() to take a precise number if we wanted.But do we expect delay to be update dynamically? If not, why not stick it in config space?Hmm, we could update it dynamically (and will, in the case of ethtool). But it won't be common, so we could append a field to virtio_pci_common_cfg for PCI. I think MMIO and CCW would be easy to extend too, but CC'd to check.
As far as I understand the virtio_pci_common_cfg principle (just had a look, for the first time ;-), it's now an equivalent of the MMIO control registers block. I see no major problem with adding another one. Or were you thinking about introducing some standard for the "real" config space? (fine with me as well - the transport will have nothing to do :-) Paweł