[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap
From: |
Wangkai (Kevin,C) |
Subject: |
Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap |
Date: |
Wed, 16 Jul 2014 10:10:33 +0000 |
> -----Original Message-----
> From: Stefan Hajnoczi [mailto:address@hidden
> Sent: Tuesday, July 15, 2014 11:00 PM
> To: Wangkai (Kevin,C)
> Cc: Stefan Hajnoczi; Lee yang; address@hidden;
> address@hidden
> Subject: Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking
> on tap
>
> On Mon, Jul 14, 2014 at 10:44:58AM +0000, Wangkai (Kevin,C) wrote:
> > Here the detail network:
> >
> > +--------------------------------------------+
> > | The host add tap1 and eth10 to bridge 'br1'| +-
> -------+
> > | +------------+ | |
> send |
> > | | VM eth1-+-tap1 --- bridge --- eth10 --+---------------------+
> > | | packets|
> > | +------------+ | |
> |
> > +--------------------------------------------+
> > +--------------------------------------------+ +--------+
> >
> > Qemu start vm by virtio, use tap interface, option is:
> > -net nic,vlan=101, model=virtio -net
> > tap,vlan=101,ifname=tap1,script=no,downscript=no
>
> Use the newer -netdev/-device syntax to get offload support and
> slightly better performance:
>
> -netdev tap,id=tap0,ifname=tap1,script=no,downscript=no \ -device
> virtio-net-pci,netdev=tap0
>
> > And add tap1 and eth10 to bridge br1 in the host:
> > Brctl addif br1 tap1
> > Brctl addif br1 eth10
> >
> > total recv 505387 time 2000925 us:
> > means call tap_send once dealing 505387 packets, the packet payload
> > was 300 bytes, and time use for tap_send() was 2,000,925
> > micro-seconds, time was measured by record time stamp at function
> tap_send() start and end.
> >
> > We just test the performance of VM.
>
> That is 150 MB of incoming packets in a single tap_send(). Network rx
> queues are maybe a few 1000 packets so I wonder what is going on here.
>
> Maybe more packets are arriving while QEMU is reading them and we keep
> looping. That's strange though because the virtio-net rx virtqueue
> should fill up (it only has 256 entries).
>
> Can you investigate more and find out exactly what is going on? It's
> not clear yet that adding a budget is the solution or just hiding a
> deeper problem.
>
> Stefan
[Wangkai (Kevin,C)]
Hi Stefan,
Yes, I have one machine keep sending packets 300M/second, about 1M packets
per second, I am checking the code, you mean virtqueue has only 256 entries,
is this member keep the value?
vq->vring.num
I will check and add some debug info to check this problem.
I have got the most time taking by the virtio_net_receive()
virtio_net_receive
qemu_deliver_packet
qemu_net_queue_send
net_hub_port_receive
qemu_deliver_packet
qemu_net_queue_send
tap_send
qemu_iohandler_poll
main_loop_wait
main_loop
main
regards
Wangkai
- [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Wangkai (Kevin,C), 2014/07/10
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Stefan Hajnoczi, 2014/07/11
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Wangkai (Kevin,C), 2014/07/13
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Stefan Hajnoczi, 2014/07/14
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Wangkai (Kevin,C), 2014/07/14
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Stefan Hajnoczi, 2014/07/15
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap,
Wangkai (Kevin,C) <=
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Wangkai (Kevin,C), 2014/07/16
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Jason Wang, 2014/07/17
- Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Wangkai (Kevin,C), 2014/07/17
Re: [Qemu-devel] [PATCH] Tap: fix vcpu long time io blocking on tap, Stefan Hajnoczi, 2014/07/17