search for: virtq_disable_used_buffer_notif

Displaying 4 results from an estimated 4 matches for "virtq_disable_used_buffer_notif".

2018 Dec 17
1
kernel vhost demands an interrupt from guest when the ring is full in order to enable guest to submit new packets to the queue
...MAY disable used buffer notifications while processing the used ring, but beware the problem of missing notifications between emptying the ring and reenabling no- tifications. This is usually handled by re-checking for more used buffers after notifications are re- enabled: virtq_disable_used_buffer_notifications(vq); for (;;) { if (vq->last_seen_used != le16_to_cpu(virtq->used.idx)) { virtq_enable_used_buffer_notifications(vq); mb(); if (vq->last_seen_used != le16_to_cpu(virtq->used.idx)) break; virtq_disable_used_buffer_notifications(vq)...
2018 Dec 13
2
kernel vhost demands an interrupt from guest when the ring is full in order to enable guest to submit new packets to the queue
Folks, We came across a memory race condition between VPP vhost driver and the kernel vhost. VPP is running a tap interface over vhost backend. In this case, VPP is acting as the vhost driver mode and the kernel vhost is acting as the vhost device mode. In the kernel vhost?s TX traffic direction which is VPP?s RX traffic direction, kernel vhost is the producer and VPP is the consumer. Kernel
2018 Dec 13
2
kernel vhost demands an interrupt from guest when the ring is full in order to enable guest to submit new packets to the queue
Folks, We came across a memory race condition between VPP vhost driver and the kernel vhost. VPP is running a tap interface over vhost backend. In this case, VPP is acting as the vhost driver mode and the kernel vhost is acting as the vhost device mode. In the kernel vhost?s TX traffic direction which is VPP?s RX traffic direction, kernel vhost is the producer and VPP is the consumer. Kernel
2018 Dec 17
0
kernel vhost demands an interrupt from guest when the ring is full in order to enable guest to submit new packets to the queue
...rformance, a driver MAY disable used buffer notifications while processing the used ring, but beware the problem of missing notifications between emptying the ring and reenabling no- tifications. This is usually handled by re-checking for more used buffers after notifications are re- enabled: virtq_disable_used_buffer_notifications(vq); for (;;) { if (vq->last_seen_used != le16_to_cpu(virtq->used.idx)) { virtq_enable_used_buffer_notifications(vq); mb(); if (vq->last_seen_used != le16_to_cpu(virtq->used.idx)) break; virtq_disable_used_buffer_notifications(vq); } struct virtq_used_el...