From: Zoltan Kiss <zoltan.kiss@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: <ian.campbell@citrix.com>, <xen-devel@lists.xenproject.org>,
<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<jonathan.davies@citrix.com>
Subject: Re: [PATCH net-next] xen-netback: Rework rx_work_todo
Date: Wed, 15 Jan 2014 11:47:02 +0000 [thread overview]
Message-ID: <52D67536.4030106@citrix.com> (raw)
In-Reply-To: <20140115103707.GI5698@zion.uk.xensource.com>
On 15/01/14 10:37, Wei Liu wrote:
> On Tue, Jan 14, 2014 at 07:28:39PM +0000, Zoltan Kiss wrote:
>> The recent patch to fix receive side flow control (11b57f) solved the spinning
>> thread problem, however caused an another one. The receive side can stall, if:
>> - xenvif_rx_action sets rx_queue_stopped to false
>> - interrupt happens, and sets rx_event to true
>> - then xenvif_kthread sets rx_event to false
>>
>
> If you mean "rx_work_todo" returns false.
>
> In this case
>
> (!skb_queue_empty(&vif->rx_queue) && !vif->rx_queue_stopped) || vif->rx_event;
>
> can still be true, can't it?
Sorry, I should wrote rx_queue_stopped to true
>
>> Also, through rx_event a malicious guest can force the RX thread to spin. This
>> patch ditch that two variable, and rework rx_work_todo. If the thread finds it
>
> This seems to be a bigger problem. Can you elaborate?
My mistake too. I forgot that rx_action set it to false, so it's not
really a spinning. However the thread should still run xenvif_rx_action
to figure out there is no space in the ring before it sets rx_event to
false. In my patch we can quit earlier.
Zoli
next prev parent reply other threads:[~2014-01-15 11:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-14 19:28 [PATCH net-next] xen-netback: Rework rx_work_todo Zoltan Kiss
2014-01-15 10:37 ` Wei Liu
2014-01-15 10:37 ` Wei Liu
2014-01-15 11:47 ` Zoltan Kiss
2014-01-15 11:47 ` Zoltan Kiss [this message]
2014-01-15 14:45 ` Wei Liu
2014-01-15 14:45 ` Wei Liu
2014-01-15 14:52 ` Zoltan Kiss
2014-01-15 14:52 ` Zoltan Kiss
2014-01-15 14:59 ` Wei Liu
2014-01-15 15:08 ` Zoltan Kiss
2014-01-15 15:08 ` Zoltan Kiss
2014-01-15 16:10 ` Wei Liu
2014-01-15 16:10 ` Wei Liu
2014-01-15 14:59 ` Wei Liu
-- strict thread matches above, loose matches on Subject: below --
2014-01-14 19:28 Zoltan Kiss
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=52D67536.4030106@citrix.com \
--to=zoltan.kiss@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=jonathan.davies@citrix.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.