All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Fastabend <john.fastabend@gmail.com>
To: Cong Wang <xiyou.wangcong@gmail.com>
Cc: netdev@vger.kernel.org, Jamal Hadi Salim <jhs@mojatatu.com>,
	John Fastabend <john.r.fastabend@intel.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [Patch net-next] net_sched: refactor out tcf_exts
Date: Sun, 05 Oct 2014 18:47:13 -0700	[thread overview]
Message-ID: <5431F4A1.3040107@gmail.com> (raw)
In-Reply-To: <1412376709-25564-1-git-send-email-xiyou.wangcong@gmail.com>

On 10/03/2014 03:51 PM, Cong Wang wrote:
> As Jamal pointed it out, tcf_exts is really unnecessary,
> we can definitely refactor it out without losing any functionality.
> This could also remove an indirect layer which makes the code
> much easier to read.
>
> This patch:
>
> 1) moves exts->action and exts->police into tp->ops, since they
> are statically assigned
>
> 2) moves exts->actions list head out
>
> 3) removes exts->type, act->type does the same thing
>
> 4) renames tcf_exts_*() functions to tcf_act_*()
>
> Cc: Jamal Hadi Salim <jhs@mojatatu.com>
> Cc: John Fastabend <john.r.fastabend@intel.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
> ---

Looks OK to me and removes a layer of abstraction without changing
the code much. This is going to conflict with my series so I'll hold
off resubmitting it until this is dealt with. I need to respin that
ematch fix up to drop the ingress lock.

Acked-by: John Fastabend <john.r.fastabend@intel.com>

[...]

>
> -void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
> -		     struct tcf_exts *src)
> +void tcf_act_change(struct tcf_proto *tp, struct list_head *dst,
> +		    struct list_head *src)
>   {
>   #ifdef CONFIG_NET_CLS_ACT
>   	LIST_HEAD(tmp);
>   	tcf_tree_lock(tp);
> -	list_splice_init(&dst->actions, &tmp);
> -	list_splice(&src->actions, &dst->actions);
> +	list_splice_init(dst, &tmp);
> +	list_splice(src, dst);
>   	tcf_tree_unlock(tp);
>   	tcf_action_destroy(&tmp, TCA_ACT_UNBIND);


This is overly complex now that tcf_act_change only
occurs on null lists. And unattached ones because of the
RCU semantics so I'm fairly sure we can drop the lock and
double splice.


[...]

-- 
John Fastabend         Intel Corporation

  reply	other threads:[~2014-10-06  1:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-03 22:51 [Patch net-next] net_sched: refactor out tcf_exts Cong Wang
2014-10-06  1:47 ` John Fastabend [this message]
2014-10-06  3:04   ` John Fastabend
2014-10-06 16:56     ` Cong Wang
2014-10-06 11:09 ` Jamal Hadi Salim
2014-10-06 11:20 ` Jamal Hadi Salim
2014-10-06 16:56   ` Cong Wang

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=5431F4A1.3040107@gmail.com \
    --to=john.fastabend@gmail.com \
    --cc=davem@davemloft.net \
    --cc=jhs@mojatatu.com \
    --cc=john.r.fastabend@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=xiyou.wangcong@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.