Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virtio add feature support for "any layout", "indirect descriptors" and "multi queue" #234

Closed
wants to merge 7 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Jul 31, 2014

This patchseries adds the following changes to virtio device implementation:

prints negotiated feature flags during the negotiation phase
implements VirtioVirtq, a common class for virt queue operations
adds support for "any layout" feature
adds support for indirect descriptors
adds support for muti queue

Performance:

the refactoring to VirtioVirtq slows down the code to 2Mpps with loadgen DPDK benchmark
adding the indirect descriptors betters the netperf performance on an unpatched QEMU ( 2Gbps vs 4Gbps)

Nikolay Nikolaev and others added 7 commits October 10, 2014 15:27
Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
Add a VirtioVirtq class, that will handle the generic virt queue opertions:

 - get_buffer (from available ring)
 - put buffer (to used ring)
 - signal used (that a buffer was put to used ring)

This lowers down the packets per second performance to 2Mpps.

Adds support for VIRTIO_F_ANY_LAYOUT.

Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
On an unpatched QEMU, netperf with TCP_STREAM:

 - no indirect descriptors   - 2644.37 Mbps
 - with indirect descriptors - 4275.32 Mbps

Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
The latter is ugly'ish, but with it luajit is able to preform
allocation sinking optimizations and at least this part is totally
gc-free. ~4Mpps
@ghost ghost closed this Oct 11, 2014
dpino pushed a commit to dpino/snabb that referenced this pull request Feb 9, 2016
Add new load testing application
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants