From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Florian Westphal <fw@strlen.de>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: [PATCH 2/2] netfilter: conntrack: remove timer from ecache extension
Date: Tue, 10 Jun 2014 16:57:17 +0200 [thread overview]
Message-ID: <20140610145717.GA12398@localhost> (raw)
In-Reply-To: <20140605145640.GC23367@breakpoint.cc>
Hi Florian,
I already told you, your patchset works in my testbed here.
My only doubt still here is the need for the extra bit. I don't find
the scenario that will trigger the problem yet. Some comments:
On Thu, Jun 05, 2014 at 04:56:40PM +0200, Florian Westphal wrote:
> Yes, its recycling.
> IPS_DYING_BIT unset would either mean:
>
> a) 'This conntrack is dead and redelivery failed. Resend event, then
> destroy this conntrack'.
OK. In this case the conntrack in located in the dying list.
> OR it can mean
>
> b) 'This conntrack is being allocated/setup as new connection, the
> flag field was already cleared'.
In this case, the conntrack is placed in the unconfirmed list or the
hashes.
> In the 2nd case, the conntrack_put would be fatal since the work queue
> doesn't own the conntrack (plus the tuple is not dying after all...).
The workqueue operates with conntracks that are placed in the dying
list. If another CPU holds a reference, the use counter is 2, one for
the dying list and another for the reference. The conntrack_put will
either a) release the entry whose event was already delivered or b)
decrement the use counter.
> I've found no way to tell these two conditions apart except via new bit.
I believe the rule: "all dead conntracks have the dying bit set"
always fulfills.
I must be overlooking something... let me know, thanks!
next prev parent reply other threads:[~2014-06-10 14:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-22 9:43 [PATCH -next] remove timer from ecache extension Florian Westphal
2014-05-22 9:43 ` [PATCH 1/2] netfilter: ctnetlink: only export whitelisted flags to userspace Florian Westphal
2014-05-22 9:43 ` [PATCH 2/2] netfilter: conntrack: remove timer from ecache extension Florian Westphal
2014-06-05 14:25 ` Pablo Neira Ayuso
2014-06-05 14:33 ` Pablo Neira Ayuso
2014-06-05 21:05 ` Florian Westphal
2014-06-05 14:56 ` Florian Westphal
2014-06-10 14:57 ` Pablo Neira Ayuso [this message]
2014-06-10 15:36 ` Florian Westphal
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=20140610145717.GA12398@localhost \
--to=pablo@netfilter.org \
--cc=fw@strlen.de \
--cc=netfilter-devel@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 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.