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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.