small correction:

On Sun, Jan 20, 2013 at 6:50 PM, Luigi Rizzo <ri...@iet.unipi.it> wrote:

> While running qemu 1.3.0 with the following network-related flags:
>
>         -net nic -net tap,ifname=tap0,script=''
>
> I encountered the same problem (should be common to several
> frontends, e.g. e100, eepro100, virtio-net, xen_nic):
>
> in net/tap.c :: tap_send(), if qemu_send_packet_async() returns 0
> (e.g. because the NIC has no buffers available)
> traffic stops, despite the fact that the frontend will try to pull
> queued packets when the receive ring is updated.
>
> Upon investigation, it turns out that the backend code does
>
>     size = qemu_send_packet_async(&s->nc, buf, size, tap_send_completed);
>     if (size == 0) {
>         tap_read_poll(s, 0);
>
> and the arguments are
>
>         s->nc.name = "tap.0"
>         s->nc.peer->name = "hub0port1"
>         s->nc.send_queue = 0x7f40b2f61e20
>         s->nc.peer->send_queue = 0x7f40b2f63690 <--- enqueued here
>
> whereis the frontend is trying to pull from a different queue
>
>     qemu_flush_queued_packets(&s->nic->nc);
>
> with arguments
>
>         s->nic->nc.name = "e1000.0"
>         s->nic->nc.peer->name = "hub0port0" <--- try to flush this
>         s->nic->nc.send_queue = 0x7f40b3008ae0
>

the queue that is actually flushed is  s->nic->nc.send_queue or
0x7f40b3008ae0

        s->nic->nc.peer->send_queue = 0x7f40b2f63660
>
>
> Note, regular traffic flows correctly across the hub,
> but qemu_flush_queued_packets() seems to try and pull
> from the wrong place.
>
> Any idea how to fix this (other than the inefficient solution
> of leaving read_poll=1 in the frontend)
>
>         cheers
>         luigi
>

cheers
luigi

-- 
-----------------------------------------+-------------------------------
 Prof. Luigi RIZZO, ri...@iet.unipi.it  . Dip. di Ing. dell'Informazione
 http://www.iet.unipi.it/~luigi/        . Universita` di Pisa
 TEL      +39-050-2211611               . via Diotisalvi 2
 Mobile   +39-338-6809875               . 56122 PISA (Italy)
-----------------------------------------+-------------------------------

Reply via email to