[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <52610CD202000078000FC00B@nat28.tlf.novell.com>
Date: Fri, 18 Oct 2013 09:26:25 +0100
From: "Jan Beulich" <JBeulich@...e.com>
To: "annie li" <annie.li@...cle.com>
Cc: <david.vrabel@...rix.com>, <ian.campbell@...rix.com>,
<wei.liu2@...rix.com>, <xen-devel@...ts.xenproject.org>,
"jianhai luan" <jianhai.luan@...cle.com>, <netdev@...r.kernel.org>
Subject: Re: [Xen-devel] [PATCH net] xen-netback: add the scenario
which now beyond the range time_after_eq().
>>> On 18.10.13 at 10:14, annie li <annie.li@...cle.com> wrote:
> On 2013-10-18 15:43, Jan Beulich wrote:
>>>>> On 17.10.13 at 18:38, annie li <annie.li@...cle.com> wrote:
>>> On 2013-10-17 17:26, Jan Beulich wrote:
>>>>> 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.
>>>> Not sure what this is supposed to tell me. I recognize that there
>>>> are overflow conditions not handled properly, but (a) I have a
>>>> hard time thinking of a sensible guest that sits idle for over 240
>>>> days (host uptime usually isn't even coming close to that due to
>>>> maintenance requirements) and (b) if there is such a sensible
>>>> guest, then I can't see why dealing with one being idle for over
>>>> 480 days should be required too.
>>>>
>>> If the guest contains multiple NICs, that situation probably happens
>>> when one NIC keeps idle and others work under load. BTW, how do you get
>>> the 240?
>> 2^31 / 100 / 60 / 60 / 24
>>
>> Obviously with HZ=1000 the span would be smaller by a factor
>> of 10, which would make it even more clear that doubling the
>> span doesn't really help.
>
> My understanding is this patch does not simply double the span, it is
> just stricter than the original one. Please check my previous comments,
> I paste it here.
No, the code (on a 32-bit arch) just _can't_ handle jiffies differences
beyond 2^32, no matter how cleverly you use the respective macros.
All arithmetic there is done modulo 2^32.
> ----------expires-------now-------credit---------- is the only case
> where we need to add a timer.
>
> Other cases like following would match the if condition above, then no
> timer is added.
> ----------expires----------credit------now------
> -----now-----expires----------credit----------
The problem with these graphs is that you fail to take the finite
number range (and hence the modulo arithmetic) into account.
Jan
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists