mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jacob Keller <jacob.e.keller@intel.com>
To: "Tantilov, Emil S" <emil.s.tantilov@intel.com>,
	Jakub Kicinski <kuba@kernel.org>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	Paolo Abeni <pabeni@redhat.com>,
	"Pavan Kumar Linga" <pavan.kumar.linga@intel.com>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	Willem de Bruijn <willemb@google.com>,
	Sridhar Samudrala <sridhar.samudrala@intel.com>,
	Phani Burra <phani.r.burra@intel.com>,
	Piotr Kwapulinski <piotr.kwapulinski@intel.com>,
	Simon Horman <horms@kernel.org>,
	Radoslaw Tyl <radoslawx.tyl@intel.com>,
	Jedrzej Jagielski <jedrzej.jagielski@intel.com>,
	Mateusz Polchlopek <mateusz.polchlopek@intel.com>,
	Anton Nadezhdin <anton.nadezhdin@intel.com>,
	Konstantin Ilichev <konstantin.ilichev@intel.com>,
	Milena Olech <milena.olech@intel.com>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Joshua Hay <joshua.a.hay@intel.com>,
	Aleksandr Loktionov <aleksandr.loktionov@intel.com>,
	Chittim Madhu <madhu.chittim@intel.com>,
	Samuel Salin <Samuel.salin@intel.com>
Subject: Re: [PATCH net 3/8] idpf: fix possible race in idpf_vport_stop()
Date: Wed, 8 Oct 2025 14:41:40 -0700	[thread overview]
Message-ID: <ae493f48-ae07-4091-98dd-db254f2ee12f@intel.com> (raw)
In-Reply-To: <048833d9-01f5-438d-a3fa-354a008ebbd3@intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 3672 bytes --]



On 10/6/2025 5:07 PM, Tantilov, Emil S wrote:
> 
> 
> On 10/6/2025 10:26 AM, Jakub Kicinski wrote:
>> On Mon, 6 Oct 2025 07:49:32 -0700 Tantilov, Emil S wrote:
>>>> Argh, please stop using the flag based state machines. They CANNOT
>>>> replace locking. If there was proper locking in place it wouldn't
>>>> have mattered when we clear the flag.
>>>
>>> This patch is resolving a bug in the current logic of how the flag is
>>> used (not being atomic and not being cleared properly). I don't think
>>> there is an existing lock in place to address this issue, though we are
>>> looking to refactor the code over time to remove and/or limit how these
>>> flags are used.
>>
>> Can you share more details about the race? If there is no lock in place
>> there's always the risk that:
>>
>>    CPU 0                         CPU 1
>>   idpf_vport_stop()             whatever()
>>                                   if (test_bit(UP))
>>                                    # sees true
>>                                  # !< long IRQ arrives
>>   test_and_clear(UP)
>>     ...
>>     all the rest
>>     ...
>>                                  # > long IRQ ends
>>                                  proceed but UP isn't really set any more
>>
> 
> The specific case I was targeting with this patch is for when both
> idpf_vport_stop() and idpf_addr_unsync(), called via set_rx_mode attempt
> to delete the MAC filters. At least in my testing I have not seen a case
> where the set_rx_mode callback will happen before idpf_vport_stop(). I
> am assuming due to userspace reacting to the removal of the netdevs.
> 
>             rmmod-6089    [021] .....  3521.291596: idpf_remove 
> <-pci_device_remove
>             rmmod-6089    [021] .....  3521.292686: idpf_vport_stop 
> <-idpf_vport_dealloc
>   systemd-resolve-1633    [022] b..1.  3521.295320: idpf_set_rx_mode 
> <-dev_mc_del
>   systemd-resolve-1633    [022] b..1.  3521.295338: idpf_addr_unsync 
> <-__hw_addr_sync_dev
>   systemd-resolve-1633    [022] b..1.  3521.295339: idpf_del_mac_filter 
> <-idpf_addr_unsync
>   systemd-resolve-1633    [022] b..1.  3521.295450: idpf_set_rx_mode 
> <-dev_mc_del
>   systemd-resolve-1633    [022] b..1.  3521.295451: idpf_addr_unsync 
> <-__hw_addr_sync_dev
>   systemd-resolve-1633    [022] b..1.  3521.295451: idpf_del_mac_filter 
> <-idpf_addr_unsync
>             rmmod-6089    [002] .....  3521.934980: idpf_vport_stop 
> <-idpf_vport_dealloc
>   systemd-resolve-1633    [022] b..1.  3522.297299: idpf_set_rx_mode 
> <-dev_mc_del
>   systemd-resolve-1633    [022] b..1.  3522.297316: idpf_addr_unsync 
> <-__hw_addr_sync_dev
>   systemd-resolve-1633    [022] b..1.  3522.297317: idpf_del_mac_filter 
> <-idpf_addr_unsync
>    kworker/u261:2-3157    [037] ...1.  3522.297931: 
> idpf_mac_filter_async_handler: Received invalid MAC filter payload (op 
> 536) (len 0)
>             rmmod-6089    [020] .....  3522.573251: idpf_vport_stop 
> <-idpf_vport_dealloc
>             rmmod-6089    [002] .....  3523.229936: idpf_vport_stop 
> <-idpf_vport_dealloc
>   systemd-resolve-1633    [022] b..1.  3523.311435: idpf_set_rx_mode 
> <-dev_mc_del
>   systemd-resolve-1633    [022] b..1.  3523.311452: idpf_addr_unsync 
> <-__hw_addr_sync_dev
>   systemd-resolve-1633    [022] b..1.  3523.311453: idpf_del_mac_filter 
> <-idpf_addr_unsync
> 
>

Jakub, from this thread it still seems like you won't accept this patch
as-is?

I'm working on a v3 of this series resolving the other issues Simon
pointed out, and want to know if I should continue excluding Emil's
patches for now.

Thanks,
Jake



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

  reply	other threads:[~2025-10-08 21:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-02  0:14 [PATCH net 0/8] Intel Wired LAN Driver Updates 2025-10-01 (idpf, ixgbe, ixgbevf) Jacob Keller
2025-10-02  0:14 ` [PATCH net 1/8] idpf: cleanup remaining SKBs in PTP flows Jacob Keller
2025-10-02  0:14 ` [PATCH net 2/8] idpf: convert vport state to bitmap Jacob Keller
2025-10-02  0:14 ` [PATCH net 3/8] idpf: fix possible race in idpf_vport_stop() Jacob Keller
2025-10-03 17:43   ` Jakub Kicinski
2025-10-06 14:49     ` Tantilov, Emil S
2025-10-06 17:26       ` Jakub Kicinski
2025-10-07  0:07         ` Tantilov, Emil S
2025-10-08 21:41           ` Jacob Keller [this message]
2025-10-13 18:13             ` Jakub Kicinski
2025-10-22 22:49               ` Tantilov, Emil S
2025-10-02  0:14 ` [PATCH net 4/8] ixgbevf: fix getting link speed data for E610 devices Jacob Keller
2025-10-02  0:14 ` [PATCH net 5/8] ixgbe: handle IXGBE_VF_GET_PF_LINK_STATE mailbox operation Jacob Keller
2025-10-02  0:14 ` [PATCH net 6/8] ixgbevf: fix mailbox API compatibility by negotiating supported features Jacob Keller
2025-10-02  0:14 ` [PATCH net 7/8] ixgbe: handle IXGBE_VF_FEATURES_NEGOTIATE mbox cmd Jacob Keller
2025-10-02  0:14 ` [PATCH net 8/8] ixgbe: fix too early devlink_free() in ixgbe_remove() Jacob Keller
2025-10-03 17:42 ` [PATCH net 0/8] Intel Wired LAN Driver Updates 2025-10-01 (idpf, ixgbe, ixgbevf) Jakub Kicinski
2025-10-04  0:58   ` Jacob Keller
2025-10-06 15:27 ` Alexander Lobakin
2025-10-06 21:59   ` Jacob Keller
2025-10-06 23:58   ` Jacob Keller

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=ae493f48-ae07-4091-98dd-db254f2ee12f@intel.com \
    --to=jacob.e.keller@intel.com \
    --cc=Samuel.salin@intel.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=aleksandr.loktionov@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=anton.nadezhdin@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=emil.s.tantilov@intel.com \
    --cc=horms@kernel.org \
    --cc=jedrzej.jagielski@intel.com \
    --cc=joshua.a.hay@intel.com \
    --cc=konstantin.ilichev@intel.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=madhu.chittim@intel.com \
    --cc=mateusz.polchlopek@intel.com \
    --cc=milena.olech@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pavan.kumar.linga@intel.com \
    --cc=phani.r.burra@intel.com \
    --cc=piotr.kwapulinski@intel.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=radoslawx.tyl@intel.com \
    --cc=sridhar.samudrala@intel.com \
    --cc=willemb@google.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

Powered by JetHome