netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: "Saleem, Shiraz" <shiraz.saleem@intel.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>,
	"Ertman, David M" <david.m.ertman@intel.com>,
	"Wesierski, DawidX" <dawidx.wesierski@intel.com>
Cc: "kamalheib1@gmail.com" <kamalheib1@gmail.com>,
	"leon@kernel.org" <leon@kernel.org>,
	"sashal@kernel.org" <sashal@kernel.org>,
	"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Igor Raits <igor.raits@gooddata.com>
Subject: Re: RE: Network do not works with linux >= 6.1.2. Issue bisected to "425c9bd06b7a70796d880828d15c11321bdfb76d" (RDMA/irdma: Report the correct link speed)
Date: Tue, 10 Jan 2023 14:02:34 +0800	[thread overview]
Message-ID: <276971e8-7eac-6b0c-06a7-30d415fb86c0@linux.dev> (raw)
In-Reply-To: <MWHPR11MB00299035ECB2E34F60BC2C74E9FE9@MWHPR11MB0029.namprd11.prod.outlook.com>

在 2023/1/10 3:36, Saleem, Shiraz 写道:
>> Subject: Re: Network do not works with linux >= 6.1.2. Issue bisected to
>> "425c9bd06b7a70796d880828d15c11321bdfb76d" (RDMA/irdma: Report the
>> correct link speed)
>>
>> On Fri, Jan 06, 2023 at 08:55:29AM +0100, Jaroslav Pulchart wrote:
>>> [  257.967099] task:NetworkManager  state:D stack:0     pid:3387
>>> ppid:1      flags:0x00004002
>>> [  257.975446] Call Trace:
>>> [  257.977901]  <TASK>
>>> [  257.980004]  __schedule+0x1eb/0x630 [  257.983498]
>>> schedule+0x5a/0xd0 [  257.986641]  schedule_timeout+0x11d/0x160 [
>>> 257.990654]  __wait_for_common+0x90/0x1e0 [  257.994666]  ?
>>> usleep_range_state+0x90/0x90 [  257.998854]
>>> __flush_workqueue+0x13a/0x3f0 [  258.002955]  ?
>>> __kernfs_remove.part.0+0x11e/0x1e0
>>> [  258.007661]  ib_cache_cleanup_one+0x1c/0xe0 [ib_core] [
>>> 258.012721]  __ib_unregister_device+0x62/0xa0 [ib_core] [  258.017959]
>>> ib_unregister_device+0x22/0x30 [ib_core] [  258.023024]
>>> irdma_remove+0x1a/0x60 [irdma] [  258.027223]
>>> auxiliary_bus_remove+0x18/0x30 [  258.031414]
>>> device_release_driver_internal+0x1aa/0x230
>>> [  258.036643]  bus_remove_device+0xd8/0x150 [  258.040654]
>>> device_del+0x18b/0x3f0 [  258.044149]  ice_unplug_aux_dev+0x42/0x60
>>> [ice]
>>
>> We talked about this already - wasn't it on this series?
> 
> This is yet another path (when ice ports are added to a bond) I believe where the RDMA aux device
> is removed holding the RTNL lock. It's being exposed now with this recent irdma patch - 425c9bd06b7a,
> causing a deadlock.
> 
> ice_lag_event_handler [rtnl_lock]
>   ->ice_lag_changeupper_event
>       ->ice_unplug_aux_dev
>          ->irdma_remove
>              ->ib_unregister_device
>                 ->ib_cache_cleanup_one
>                    ->flush_workqueue(ib)
>                       ->irdma_query_port
>                           -> ib_get_eth_speed [rtnl_lock]

Agree with the above analysis.
Maybe a quick and direct fix is like this.

@@ -74,6 +74,7 @@ static int irdma_query_port(struct ib_device *ibdev, 
u32 port,
  {
         struct irdma_device *iwdev = to_iwdev(ibdev);
         struct net_device *netdev = iwdev->netdev;
+       bool unlock_rtnl = false;

         /* no need to zero out pros here. done by caller */

@@ -91,9 +92,16 @@ static int irdma_query_port(struct ib_device *ibdev, 
u32 port,
                 props->phys_state = IB_PORT_PHYS_STATE_DISABLED;
         }

+       if (rtnl_is_locked()) {
+               rtnl_unlock();
+               unlock_rtnl = true;
+       }
         ib_get_eth_speed(ibdev, port, &props->active_speed,
                          &props->active_width);

+       if (unlock_rtnl) {
+               rtnl_lock();
+       }
         if (rdma_protocol_roce(ibdev, 1)) {
                 props->gid_tbl_len = 32;
                 props->ip_gids = true;

Zhu Yanjun

> 
> Previous discussion was on ethtool channel config change, https://lore.kernel.org/linux-rdma/Y5ES3kmYSINlAQhz@x130/,
> which David E. is taking care of.
> 
> We are working on a patch for this issue.
> 
>>
>> Don't hold locks when removing aux devices.
>>
>>> [  258.048707]  ice_lag_changeupper_event+0x287/0x2a0 [ice] [
>>> 258.054038]  ice_lag_event_handler+0x51/0x130 [ice] [  258.058930]
>>> raw_notifier_call_chain+0x41/0x60 [  258.063381]
>>> __netdev_upper_dev_link+0x1a0/0x370
>>> [  258.068008]  netdev_master_upper_dev_link+0x3d/0x60
>>> [  258.072886]  bond_enslave+0xd16/0x16f0 [bonding] [  258.077517]  ?
>>> nla_put+0x28/0x40 [  258.080756]  do_setlink+0x26c/0xc10 [
>>> 258.084249]  ? avc_alloc_node+0x27/0x180 [  258.088173]  ?
>>> __nla_validate_parse+0x141/0x190 [  258.092708]
>>> __rtnl_newlink+0x53a/0x620 [  258.096549]  rtnl_newlink+0x44/0x70
>>
>> Especially not the rtnl.
>>
>> Jason


  reply	other threads:[~2023-01-10  6:03 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-06  7:55 Network do not works with linux >= 6.1.2. Issue bisected to "425c9bd06b7a70796d880828d15c11321bdfb76d" (RDMA/irdma: Report the correct link speed) Jaroslav Pulchart
2023-01-06 11:11 ` Linux kernel regression tracking (#adding)
2023-02-28 10:09   ` Linux regression tracking (Thorsten Leemhuis)
2023-02-28 12:33     ` Jaroslav Pulchart
2023-02-28 22:10       ` Tony Nguyen
2023-03-01 13:27         ` Jaroslav Pulchart
2023-03-01 15:05           ` Jaroslav Pulchart
2023-01-06 16:15 ` Jason Gunthorpe
2023-01-09  9:17   ` Jaroslav Pulchart
2023-01-09 19:36   ` Saleem, Shiraz
2023-01-10  6:02     ` Zhu Yanjun [this message]
2023-01-12 16:25       ` Linus Heckemann
2023-01-12 16:46         ` Saleem, Shiraz

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=276971e8-7eac-6b0c-06a7-30d415fb86c0@linux.dev \
    --to=yanjun.zhu@linux.dev \
    --cc=david.m.ertman@intel.com \
    --cc=dawidx.wesierski@intel.com \
    --cc=igor.raits@gooddata.com \
    --cc=jaroslav.pulchart@gooddata.com \
    --cc=jgg@ziepe.ca \
    --cc=kamalheib1@gmail.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=shiraz.saleem@intel.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;
as well as URLs for NNTP newsgroup(s).