From: John Fastabend <john.fastabend@gmail•com>
To: Daniel Borkmann <daniel@iogearbox•net>,
"Levin, Alexander (Sasha Levin)" <alexander.levin@verizon•com>
Cc: "davem@davemloft•net" <davem@davemloft•net>,
"ast@fb•com" <ast@fb•com>,
"netdev@vger•kernel.org" <netdev@vger•kernel.org>,
"brouer@redhat•com" <brouer@redhat•com>,
"andy@greyhouse•net" <andy@greyhouse•net>
Subject: Re: [net-next PATCH 11/12] net: add notifier hooks for devmap bpf map
Date: Mon, 31 Jul 2017 07:47:43 -0700 [thread overview]
Message-ID: <597F430F.3050000@gmail.com> (raw)
In-Reply-To: <597EF067.1090605@iogearbox.net>
On 07/31/2017 01:55 AM, Daniel Borkmann wrote:
> On 07/30/2017 03:28 PM, Levin, Alexander (Sasha Levin) wrote:
>> On Mon, Jul 17, 2017 at 09:30:02AM -0700, John Fastabend wrote:
>>> @@ -341,9 +368,11 @@ static int dev_map_update_elem(struct bpf_map *map, void *key, void *value,
>>> * Remembering the driver side flush operation will happen before the
>>> * net device is removed.
>>> */
>>> + mutex_lock(&dev_map_list_mutex);
>>> old_dev = xchg(&dtab->netdev_map[i], dev);
>>> if (old_dev)
>>> call_rcu(&old_dev->rcu, __dev_map_entry_free);
>>> + mutex_unlock(&dev_map_list_mutex);
>>>
>>> return 0;
>>> }
>>
>> This function gets called under rcu critical section, where we can't grab mutexes:
>
> Agree, same goes for the delete callback that mutex is not allowed
> in this context. If I recall, this was for the devmap netdev notifier
> in order to check whether we need to purge dev entries from the map,
> so that the device can be unregistered gracefully. Given that devmap
> ops like update/delete are only allowed from user space, we could
> look into whether this map type actually needs to hold RCU at all
> here, or other option is to try and get rid of the mutex altogether.
> John, could you take a look for a fix?
>
> Thanks a lot,
> Daniel
>
I'll work up a fix today/tomorrow. Thanks.
next prev parent reply other threads:[~2017-07-31 14:47 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-17 16:26 [net-next PATCH 00/12] Implement XDP bpf_redirect John Fastabend
2017-07-17 16:26 ` [net-next PATCH 01/12] ixgbe: NULL xdp_tx rings on resource cleanup John Fastabend
2017-07-17 16:26 ` [net-next PATCH 02/12] net: xdp: support xdp generic on virtual devices John Fastabend
2017-07-17 16:27 ` [net-next PATCH 03/12] xdp: add bpf_redirect helper function John Fastabend
2017-07-17 16:27 ` [net-next PATCH 04/12] xdp: sample program for new bpf_redirect helper John Fastabend
2017-07-17 16:27 ` [net-next PATCH 05/12] net: implement XDP_REDIRECT for xdp generic John Fastabend
2017-07-17 16:28 ` [net-next PATCH 06/12] ixgbe: add initial support for xdp redirect John Fastabend
2017-07-17 16:28 ` [net-next PATCH 07/12] xdp: add trace event " John Fastabend
2017-07-17 16:28 ` [net-next PATCH 08/12] bpf: add devmap, a map for storing net device references John Fastabend
2017-07-17 16:29 ` [net-next PATCH 09/12] bpf: add bpf_redirect_map helper routine John Fastabend
2017-07-17 17:00 ` Alexei Starovoitov
2017-07-17 17:16 ` John Fastabend
2017-07-17 16:29 ` [net-next PATCH 10/12] xdp: Add batching support to redirect map John Fastabend
2017-07-17 16:30 ` [net-next PATCH 11/12] net: add notifier hooks for devmap bpf map John Fastabend
2017-07-30 13:28 ` Levin, Alexander (Sasha Levin)
2017-07-31 8:55 ` Daniel Borkmann
2017-07-31 14:47 ` John Fastabend [this message]
2017-07-17 16:30 ` [net-next PATCH 12/12] xdp: bpf redirect with map sample program John Fastabend
2017-07-17 16:48 ` [net-next PATCH 00/12] Implement XDP bpf_redirect 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=597F430F.3050000@gmail.com \
--to=john.fastabend@gmail$(echo .)com \
--cc=alexander.levin@verizon$(echo .)com \
--cc=andy@greyhouse$(echo .)net \
--cc=ast@fb$(echo .)com \
--cc=brouer@redhat$(echo .)com \
--cc=daniel@iogearbox$(echo .)net \
--cc=davem@davemloft$(echo .)net \
--cc=netdev@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox