mbox series

[net-next,0/3] sched: act: ife: UAPI checks and performance tweaks

Message ID 20171011211608.22692-1-aring@mojatatu.com
Headers show
Series sched: act: ife: UAPI checks and performance tweaks | expand

Message

Alexander Aring Oct. 11, 2017, 9:16 p.m. UTC
Hi,

this patch series contains at first a patch which adds a check for
IFE_ENCODE and IFE_DECODE when a ife act gets created or updated and adding
handling of these cases only inside the act callback only.

The second patch use per-cpu counters and move the spinlock around so that
the spinlock is less being held in act callback.

The last patch use rcu for update parameters and also move the spinlock for
the same purpose as in patch 2.

Notes:
 - There is still a spinlock around for protecting the metalist and a
   rw-lock for another list. Should be migrated to a rcu list, ife
   possible.

 - I use still dereference in dump callback, so I think what I didn't
   got was what happened when rcu_assign_pointer will do when rcu read
   lock is held. I suppose the pointer will be updated, then we don't
   have any issue here.

Alexander Aring (3):
  sched: act: ife: move encode/decode check to init
  sched: act: ife: migrate to use per-cpu counters
  sched: act: ife: update parameters via rcu handling

 include/net/tc_act/tc_ife.h |  10 +++-
 net/sched/act_ife.c         | 135 +++++++++++++++++++++++++-------------------
 2 files changed, 86 insertions(+), 59 deletions(-)

Comments

David Miller Oct. 13, 2017, 5:23 a.m. UTC | #1
From: Alexander Aring <aring@mojatatu.com>
Date: Wed, 11 Oct 2017 17:16:05 -0400

> this patch series contains at first a patch which adds a check for
> IFE_ENCODE and IFE_DECODE when a ife act gets created or updated and adding
> handling of these cases only inside the act callback only.
> 
> The second patch use per-cpu counters and move the spinlock around so that
> the spinlock is less being held in act callback.
> 
> The last patch use rcu for update parameters and also move the spinlock for
> the same purpose as in patch 2.
> 
> Notes:
>  - There is still a spinlock around for protecting the metalist and a
>    rw-lock for another list. Should be migrated to a rcu list, ife
>    possible.
> 
>  - I use still dereference in dump callback, so I think what I didn't
>    got was what happened when rcu_assign_pointer will do when rcu read
>    lock is held. I suppose the pointer will be updated, then we don't
>    have any issue here.

Series applied.