that removes temporary error pointer from
idr. (in case of error between idr allocation and insertion of newly
created action to specified index)
Refactor all action init functions to insert new action to idr using this
API.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1
before
returning successfully, in order to protect from concurrent deletion.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1 to V2:
- Resplit action lookup/release code to prevent memory leaks in
individual patches.
- Change convoluted commit message.
net/sched/act
in action idr. This implementation prevents concurrent
threads from deleting same action twice.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1 to V2:
- Merge action ops delete definition and implementation.
include/net/act_api.h | 1 +
net/sched/act_bpf.c
user must always hold reference to it.
Implement helper put list function to atomically release list of actions
after action API init code is done using them.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1 to V2:
- Resplit action lookup/release code to prevent memory
of actions, so it can be safely refactored into plain pointer array.
Refactor action API to use array of pointers to tc_actions instead of
linked list. Change argument 'actions' type of exported action init,
destroy and dump functions.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
inclu
Change type of action reference counter to refcount_t.
Change type of action bind counter to atomic_t.
This type is used to allow decrementing bind counter without testing
for 0 result.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
Signed-off-by: Jiri Pirko <j...@mellanox.com>
to userspace using existing
tca_get_fill function arguments.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1 to V2:
- Make __tcf_idr_check function static
- Merge changes that take reference to action when performing lookup and
changes that account for this additional referenc
ntrusive linked list.
- Expand cover letter.
Vlad Buslov (11):
net: sched: use rcu for action cookie update
net: sched: change type of reference and bind counters
net: sched: implement unlocked action init API
net: sched: always take reference to action
net: sched: implement action API that del
Implement new action API function that atomically finds and deletes action
from idr by index. Intended to be used by lockless actions that do not rely
on rtnl lock.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1 to V2:
- Rename tcf_idr_find_delete to tcf_idr_delete
Implement functions to atomically update and free action cookie
using rcu mechanism.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
include/net/act_api.h | 2 +-
include/net/pkt_cls.h | 1 +
net/sched/act_
Add additional 'rtnl_held' argument to act API init functions. It is
required to implement actions that need to release rtnl lock before loading
kernel module and reacquire if afterwards.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V1 to V2:
- Rename "unlocked&quo
tcf_block_find function that is used by all three new handlers.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/cls_api.c | 438 +++-
1 file changed, 293 insertions(+), 145 deletions(-)
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
Implement functions to atomically update and free action cookie
using rcu mechanism.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
include/net/act_api.h | 2 +-
include/net/pkt_cls.h | 1 +
net/sched/act_
Change type of action reference counter to refcount_t.
Change type of action bind counter to atomic_t.
This type is used to allow decrementing bind counter without testing
for 0 result.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
Signed-off-by: Jiri Pirko <j...@mellanox.com>
Add additional 'rtnl_held' argument to act API init functions. It is
required to implement actions that need to release rtnl lock before loading
kernel module and reacquire if afterwards.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act_api.h | 6 --
net
in action idr. This implementation prevents concurrent
threads from deleting same action twice.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act_api.h | 1 +
net/sched/act_bpf.c| 8
net/sched/act_connmark.c | 8
net/sched/act_csum.c
to action and
frees it, if necessary. Refactor action deletion code to use new put
function and not to rely on rtnl lock. Remove rtnl lock assertions that are
no longer needed.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.
before
returning successfully, in order to protect from concurrent deletion.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c| 2 --
net/sched/act_bpf.c| 8
net/sched/act_connmark.c | 5 +++--
net/sched/act_csum.c | 8
net
of actions, so it can be safely refactored into plain pointer array.
Refactor action API to use array of pointers to tc_actions instead of
linked list. Change argument 'actions' type of exported action init,
destroy and dump functions.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
inclu
Implement new action API function that atomically finds and deletes action
from idr by index. Intended to be used by lockless actions that do not rely
on rtnl lock.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act_api.h | 1 +
net/sched/act_api.c
that removes temporary error pointer from
idr. (in case of error between idr allocation and insertion of newly
created action to specified index)
Refactor all action init functions to insert new action to idr using this
API.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act
user must always hold reference to it.
Implement helper put list function to atomically release list of actions
after action API init code is done using them.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 35 +--
1 file chang
to userspace using existing
tca_get_fill function arguments.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 46 --
1 file changed, 20 insertions(+), 26 deletions(-)
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
ntrusive linked list.
- Expand cover letter.
Vlad Buslov (11):
net: sched: use rcu for action cookie update
net: sched: change type of reference and bind counters
net: sched: implement unlocked action init API
net: sched: always take reference to action
net: sched: implement action API that del
On Thu 24 May 2018 at 23:34, Cong Wang <xiyou.wangc...@gmail.com> wrote:
> On Mon, May 14, 2018 at 7:27 AM, Vlad Buslov <vla...@mellanox.com> wrote:
>> Currently, all netlink protocol handlers for updating rules, actions and
>> qdiscs are protected with single global
On Wed 23 May 2018 at 23:14, Cong Wang <xiyou.wangc...@gmail.com> wrote:
> On Wed, May 23, 2018 at 1:52 AM, Vlad Buslov <vla...@mellanox.com> wrote:
>> Initial net_device implementation used ingress_lock spinlock to synchronize
>> ingress path of device. This lock was
eplace all action idr spinlock usage with regular calls that do not
disable bh.
Acked-by: Jiri Pirko <j...@mellanox.com>
Acked-by: Jamal Hadi Salim <j...@mojatatu.com>
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
Changes from V2 to V3:
- Expanded commit message.
Changes
On Wed 23 May 2018 at 01:10, Cong Wang <xiyou.wangc...@gmail.com> wrote:
> On Mon, May 21, 2018 at 1:03 PM, Vlad Buslov <vla...@mellanox.com> wrote:
>> Initial net_device implementation used ingress_lock spinlock to synchronize
>> ingress path of device. This lock was
ls that do not
disable bh.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 20 ++--
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index 72251241665a..3f4cf930f809 100644
--- a/net/sched/act
On Sat 19 May 2018 at 21:52, Marcelo Ricardo Leitner
<marcelo.leit...@gmail.com> wrote:
> On Mon, May 14, 2018 at 05:27:10PM +0300, Vlad Buslov wrote:
>> Return from action init function with reference to action taken,
>> even when overwriting existing action.
>
>
On Sun 20 May 2018 at 06:22, Jiri Pirko <j...@resnulli.us> wrote:
> Sat, May 19, 2018 at 11:43:27PM CEST, marcelo.leit...@gmail.com wrote:
>>On Mon, May 14, 2018 at 05:27:07PM +0300, Vlad Buslov wrote:
>>...
>>> @@ -1052,6 +1088,36 @@ static int tca_action
On Sat 19 May 2018 at 21:04, Marcelo Ricardo Leitner
<marcelo.leit...@gmail.com> wrote:
> On Mon, May 14, 2018 at 05:27:03PM +0300, Vlad Buslov wrote:
>> Change type of action reference counter to refcount_t.
>>
>> Change type of action bind counter to atomic_t.
&g
On Sat 19 May 2018 at 02:59, Cong Wang <xiyou.wangc...@gmail.com> wrote:
> On Fri, May 18, 2018 at 8:45 AM, Vlad Buslov <vla...@mellanox.com> wrote:
>> Underlying implementation of action map has changed and doesn't require
>> disabling bh anymore. Replace al
On Fri 18 May 2018 at 12:33, Jamal Hadi Salim <j...@mojatatu.com> wrote:
> On 17/05/18 09:35 AM, Vlad Buslov wrote:
>>
>> On Wed 16 May 2018 at 21:51, Jiri Pirko <j...@resnulli.us> wrote:
>>> Wed, May 16, 2018 at 11:23:41PM CEST, vla...@mellanox.com wrote:
&g
Underlying implementation of action map has changed and doesn't require
disabling bh anymore. Replace all action idr spinlock usage with regular
calls that do not disable bh.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 20 ++--
1 file chang
On Wed 16 May 2018 at 21:51, Jiri Pirko <j...@resnulli.us> wrote:
> Wed, May 16, 2018 at 11:23:41PM CEST, vla...@mellanox.com wrote:
>>
>>On Wed 16 May 2018 at 17:36, Roman Mashak <m...@mojatatu.com> wrote:
>>> Vlad Buslov <vla...@mellanox.com> writes:
&
On Wed 16 May 2018 at 18:10, Davide Caratti <dcara...@redhat.com> wrote:
> On Wed, 2018-05-16 at 13:36 -0400, Roman Mashak wrote:
>> Vlad Buslov <vla...@mellanox.com> writes:
>>
>> > On Wed 16 May 2018 at 14:38, Roman Mashak <m...@mojatatu.com> wrote:
&g
On Wed 16 May 2018 at 17:36, Roman Mashak <m...@mojatatu.com> wrote:
> Vlad Buslov <vla...@mellanox.com> writes:
>
>> On Wed 16 May 2018 at 14:38, Roman Mashak <m...@mojatatu.com> wrote:
>>> On Wed, May 16, 2018 at 2:43 AM, Vlad Buslov <vla...@mellanox.
On Wed 16 May 2018 at 15:02, Jamal Hadi Salim wrote:
> On 16/05/18 10:38 AM, Roman Mashak wrote:
>
You may actually have broken something with your patches in this case.
>>>
>>> Results is for net-next without my patches.
>>
>> Do you have skbmod compiled in kernel
On Wed 16 May 2018 at 14:38, Roman Mashak <m...@mojatatu.com> wrote:
> On Wed, May 16, 2018 at 2:43 AM, Vlad Buslov <vla...@mellanox.com> wrote:
>>>>>> I'm trying to run tdc, but keep getting following error even on clean
>>>>>> branch without m
@resnulli.us> wrote:
>>>>>>> Mon, May 14, 2018 at 04:27:13PM CEST, vla...@mellanox.com wrote:
>>>>>>>>Retry check-insert sequence in action init functions if action with same
>>>>>>>>index was inserted concurrently.
&g
ox.com wrote:
>>>>
>>>>On Wed 16 May 2018 at 09:59, Jiri Pirko <j...@resnulli.us> wrote:
>>>>> Mon, May 14, 2018 at 04:27:13PM CEST, vla...@mellanox.com wrote:
>>>>>>Retry check-insert sequence in action init functions if action with same
ox.com wrote:
>>>>Retry check-insert sequence in action init functions if action with same
>>>>index was inserted concurrently.
>>>>
>>>>Signed-off-by: Vlad Buslov <vla...@mellanox.com>
>>>>---
>>>> net/sched/act_bpf.c
On Wed 16 May 2018 at 09:59, Jiri Pirko <j...@resnulli.us> wrote:
> Mon, May 14, 2018 at 04:27:13PM CEST, vla...@mellanox.com wrote:
>>Retry check-insert sequence in action init functions if action with same
>>index was inserted concurrently.
>>
>>Signed-off-by:
ter from
>>concurrent modification.
>>
>>Signed-off-by: Vlad Buslov <vla...@mellanox.com>
>
> [...]
>
>
>> /**
>> * gen_new_estimator - create a new rate estimator
>> * @bstats: basic statistics
>> * @cpu_bstats: bstats per cpu
>> * @rate_e
deletes action
>>only if it is still in action idr. This implementation prevents concurrent
>>threads from deleting same action twice.
>>
>>Signed-off-by: Vlad Buslov <vla...@mellanox.com>
>>---
>> net/sched/act_bpf.c| 8
>> net/sc
On Wed 16 May 2018 at 09:50, Jiri Pirko <j...@resnulli.us> wrote:
> Mon, May 14, 2018 at 04:27:14PM CEST, vla...@mellanox.com wrote:
>>Substitute calls to action insert function with calls to action insert
>>unique function that warns if insertion overwrites index in idr.
>
.com wrote:
>>>>Implement new action API function to atomically delete action with
>>>>specified index and to atomically insert unique action. These functions are
>>>>required to implement init and delete functions for specific actions that
>>>&g
ctions are
>>required to implement init and delete functions for specific actions that
>>do not rely on rtnl lock.
>>
>>Signed-off-by: Vlad Buslov <vla...@mellanox.com>
>>---
>> include/net/act_api.h | 2 ++
>> net/sched/act_api.c | 45 ++
ehavior to always take reference to action before returning
>>successfully.
>
> Where's the balance? Who does the release instead? I'm probably missing
> something.
I've resplit these patches for V2 to always do take/release in same
patch.
>
>>
>>Signed-off-by: V
On Tue 15 May 2018 at 22:07, Lucas Bates wrote:
> On Tue, May 15, 2018 at 6:03 PM, Lucas Bates wrote:
>> On Tue, May 15, 2018 at 5:49 PM, Jamal Hadi Salim wrote:
Test 7d50: Add skbmod action to set destination mac
exit: 255
On Tue 15 May 2018 at 21:49, Jamal Hadi Salim <j...@mojatatu.com> wrote:
> On 15/05/18 05:21 PM, Vlad Buslov wrote:
>>
>> On Tue 15 May 2018 at 18:25, Jamal Hadi Salim <j...@mojatatu.com> wrote:
>>> On 14/05/18 04:46 PM, Vlad Buslov wrote:
>>>>
&g
On Tue 15 May 2018 at 18:25, Jamal Hadi Salim <j...@mojatatu.com> wrote:
> On 14/05/18 04:46 PM, Vlad Buslov wrote:
>>
>> On Mon 14 May 2018 at 18:03, Jamal Hadi Salim <j...@mojatatu.com> wrote:
>>> On 14/05/18 10:27 AM, Vlad Buslov wrote:
>
>
&g
gt;>modifications so user must always hold reference to it.
>>>>>>
>>>>>>Implement helper put list function to atomically release list of actions
>>>>>>after action API init code is done using them.
>>>>>>
>>>
>>>>idr check function that atomically looks up action in idr and increments
>>>>its reference and bind counters.
>>>>
>>>>Implement both action search and check using new safe function.
>>>>
>>>>Signed-off-by: Vlad B
ne. At this point action becomes accessible for concurrent
>>>>modifications so user must always hold reference to it.
>>>>
>>>>Implement helper put list function to atomically release list of actions
>>>>after acti
ist of actions
>>after action API init code is done using them.
>>
>>Signed-off-by: Vlad Buslov <vla...@mellanox.com>
>>---
>> net/sched/act_api.c | 38 +-
>> 1 file changed, 17 insertions(+), 21 deletions(-)
>>
>
>
On Tue 15 May 2018 at 09:03, Jiri Pirko wrote:
> Mon, May 14, 2018 at 09:07:06PM CEST, vla...@mellanox.com wrote:
>>
>>On Mon 14 May 2018 at 16:47, Jiri Pirko wrote:
>>> Mon, May 14, 2018 at 04:27:07PM CEST, vla...@mellanox.com wrote:
>>>
>>> [...]
>>>
>>>
On Mon 14 May 2018 at 18:03, Jamal Hadi Salim <j...@mojatatu.com> wrote:
> On 14/05/18 10:27 AM, Vlad Buslov wrote:
>> Currently, all netlink protocol handlers for updating rules, actions and
>> qdiscs are protected with single global rtnl lock which removes any
>>
On Mon 14 May 2018 at 16:47, Jiri Pirko wrote:
> Mon, May 14, 2018 at 04:27:07PM CEST, vla...@mellanox.com wrote:
>
> [...]
>
>
>>+static int tcf_action_del_1(struct net *net, char *kind, u32 index,
>>+ struct netlink_ext_ack *extack)
>>+{
>>+ const
urrently)
>>
>>Remove unsafe action idr lookup function. Instead of it, implement safe tcf
>>idr check function that atomically looks up action in idr and increments
>>its reference and bind counters.
>>
>>Implement both action search and check using new safe funct
with 'delete' function and 'unlocked' flag.
- Change action API to work with actions in lockless manner based on
primitives implemented in previous patches.
- Extend action API with new functions necessary to implement unlocked
actions.
Vlad Buslov (14):
net: sched: use rcu for action cookie update
its reference and bind counters.
Implement both action search and check using new safe function.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 38 --
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/net/sched/act
Change type of action reference counter to refcount_t.
Change type of action bind counter to atomic_t.
This type is used to allow decrementing bind counter without testing
for 0 result.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act_api.h | 5 +++--
net
Implement functions to atomically update and free action cookie
using rcu mechanism.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act_api.h | 2 +-
include/net/pkt_cls.h | 1 +
net/sched/act_api.c | 44 ++--
3 files chang
Add additional 'unlocked' argument to act API init functions.
Argument is true when rtnl lock is not taken and false otherwise.
It is required to implement actions that need to release rtnl lock before
loading kernel module and reacquire if afterwards.
Signed-off-by: Vlad Buslov <
Extend action ops with 'delete' function. Each action type to implement its
own delete function that doesn't depend on rtnl lock.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/act_api.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/net/act_api.h b/inclu
it to userspace.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index 3f02cd1..2772276e 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@
user must always hold reference to it.
Implement helper put list function to atomically release list of actions
after action API init code is done using them.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 38 +-
1 file chang
Substitute calls to action insert function with calls to action insert
unique function that warns if insertion overwrites index in idr.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_bpf.c| 2 +-
net/sched/act_connmark.c | 2 +-
net/sched/act_csum.c
Extend rate estimator new and replace APIs with additional spinlock
parameter used by lockless actions to protect rate_est pointer from
concurrent modification.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
include/net/gen_stats.h| 2 ++
net/core/gen_estimator.c
Implement new action API function to atomically delete action with
specified index and to atomically insert unique action. These functions are
required to implement init and delete functions for specific actions that
do not rely on rtnl lock.
Signed-off-by: Vlad Buslov <vla...@mellanox.
to always take reference to action before returning
successfully.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_bpf.c| 8
net/sched/act_connmark.c | 5 +++--
net/sched/act_csum.c | 8
net/sched/act_gact.c | 5 +++--
net/sched/act
Implement delete function that is required to delete actions without
holding rtnl lock. Use action API function that atomically deletes action
only if it is still in action idr. This implementation prevents concurrent
threads from deleting same action twice.
Signed-off-by: Vlad Buslov <
Retry check-insert sequence in action init functions if action with same
index was inserted concurrently.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_bpf.c| 8 +++-
net/sched/act_connmark.c | 8 +++-
net/sched/act_csum.c | 8 +++-
net
on rtnl lock. Remove rtnl lock assertions that are no longer
needed.
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
net/sched/act_api.c | 98 -
net/sched/cls_api.c | 1 -
2 files changed, 82 insertions(+), 17 deletions(-)
diff --git
201 - 276 of 276 matches
Mail list logo