Messages in this thread | | | Date | Sun, 25 Oct 1998 17:23:39 -0800 | From | "David S. Miller" <> | Subject | Re: [patch] my latest oom stuff - another thing. |
| |
Date: Mon, 26 Oct 1998 02:07:18 +0100 From: Andi Kleen <ak@muc.de>
On Mon, Oct 26, 1998 at 01:46:12AM +0100, David S. Miller wrote: > Yes, think many times before just wholesale removing this retry loop, > because there is no sure way to safely sleep on some other event (to > my knowledge) in this situation, and this is a "must not fail" packet > send. It has to go out one way or another.
True, but for tcp_send_active_reset this is not the case - if we don't send the RST now it will be triggered once the other end retransmits (if he doesn't that's fine too). I propose to remove the loop there and just try to allocate once.
I agree completely. A RST is sent unreliably and could get lost in the network and would not be retransmitted.
How about extending the standard socket timer (ipv4/timer.c) for this ? It would just need a new timer type "TIME_RETRY" and a protocol entry point to call in this case. Then when the initial FIN allocation fails just start a timer for 1s (like e.g. the retransmit handler does when he gets an locked socket).
Which wait queue should the socket owning process sleep on, any suggestions?
Later, David S. Miller davem@dm.cobaltmicro.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |