From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: Claudiu Manoil <claudiu.manoil@nxp.com>
Cc: Wei Fang <wei.fang@nxp.com>, Clark Wang <xiaoning.wang@nxp.com>,
"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>,
"davem@davemloft.net" <davem@davemloft.net>,
"edumazet@google.com" <edumazet@google.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"christophe.leroy@csgroup.eu" <christophe.leroy@csgroup.eu>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"imx@lists.linux.dev" <imx@lists.linux.dev>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v4 net-next 04/14] net: enetc: add MAC filter for i.MX95 ENETC PF
Date: Tue, 18 Mar 2025 10:47:37 +0200 [thread overview]
Message-ID: <20250318084737.e27y6x4mrky47ih4@skbuf> (raw)
In-Reply-To: <AS8PR04MB8849FBA73A50F0D553F1AF1B96DE2@AS8PR04MB8849.eurprd04.prod.outlook.com>
Hi Claudiu,
On Tue, Mar 18, 2025 at 10:08:24AM +0200, Claudiu Manoil wrote:
>
> > -----Original Message-----
> > From: Vladimir Oltean <vladimir.oltean@nxp.com>
> > Sent: Monday, March 17, 2025 4:18 PM
> [...]
> > Subject: Re: [PATCH v4 net-next 04/14] net: enetc: add MAC filter for i.MX95
> > ENETC PF
> >
> > On Tue, Mar 11, 2025 at 01:38:20PM +0800, Wei Fang wrote:
> [...]
> > > +static void enetc4_pf_destroy_mac_list(struct enetc_pf *pf)
> > > +{
> > > + struct enetc_mac_list_entry *entry;
> > > + struct hlist_node *tmp;
> > > +
> > > + mutex_lock(&pf->mac_list_lock);
> >
> > The mutex_lock() usage here should raise serious questions. This is
> > running right before mutex_destroy(). So if there were any concurrent
> > attempt to acquire this lock, that concurrent code would have been broken
> > any time it would have lost arbitration, by the fact that it would
> > attempt to acquire a destroyed mutex.
> >
> > But there's no such concurrent thread, because we run after destroy_workqueue()
> > which flushes those concurrent calls and prevents new ones. So the mutex
> > usage here is not necessary.
> >
> > [ same thing with mutex_init() immediately followed by mutex_lock().
> > It is an incorrect pattern most of the time. ]
> >
>
> This is not as bad as it seems. In the final version of the code, mutex 'mac_list_lock'
> serializes the access btw the thread programming the filter for the PF instance,
> and the threads programming the filter on behalf of underlying VFs (triggered by async
> request from VF). But since VF support is not included in this patch set (as Wei
> already mentioned) the lock can/should be added later, with the VF patches.
We all agree that the lock is unnecessary as far as the logic presented
in this patch set is concerned, and thus should not be added.
When Wei will present new code that will make explicit serialization
necessary, we can comment more. But, I don't see how any extra logic
can change the basic fact I was pointing out in the portion that you've
quoted. Before you destroy the mutex, you need to do something that
ensures concurrent threads can no longer execute. Then, there's no point
in locking in enetc4_pf_destroy_mac_list(). I expect not to see such
locking there in future patch sets.
next prev parent reply other threads:[~2025-03-18 8:50 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-11 5:38 [PATCH v4 net-next 00/14] Add more feautues for ENETC v4 - round 2 Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 01/14] net: enetc: add initial netc-lib driver to support NTMP Wei Fang
2025-03-11 12:17 ` Michal Kubiak
2025-03-13 16:35 ` Vladimir Oltean
2025-03-14 3:38 ` Wei Fang
2025-03-14 12:37 ` Vladimir Oltean
2025-03-14 13:48 ` Wei Fang
2025-03-17 9:28 ` Vladimir Oltean
2025-03-17 9:55 ` Wei Fang
2025-03-17 10:00 ` Vladimir Oltean
2025-03-17 11:39 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 02/14] net: enetc: add command BD ring support for i.MX95 ENETC Wei Fang
2025-03-11 12:22 ` Michal Kubiak
2025-03-13 16:49 ` Vladimir Oltean
2025-03-14 4:51 ` Wei Fang
2025-03-14 11:18 ` Vladimir Oltean
2025-03-14 13:56 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 03/14] net: enetc: move generic MAC filterng interfaces to enetc-core Wei Fang
2025-03-17 9:42 ` Vladimir Oltean
2025-03-17 10:00 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 04/14] net: enetc: add MAC filter for i.MX95 ENETC PF Wei Fang
2025-03-17 14:18 ` Vladimir Oltean
2025-03-18 3:19 ` Wei Fang
2025-03-18 9:29 ` Vladimir Oltean
2025-03-18 9:48 ` Wei Fang
2025-03-18 8:08 ` Claudiu Manoil
2025-03-18 8:47 ` Vladimir Oltean [this message]
2025-03-11 5:38 ` [PATCH v4 net-next 05/14] net: enetc: add debugfs interface to dump MAC filter Wei Fang
2025-03-17 14:48 ` Vladimir Oltean
2025-03-18 3:28 ` Wei Fang
2025-03-18 14:54 ` Vladimir Oltean
2025-03-11 5:38 ` [PATCH v4 net-next 06/14] net: enetc: add set/get_rss_table() to enetc_si_ops Wei Fang
2025-03-17 16:42 ` Vladimir Oltean
2025-03-18 5:06 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 07/14] net: enetc: make enetc_set_rss_key() reusable Wei Fang
2025-03-17 16:26 ` Vladimir Oltean
2025-03-18 4:54 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 08/14] net: enetc: add RSS support for i.MX95 ENETC PF Wei Fang
2025-03-17 15:55 ` Vladimir Oltean
2025-03-18 4:47 ` Wei Fang
2025-03-18 11:43 ` Vladimir Oltean
2025-03-18 14:00 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 09/14] net: enetc: enable RSS feature by default Wei Fang
2025-03-17 16:33 ` Vladimir Oltean
2025-03-18 5:00 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 10/14] net: enetc: move generic VLAN filter interfaces to enetc-core Wei Fang
2025-03-17 17:05 ` Vladimir Oltean
2025-03-18 5:12 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 11/14] net: enetc: move generic VLAN hash filter functions to enetc_pf_common.c Wei Fang
2025-03-18 10:21 ` Vladimir Oltean
2025-03-18 13:57 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 12/14] net: enetc: add VLAN filtering support for i.MX95 ENETC PF Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 13/14] net: enetc: add loopback " Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 14/14] MAINTAINERS: add new file ntmp.h to ENETC driver Wei Fang
2025-03-17 17:06 ` Vladimir Oltean
2025-03-18 5:13 ` Wei Fang
2025-03-13 13:50 ` [PATCH v4 net-next 00/14] Add more feautues for ENETC v4 - round 2 Vladimir Oltean
2025-03-14 1:28 ` Wei Fang
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=20250318084737.e27y6x4mrky47ih4@skbuf \
--to=vladimir.oltean@nxp.com \
--cc=andrew+netdev@lunn.ch \
--cc=christophe.leroy@csgroup.eu \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=imx@lists.linux.dev \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=wei.fang@nxp.com \
--cc=xiaoning.wang@nxp.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox