From: jianhai luan <jianhai.luan@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: david.vrabel@citrix.com, ian.campbell@citrix.com,
wei.liu2@citrix.com, xen-devel@lists.xenproject.org,
annie.li@oracle.com, netdev@vger.kernel.org
Subject: Re: [Xen-devel] [PATCH net] xen-netback: add the scenario which now beyond the range time_after_eq().
Date: Thu, 17 Oct 2013 17:02:23 +0800 [thread overview]
Message-ID: <525FA79F.8060601@oracle.com> (raw)
In-Reply-To: <525FBB4F02000078000FBB30@nat28.tlf.novell.com>
On 2013-10-17 16:26, Jan Beulich wrote:
>>>> On 16.10.13 at 19:22, Jason Luan <jianhai.luan@oracle.com> wrote:
>> time_after_eq() only works if the delta is < MAX_ULONG/2.
>>
>> If netfront sends at a very low rate, the time between subsequent calls
>> to tx_credit_exceeded() may exceed MAX_ULONG/2 and the test for
>> timer_after_eq() will be incorrect. Credit will not be replenished and
>> the guest may become unable to send (e.g., if prior to the long gap, all
>> credit was exhausted).
>>
>> We should add the scenario which now beyond next_credit+MAX_UNLONG/2. Because
>> the fact now must be not before than expire, time_before(now, expire) == true
>> will verify the scenario.
>> time_after_eq(now, next_credit) || time_before (now, expire)
>> ==
>> !time_in_range_open(now, expire, next_credit)
> So first of all this must be with a 32-bit netback. And the not
> coverable gap between activity is well over 240 days long. _If_
> this really needs dealing with, then why is extending this from
> 240+ to 480+ days sufficient? I.e. why don't you simply
> change to 64-bit jiffy values, and use time_after_eq64()?
Yes, the issue only can be reproduced in 32-bit Dom0 (Beyond
MAX_ULONG/2 in 64-bit will need long long time)
I think the gap should be think all environment even now extending 480+.
if now fall in the gap, one timer will be pending and replenish will be
in time. Please run the attachment test program.
If use time_after_eq64(), expire ,next_credit and other member will must
be u64.
>
> Jan
>
>> Signed-off-by: Jason Luan <jianhai.luan@oracle.com>
>> ---
>> drivers/net/xen-netback/netback.c | 7 +++++--
>> 1 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/xen-netback/netback.c
>> b/drivers/net/xen-netback/netback.c
>> index f3e591c..31eedaf 100644
>> --- a/drivers/net/xen-netback/netback.c
>> +++ b/drivers/net/xen-netback/netback.c
>> @@ -1194,8 +1194,11 @@ static bool tx_credit_exceeded(struct xenvif *vif,
>> unsigned size)
>> if (timer_pending(&vif->credit_timeout))
>> return true;
>>
>> - /* Passed the point where we can replenish credit? */
>> - if (time_after_eq(now, next_credit)) {
>> + /* Credit should be replenished when now does not fall into the
>> + * range from expires to next_credit, and time_in_range_open()
>> + * is used to verify whether this case happens.
>> + */
>> + if (!time_in_range_open(now, vif->credit_timeout.expires, next_credit)) {
>> vif->credit_timeout.expires = now;
>> tx_add_credit(vif);
>> }
>> --
>> 1.7.6.5
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xen.org
>> http://lists.xen.org/xen-devel
>
>
next prev parent reply other threads:[~2013-10-17 9:02 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-16 17:22 [PATCH net] xen-netback: add the scenario which now beyond the range time_after_eq() Jason Luan
2013-10-17 8:26 ` Jan Beulich
2013-10-17 8:26 ` [Xen-devel] " Jan Beulich
2013-10-17 9:02 ` jianhai luan [this message]
2013-10-17 9:04 ` jianhai luan
2013-10-17 9:04 ` jianhai luan
2013-10-17 9:15 ` David Vrabel
2013-10-17 9:15 ` [Xen-devel] " David Vrabel
2013-10-17 10:19 ` jianhai luan
2013-10-17 10:19 ` [Xen-devel] " jianhai luan
2013-10-17 10:31 ` David Vrabel
2013-10-17 10:31 ` [Xen-devel] " David Vrabel
2013-10-17 13:59 ` jianhai luan
2013-10-17 13:59 ` [Xen-devel] " jianhai luan
2013-10-17 14:06 ` Wei Liu
2013-10-17 14:06 ` [Xen-devel] " Wei Liu
2013-10-17 15:23 ` jianhai luan
2013-10-17 15:25 ` David Vrabel
2013-10-17 15:25 ` [Xen-devel] " David Vrabel
2013-10-17 15:41 ` jianhai luan
2013-10-17 15:41 ` [Xen-devel] " jianhai luan
2013-10-18 6:48 ` annie li
2013-10-18 6:48 ` [Xen-devel] " annie li
2013-10-17 15:23 ` jianhai luan
2013-10-17 9:26 ` Jan Beulich
2013-10-17 9:26 ` [Xen-devel] " Jan Beulich
2013-10-17 9:59 ` jianhai luan
2013-10-17 9:59 ` [Xen-devel] " jianhai luan
2013-10-17 16:38 ` annie li
2013-10-17 16:38 ` [Xen-devel] " annie li
2013-10-17 16:41 ` Wei Liu
2013-10-18 1:59 ` annie li
2013-10-18 1:59 ` annie li
2013-10-17 16:41 ` Wei Liu
2013-10-18 7:43 ` Jan Beulich
2013-10-18 7:43 ` [Xen-devel] " Jan Beulich
2013-10-18 8:14 ` annie li
2013-10-18 8:14 ` [Xen-devel] " annie li
2013-10-18 8:26 ` Jan Beulich
2013-10-18 8:26 ` [Xen-devel] " Jan Beulich
2013-10-18 8:40 ` David Laight
2013-10-18 8:40 ` [Xen-devel] " David Laight
2013-10-18 11:24 ` Wei Liu
2013-10-23 8:02 ` jianhai luan
2013-10-23 8:02 ` [Xen-devel] " jianhai luan
2013-10-23 16:07 ` Jan Beulich
2013-10-23 16:07 ` [Xen-devel] " Jan Beulich
2013-10-24 10:04 ` David Laight
2013-10-24 10:04 ` [Xen-devel] " David Laight
2013-10-24 11:34 ` jianhai luan
2013-10-24 11:34 ` [Xen-devel] " jianhai luan
2013-10-18 11:24 ` Wei Liu
2013-10-18 8:55 ` [Xen-devel] " annie li
2013-10-18 8:55 ` annie li
2013-10-17 9:02 ` jianhai luan
2013-10-17 16:21 ` annie li
2013-10-17 16:21 ` [Xen-devel] " annie li
2013-10-18 7:41 ` Jan Beulich
2013-10-18 7:41 ` Jan Beulich
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=525FA79F.8060601@oracle.com \
--to=jianhai.luan@oracle.com \
--cc=JBeulich@suse.com \
--cc=annie.li@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=ian.campbell@citrix.com \
--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.