netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steffen Klassert <steffen.klassert@secunet.com>
To: Fan Du <fan.du@windriver.com>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH RFC 0/2] xfrm: Remove ancient sleeping code
Date: Thu, 10 Oct 2013 10:57:03 +0200	[thread overview]
Message-ID: <20131010085703.GR7660@secunet.com> (raw)
In-Reply-To: <525650F6.305@windriver.com>

On Thu, Oct 10, 2013 at 03:02:14PM +0800, Fan Du wrote:
> 
> 
> On 2013年10月10日 14:33, Steffen Klassert wrote:
> >Does anyone still rely on the ancient sleeping when the SA is in
> >acquire state? It is disabled by default since more that five years,
> >but can cause indefinite task hangs if enabled and the needed state
> >does not get resolved.
> 
> I saw that "can_sleep" is set true in ip_route_connect which upper layer
> protocol relies on it, which ensure not dropping *any* skb.

'Any' means one per task in this context. Also, we can't ensure that
this packet reaches it's destination. So where is the difference
between dropping the packet locally or on the network?

> And acquire timer will make sure the task will not hangs indefinitely.
> 

Did you try that? It makes sure that the task wakes up from time to time,
but it goes immediately back to sleep if the needed state is not resolved.
The only terminating contition is when the task gets a signal to exit.

> In xfrm policy queue, XFRM_MAX_QUEUE_LEN is 100, which means 101th skb
> will be dropped, how about make it configurable?

IMO we would have yet another useless knob then. Currently we send all
packets by default to a blackhole as long as the state is not resolved
and most people are fine with it. The queueing is mostly to speed up
tcp handshakes, so 100 packets should be enough. If it really turnes
out that we need more that 100 packets in some cases, we can add a
sysctl then.

  reply	other threads:[~2013-10-10  8:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-10  6:33 [PATCH RFC 0/2] xfrm: Remove ancient sleeping code Steffen Klassert
2013-10-10  6:33 ` [PATCH RFC 1/2] xfrm: Remove ancient sleeping when the SA is in acquire state Steffen Klassert
2013-10-10  6:34 ` [PATCH RFC 2/2] net: Remove FLOWI_FLAG_CAN_SLEEP Steffen Klassert
2013-10-10  7:02 ` [PATCH RFC 0/2] xfrm: Remove ancient sleeping code Fan Du
2013-10-10  8:57   ` Steffen Klassert [this message]
2013-10-11  7:18     ` Fan Du
2013-10-11  9:21       ` Steffen Klassert
2013-10-11 19:01 ` David Miller
2013-10-15  7:30   ` Steffen Klassert
2013-10-15 23:14     ` David Miller
2013-10-15 23:58     ` Eric Dumazet
2013-10-16  9:45       ` Steffen Klassert
2013-10-16 11:42         ` [PATCH RFC] xfrm: Don't queue retransmitted packets if the original is still on the host Steffen Klassert
2013-10-18 20:19           ` David Miller
2013-10-18 20:23             ` Eric Dumazet
2013-10-18 20:34               ` David Miller
2013-10-21 14:51                 ` Steffen Klassert

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=20131010085703.GR7660@secunet.com \
    --to=steffen.klassert@secunet.com \
    --cc=fan.du@windriver.com \
    --cc=netdev@vger.kernel.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 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).