All of lore.kernel.org
 help / color / mirror / Atom feed
* mirror?
@ 2007-12-24 13:43 Tomasz Grobelny
  2007-12-24 19:23 ` mirror? Ian McDonald
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Tomasz Grobelny @ 2007-12-24 13:43 UTC (permalink / raw)
  To: dccp

As http://www.erg.abdn.ac.uk/ seems to be down at least since yesterday I'd 
like to ask whether any mirror of dccp git tree and/or dccp patches to 
mainline kernel is available. TIA,
-- 
Regards,
Tomasz Grobelny

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [DCCP] [Patch 1/1] [BUG-FIX]: Fix problem with small RTTs in CCID-3
  2008-03-14 13:33 ` Gerrit Renker
@ 2008-03-15  6:56 ` Gerrit Renker
  -1 siblings, 0 replies; 18+ messages in thread
From: Gerrit Renker @ 2008-03-15  6:56 UTC (permalink / raw)
  To: dccp

Arnaldo,

please consider the attached patch which fixes the reported problems with small
RTTs in CCID-3. Clamping the RTT is not a good idea, since CCID-3 in many places
computes its throughput in the form "xxx/RTT" - so that increasing the RTT by a
factor of 10 will decrease the maximum achievable throughput by a factor of 10.

The patch is at the bottom of the test tree. The bug has also been fixed
in the CCID-4 subtree (a note has been added to patch #19 there).

----------------------------> Patch / BUG-FIX <---------------------------------
[CCID-3]: Fix "t_ipi explosion" bug

The identification of this bug is thanks to Cheng Wei and Tomasz Grobelny.

To avoid divide-by-zero, the implementation previously ignored RTTs smaller
than 4 microseconds when performing integer division RTT/4. 

When the RTT reached a value less than 4 microseconds (as observed on loopback),
this prevented the Window Counter CCVal value from advancing. As a result, the
receiver stopped sending feedback. This in turn caused non-ending expiries of
the nofeedback timer at the sender, so that the sending rate was progressively
reduced until reaching the bottom of one packet per 64 seconds.

The patch fixes this bug by handling integer division more intelligently. Due to
consistent use of dccp_sample_rtt(), divide-by-zero-RTT is avoided.

The patch was tested to successfully eliminate the "t_ipi explosion" problem
for loopback RTTs in the order of 1 microsecond - the sending behaviour now
became stable and predictable.

Since 1 microsecond is at the same time the minimum RTT resolution, the same
stable behaviour can be expected for other (small) RTTs.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/ccids/ccid3.c |   13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -193,22 +193,17 @@ static inline void ccid3_hc_tx_update_s(
 
 /*
  *	Update Window Counter using the algorithm from [RFC 4342, 8.1].
- *	The algorithm is not applicable if RTT < 4 microseconds.
+ *	As elsewhere, RTT > 0 is assumed by using dccp_sample_rtt().
  */
 static inline void ccid3_hc_tx_update_win_count(struct ccid3_hc_tx_sock *hctx,
 						ktime_t now)
 {
-	u32 quarter_rtts;
-
-	if (unlikely(hctx->ccid3hctx_rtt < 4))	/* avoid divide-by-zero */
-		return;
-
-	quarter_rtts = ktime_us_delta(now, hctx->ccid3hctx_t_last_win_count);
-	quarter_rtts /= hctx->ccid3hctx_rtt / 4;
+	u32 delta = ktime_us_delta(now, hctx->ccid3hctx_t_last_win_count),
+	    quarter_rtts = (4 * delta) / hctx->ccid3hctx_rtt;
 
 	if (quarter_rtts > 0) {
 		hctx->ccid3hctx_t_last_win_count = now;
-		hctx->ccid3hctx_last_win_count	+= min_t(u32, quarter_rtts, 5);
+		hctx->ccid3hctx_last_win_count	+= min(quarter_rtts, 5U);
 		hctx->ccid3hctx_last_win_count	&= 0xF;		/* mod 16 */
 	}
 }

^ permalink raw reply	[flat|nested] 18+ messages in thread
* dccp bugs (Was: Re: panic on 2.6.24rc5)
@ 2008-03-08 15:29 Tomasz Grobelny
  2008-03-10 13:00 ` Gerrit Renker
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: Tomasz Grobelny @ 2008-03-08 15:29 UTC (permalink / raw)
  To: dccp

Dnia Friday 07 of March 2008, Gerrit Renker napisa³:
> | > errno=EPERM. That was my mistake, the `1' is generated by the device
> | > output routine, which generates NET_XMIT_DROP when the Qdisc decides
> | > not to send the packet (linux/netdevice.h).
> |
> | And so I guess that this NET_XMIT_DROP should be ignored by dccp code?
>
> In the test tree it is now (almost) ignored. Since the time you reported
> this problem I have changed the DCCP_BUG to a DCCP_WARN, so that the
> drop will still be logged, but there will be fewer such warnings in the
> log now (in DCCP_WARN, printk is rate-limited).
>
I'm not sure it should print the warning. Ok, it's nice to know that the 
packet was dropped but:
a) in real world there would be no such information,
b) it's not something unusual for DCCP to lose packet without warning.
Maybe it should only warn if debugging option is enabled?

> This is interesting -- so you are running DCCP under virtualisation?
Yes.

> Arnaldo used to do this with QEMU, I tried this recently also but am no
> fan of virtual networks. Yes, if the crash persisted, any information
> would help.
>
The panic happens no more.

> | >  * to avoid this, there is a kernel configuration option of CCID-3
> | >    to set an upper bound for this.
> |
> | How do I set it?
>
> In the menu under
>  Networking -> Network Options -> The DCCP Protocol (EXPERIMENTAL)
>  -> DCCP CCIDs Configuration (EXPERIMENTAL) -> CCID3
>  -> (100) Use higher bound for nofeedback timer
> Ah - just remembered -- the default is 100 milliseconds, so this will
> probably have caught the problems with the low RTT.
>
100ms? Then it doesn't work as expected because adding just 1ms delay with 
netem fixed the problem.
If you meant 100us then it still doesn't work. Changing the parameter to 1000 
delays the bug - I have to send more packets for it to happen.

> | > Please let us know if that diagnosis matches the case.
> |
> | How can I test it? The best I came up with was adding delay to the
> | interface (tc qdisc add dev lo root netem delay 1ms) and test again. And
> | it works ok now, no slowing down.
>
> So from what you wrote I read
>  * without additional delay the described problem occurs and CCID-3
>    gets into 1-packet-per-64-seconds mode
>  * when you add 1millisecond delay to the interface then it works ok.
>
That's exactly what I meant. After adding this 1ms delay I was not able to 
reproduce the bug. This does not mean it would not happen after long enough 
testing.

> You can plot the CCID-3 RTTs using dccp_probe, scripts are on
> http://www.erg.abdn.ac.uk/users/gerrit/dccp/testing_dccp/
>
> (at the bottom of the page).
See http://student.uci.agh.edu.pl/~grobelny/linux/outfile for raw dccp_probe 
data.
-- 
Regards,
Tomasz Grobelny

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Mirror!!
@ 2004-02-19 13:36 XMundo - Soporte Tecnico
  2004-02-19 13:49 ` Mirror!! Maciej Soltysiak
  2004-02-19 14:48 ` Mirror!! Harald Welte
  0 siblings, 2 replies; 18+ messages in thread
From: XMundo - Soporte Tecnico @ 2004-02-19 13:36 UTC (permalink / raw)
  To: netfilter

o the person responsible for managing the mirrors.

I have been sending messages for almost a month to the following emails:

coreteam@netfilter.org
webmaster@netfilter.org
netfilter-mirrors@lists.netfilter.org
solt@dns.toxicfilms.tv
laforge@netfilter.org

And I receive no answer to the request I'm making. 

Could you read netfilter-mirrors and make the change I'm asking you for?

Thanks for considering my message.

Regards.

Cristian Merz



^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2008-03-15 15:29 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-24 13:43 mirror? Tomasz Grobelny
2007-12-24 19:23 ` mirror? Ian McDonald
2007-12-26 23:53 ` mirror? Arnaldo Carvalho de Melo
2008-01-07 12:36 ` mirror? Gerrit Renker
  -- strict thread matches above, loose matches on Subject: below --
2008-03-15  6:56 [DCCP] [Patch 1/1] [BUG-FIX]: Fix problem with small RTTs in CCID-3 Gerrit Renker
2008-03-15  6:56 ` Gerrit Renker
2008-03-08 15:29 dccp bugs (Was: Re: panic on 2.6.24rc5) Tomasz Grobelny
2008-03-10 13:00 ` Gerrit Renker
2008-03-10 20:28 ` Tomasz Grobelny
2008-03-11  2:31 ` Ian McDonald
2008-03-11 12:45 ` Gerrit Renker
2008-03-12  8:06 ` Gerrit Renker
2008-03-14 13:33 ` Gerrit Renker
2008-03-15 15:29 ` Tomasz Grobelny
2004-02-19 13:36 Mirror!! XMundo - Soporte Tecnico
2004-02-19 13:49 ` Mirror!! Maciej Soltysiak
2004-02-19 14:48 ` Mirror!! Harald Welte
2004-02-19 12:10   ` Mirror!! Andre Correa

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.