From: Jarek Poplawski <jarkao2@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Changli Gao <xiaosuo@gmail.com>,
David Miller <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>,
Stephen Hemminger <shemminger@vyatta.com>,
Patrick McHardy <kaber@trash.net>
Subject: Re: [PATCH] pkt_sched: gen_kill_estimator() rcu fixes
Date: Wed, 9 Jun 2010 10:41:00 +0000 [thread overview]
Message-ID: <20100609104100.GB7308@ff.dom.local> (raw)
In-Reply-To: <1276077416.2442.97.camel@edumazet-laptop>
On Wed, Jun 09, 2010 at 11:56:56AM +0200, Eric Dumazet wrote:
...
> Updated patch follows :
>
> [PATCH] pkt_sched: gen_kill_estimator() rcu fixes
>
> gen_kill_estimator() API is a bit misleading, since caller
I'd call it incomplete or simply buggy. Plus a tiny note below.
> should make sure an RCU grace period is respected before
> freeing stats_lock.
>
> This was partially addressed in commit 5d944c640b4
> (gen_estimator: deadlock fix), but same problem exist for all
> gen_kill_estimator() users, if lock they use is not already rcu
> protected.
>
> A code review shows xt_RATEEST.c, act_api.c, act_police.c have this
> problem. Other are ok because they use qdisc lock.
>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> ---
...
> diff --git a/net/netfilter/xt_RATEEST.c b/net/netfilter/xt_RATEEST.c
> index 69c01e1..096b18b 100644
> --- a/net/netfilter/xt_RATEEST.c
> +++ b/net/netfilter/xt_RATEEST.c
> @@ -60,13 +60,18 @@ struct xt_rateest *xt_rateest_lookup(const char *name)
> }
> EXPORT_SYMBOL_GPL(xt_rateest_lookup);
>
> +static void xt_rateeset_free_rcu(struct rcu_head *head)
> +{
> + kfree(container_of(head, struct xt_rateest, rcu));
> +}
> +
> void xt_rateest_put(struct xt_rateest *est)
> {
> mutex_lock(&xt_rateest_mutex);
> if (--est->refcnt == 0) {
> hlist_del(&est->list);
> gen_kill_estimator(&est->bstats, &est->rstats);
> - kfree(est);
> + call_rcu(&est->rcu, xt_rateeset_free_rcu);
Spelling suggestion: xt_rateest_free_rcu?
Since it's only 3 places I'd consider adding little comments,
who needs this call_rcu (like in qdisc_destroy).
Anyway this patch looks OK to me.
Jarek P.
next prev parent reply other threads:[~2010-06-09 10:41 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-07 14:32 [PATCH net-next-2.6] pkt_sched: gen_estimator: kill est_lock rwlock Eric Dumazet
2010-06-07 14:53 ` Changli Gao
2010-06-07 15:30 ` Eric Dumazet
2010-06-07 15:55 ` Eric Dumazet
2010-06-07 16:56 ` [PATCH net-next-2.6 v2] " Eric Dumazet
2010-06-07 17:18 ` [PATCH net-2.6] pkt_sched: gen_estimator: add a new lock Eric Dumazet
2010-06-08 1:00 ` Changli Gao
2010-06-08 4:30 ` Eric Dumazet
2010-06-08 4:57 ` Changli Gao
2010-06-08 4:58 ` Eric Dumazet
2010-06-08 5:20 ` Changli Gao
2010-06-08 5:39 ` Eric Dumazet
2010-06-09 9:39 ` [PATCH net-2.6 v2] " Eric Dumazet
2010-06-09 11:33 ` Jarek Poplawski
2010-06-09 11:55 ` Eric Dumazet
2010-06-11 5:54 ` David Miller
2010-06-08 12:15 ` [PATCH net-next-2.6 v2] pkt_sched: gen_estimator: kill est_lock rwlock Jarek Poplawski
2010-06-08 12:27 ` Eric Dumazet
2010-06-08 12:40 ` Jarek Poplawski
2010-06-08 19:29 ` Jarek Poplawski
2010-06-08 19:45 ` Eric Dumazet
2010-06-08 20:24 ` Jarek Poplawski
2010-06-08 20:52 ` Eric Dumazet
2010-06-08 21:18 ` Jarek Poplawski
2010-06-09 6:13 ` pkt_sched: gen_estimator: more fuel for Jarek and Changli Eric Dumazet
2010-06-09 6:51 ` Jarek Poplawski
2010-06-09 7:36 ` Eric Dumazet
2010-06-09 8:14 ` Jarek Poplawski
2010-06-09 9:40 ` [PATCH] pkt_sched: gen_kill_estimator() rcu fixes Eric Dumazet
2010-06-09 9:56 ` Eric Dumazet
2010-06-09 10:41 ` Jarek Poplawski [this message]
2010-06-09 12:09 ` Eric Dumazet
2010-06-09 12:50 ` Jarek Poplawski
2010-06-09 13:05 ` Eric Dumazet
2010-06-12 1:39 ` David Miller
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=20100609104100.GB7308@ff.dom.local \
--to=jarkao2@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
--cc=shemminger@vyatta.com \
--cc=xiaosuo@gmail.com \
/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.