Comments (8)
Related: https://issues.redhat.com/browse/RHEL-20220
from kvm-guest-drivers-windows.
I have been exploring the details surrounding VIRTIO_NET_F_MRG_RXBUF and found myself a bit perplexed regarding the association between the merging of the Virtio header and the packet as mentioned in the issue, in relation to the activation of VIRTIO_NET_F_MRG_RXBUF. It appears to me that the merging of the Virtio Header with the packet is feasible even when VIRTIO_NET_F_MRG_RXBUF is not utilized. If it's not too much trouble, I would greatly appreciate your insights on how these two aspects are interconnected.
from kvm-guest-drivers-windows.
@zjmletang
VIRTIO_NET_F_MRG_RXBUF is automatically enabled when the device indicates VIRTIO_F_VERSION_1, this is part of virtio spec (network part). Just indicating merged buffers does not make any effect. Existing driver in case when RSC is enabled allocates buffers of ~64K for each RX packet (this might be up to 17 pages), so the device does not have any motivation even to try using merged buffers. In case of no RSC - the driver uses one or more 4K buffers depending on Jumbo setting.
- Your table above indicates some improvement as a result of some modification. I suggest first of all that you share with us the modified code (just to understand the idea of the modification).
- For discussion it is important to understand:
- which virtio features the device supports and which does not. The list of features of interest is here
- how many queues the device supports/uses in typical performance scenarios
- what are typical use cases you want to focus on? Large coalesced RX packets, mid-size RX packets, other?
- The issue Yan mentioned above does not focus on any specific modification. It is more about "Linux driver does use this feature. We (under Windows) do not use it at the moment, Is there something good we can have if we do and in which scenarios, if any?"
So, I suggest to start from answering questions 1 and 2 and then we can make progress with this discussion.
from kvm-guest-drivers-windows.
@ybendito
thanks
-
Sure, I will submit the code as a patch in a few days, just for discussion purposes.
- which virtio features the device supports and which does not. The list of features of interest is here
host features 0x000001035867ffe3, guest features 0x00000003186799a3
- how many queues the device supports/uses in typical performance scenarios
16
- what are typical use cases you want to focus on? Large coalesced RX packets, mid-size RX packets, other?
We are more concerned with how this change would enhance the overall PCIe bandwidth on the host side.
from kvm-guest-drivers-windows.
@ybendito
Based on your suggestion, I've uploaded the code. This section of the code still requires optimization and now is solely for discussion purposes. please see #1089
from kvm-guest-drivers-windows.
- as an idea, this seems suitable, this should decrement amount of DMA transactions for physical device and shouln't have a negative impact on paravirtualized one
- some time ago I worked on more flexible schema of memory layout. no PR yet the preview here
- Applying your suggestion on upstream at the moment seems to me kind of problematic: the change is very sensitive, the existing driver supports not only V1 devices but also legacy devices that must have the header in separate descriptor (see virtio spec 1.3, 5.1.6.6) and so the driver must be tested well in several non-default device configurations. I'm not sure we have enough resources for such coverage at the moment
- Not related to this, but to features - I seems strange that the feature ctrl_guest_offload(2) is not in. It is not complicated for implementation but without it some of flows might not work correctly.
from kvm-guest-drivers-windows.
Related Issues (20)
- Viosock : recv stuck in client, while the socket is being SHUTDOWN from host HOT 9
- virtio-fs: Visual Studio 2022 cannot compile files in the file system of virtiofs mounted. HOT 3
- netkvm: receive/transmit performance vastly different HOT 29
- Mini ISO HOT 4
- Redundant memory allocated by NetKvm rx path
- Unable to modeset to 3440x1440 in Windows 11 HOT 12
- vsock: Incorrect number of bytes of data received from vsock on Windows HOT 1
- Windows Server 2025 drivers HOT 15
- VirtioFS slow file transfer speeds HOT 2
- Virtio drivers - Version 0.1.248 HOT 2
- Windows Virtio Video driver mirror function
- BOSD screen doesn't show up with VirtIO VGA HOT 2
- netkvm with lots of parallel network activity hanging Win10 VM HOT 22
- access host's `rclone mount`'ed directory HOT 1
- wiki update for virtiofs HOT 1
- Download link for pre built drivers doesn't work? HOT 4
- Latest Win11 netkvm.cat files mention netkvmpoll.inf instead of netkvm.inf HOT 1
- virtiofs ignoring CLI arguments when created as a service HOT 6
- Virtio-Net driver is not respecting VIRTIO_NET_F_MRG_RXBUF HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kvm-guest-drivers-windows.