netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* No pmtu probing on retransmits?
@ 2008-02-03 12:37 Andi Kleen
  2008-02-03 14:04 ` John Heffner
  0 siblings, 1 reply; 2+ messages in thread
From: Andi Kleen @ 2008-02-03 12:37 UTC (permalink / raw)
  To: jheffner, netdev


Hallo,

While looking for something else in tcp_output.c I noticed that
MTU probing seems to be only done in tcp_write_xmit (when
packets come directly from process context), but not via the timer
driven timer retransmit path (tcp_retransmit_skb). Is that intentional?
It looks quite weird. I would normally assume PMTU blackholes get usually
detected on retransmit timeouts. Or do I miss something? 

You seem to have assumed interrupt context at least
because tcp_mtu_probe() uses GFP_ATOMIC which is only needed for
interrupts. Currently it is only called in process context I think.

-Andi


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

* Re: No pmtu probing on retransmits?
  2008-02-03 12:37 No pmtu probing on retransmits? Andi Kleen
@ 2008-02-03 14:04 ` John Heffner
  0 siblings, 0 replies; 2+ messages in thread
From: John Heffner @ 2008-02-03 14:04 UTC (permalink / raw)
  To: Andi Kleen; +Cc: netdev

Andi Kleen wrote:
> Hallo,
>
> While looking for something else in tcp_output.c I noticed that
> MTU probing seems to be only done in tcp_write_xmit (when
> packets come directly from process context), but not via the timer
> driven timer retransmit path (tcp_retransmit_skb). Is that intentional?
> It looks quite weird. I would normally assume PMTU blackholes get usually
> detected on retransmit timeouts. Or do I miss something?

MTU probing occurs only when everything is going fine.  We are probing
a larger size than currently in use.  In the case of a timeout, we
want to retransmit with the safe smaller size.


> You seem to have assumed interrupt context at least
> because tcp_mtu_probe() uses GFP_ATOMIC which is only needed for
> interrupts. Currently it is only called in process context I think.

I'm pretty sure it'll get called on ACK processing in softirq, f.e.:
tcp_mtu_probe()
tcp_write_xmit()
__tcp_push_pending_frames()
tcp_data_snd_check()
tcp_rcv_established()

Am I missing something?

  -John

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

end of thread, other threads:[~2008-02-03 14:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-03 12:37 No pmtu probing on retransmits? Andi Kleen
2008-02-03 14:04 ` John Heffner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).