From: Christian Borntraeger <borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
To: dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org
Cc: kvm-devel
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: Re: [PATCH resent] virtio_net: Fix stalled inbound trafficon early packets
Date: Wed, 12 Dec 2007 19:14:38 +0100 [thread overview]
Message-ID: <200712121914.38135.borntraeger@de.ibm.com> (raw)
In-Reply-To: <476002E7.5050301-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> I think the change below handles the race. Otherwise please detail the
> use case.
[...]
> > @@ -292,6 +292,9 @@ static int virtnet_open(struct net_devic
> > return -ENOMEM;
> >
> > napi_enable(&vi->napi);
> > +
> > + vi->rvq->vq_ops->enable(vi->rvq);
> > + vi->svq->vq_ops->enable(vi->svq);
> >
> If you change it to:
> if (!vi->rvq->vq_ops->enable(vi->rvq))
> vi->rvq->vq_ops->kick(vi->rvq);
> if (!vi->rvq->vq_ops->enable(vi->svq))
> vi->rvq->vq_ops->kick(vi->svq);
>
> You solve the race of packets already waiting in the queue without
> triggering the irq.
Hmm, I dont fully understand your point. I think this will work as long as
the host has not consumed all inbound buffers. It will also require that
the host sends an additional packet, no? If no additional packet comes the
host has no reason to send an interrupt just because it got a notify
hypercall. kick inside a guest also does not trigger the poll routine.
It also wont work on the following scenario:
in virtnet open we will allocate buffers and send them to the host using the
kick callback. The host can now use _all_ buffers for incoming data while
interrupts are still disabled and the guest is not running.( Lets say the
host bridge has lots of multicast traffic and the guest gets not scheduled
for a while). When the guest now continues and enables the interrupts
nothing happens. Doing a kick does not help, as the host code will bail out
with "no dma memory for transfer".
Christian
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
next prev parent reply other threads:[~2007-12-12 18:14 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-11 11:42 [PATCH resent] virtio_net: Fix stalled inbound traffic on early packets Christian Borntraeger
[not found] ` <200712111242.28843.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-11 12:48 ` [PATCH resent] virtio_net: Fix stalled inbound trafficon " Dor Laor
[not found] ` <475E8716.2010500-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-11 12:57 ` Dor Laor
[not found] ` <475E892D.9060400-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-11 13:16 ` Christian Borntraeger
2007-12-12 1:54 ` [kvm-devel] " Rusty Russell
2007-12-12 11:39 ` Christian Borntraeger
2007-12-12 15:48 ` Dor Laor
[not found] ` <476002E7.5050301-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-12 18:14 ` Christian Borntraeger [this message]
[not found] ` <200712121914.38135.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-13 13:24 ` Dor Laor
2007-12-13 18:30 ` [kvm-devel] " Christian Borntraeger
[not found] ` <200712131930.31602.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-18 6:54 ` Rusty Russell
2007-12-11 13:19 ` [kvm-devel] " Christian Borntraeger
2007-12-11 15:27 ` Christian Borntraeger
[not found] ` <200712111627.21364.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-11 23:34 ` Dor Laor
2007-12-12 11:27 ` [kvm-devel] " Christian Borntraeger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200712121914.38135.borntraeger@de.ibm.com \
--to=borntraeger-ta70fqpds9bqt0dzr+alfa@public.gmane.org \
--cc=dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox