From: Sasha Levin <sashal@kernel.org>
To: kys@microsoft.com
Cc: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com,
jasowang@redhat.com, sthemmin@microsoft.com,
Michael.H.Kelley@microsoft.com, vkuznets@redhat.com,
Dexuan Cui <decui@microsoft.com>,
stable@vger.kernel.org, Haiyang Zhang <haiyangz@microsoft.com>
Subject: Re: [PATCH 2/2] Drivers: hv: vmbus: offload the handling of channels to two workqueues
Date: Mon, 26 Nov 2018 00:23:31 -0500 [thread overview]
Message-ID: <20181126052331.GA34679@sasha-vm> (raw)
In-Reply-To: <20181126022958.11320-2-kys@linuxonhyperv.com>
On Mon, Nov 26, 2018 at 02:29:57AM +0000, kys@linuxonhyperv.com wrote:
>From: Dexuan Cui <decui@microsoft.com>
>
>vmbus_process_offer() mustn't call channel->sc_creation_callback()
>directly for sub-channels, because sc_creation_callback() ->
>vmbus_open() may never get the host's response to the
>OPEN_CHANNEL message (the host may rescind a channel at any time,
>e.g. in the case of hot removing a NIC), and vmbus_onoffer_rescind()
>may not wake up the vmbus_open() as it's blocked due to a non-zero
>vmbus_connection.offer_in_progress, and finally we have a deadlock.
>
>The above is also true for primary channels, if the related device
>drivers use sync probing mode by default.
>
>And, usually the handling of primary channels and sub-channels can
>depend on each other, so we should offload them to different
>workqueues to avoid possible deadlock, e.g. in sync-probing mode,
>NIC1's netvsc_subchan_work() can race with NIC2's netvsc_probe() ->
>rtnl_lock(), and causes deadlock: the former gets the rtnl_lock
>and waits for all the sub-channels to appear, but the latter
>can't get the rtnl_lock and this blocks the handling of sub-channels.
>
>The patch can fix the multiple-NIC deadlock described above for
>v3.x kernels (e.g. RHEL 7.x) which don't support async-probing
>of devices, and v4.4, v4.9, v4.14 and v4.18 which support async-probing
>but don't enable async-probing for Hyper-V drivers (yet).
>
>The patch can also fix the hang issue in sub-channel's handling described
>above for all versions of kernels, including v4.19 and v4.20-rc3.
>
>So the patch should be applied to all the existing kernels.
>
>Fixes: 8195b1396ec8 ("hv_netvsc: fix deadlock on hotplug")
>Cc: stable@vger.kernel.org
>Cc: Stephen Hemminger <sthemmin@microsoft.com>
>Cc: K. Y. Srinivasan <kys@microsoft.com>
>Cc: Haiyang Zhang <haiyangz@microsoft.com>
>Signed-off-by: Dexuan Cui <decui@microsoft.com>
>Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
This patch doesn't apply on next/linus/char-misc; there seems to be a
missing patch that touches vmbus_process_offer() which isn't a part of
this series.
--
Thanks,
Sasha
next prev parent reply other threads:[~2018-11-26 5:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-26 2:28 [PATCH 0/2] Drivers: hv: vmbus: Miscellaneous fixes kys
2018-11-26 2:29 ` [PATCH 1/2] Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl() kys
2018-11-26 2:29 ` [PATCH 2/2] Drivers: hv: vmbus: offload the handling of channels to two workqueues kys
2018-11-26 5:23 ` Sasha Levin [this message]
2018-11-26 19:35 ` Greg KH
2018-11-26 21:12 ` Dexuan Cui
2018-11-27 5:22 ` KY Srinivasan
[not found] ` <20181126095254.824D420672@mail.kernel.org>
2018-11-26 21:02 ` [PATCH 1/2] Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl() Dexuan Cui
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=20181126052331.GA34679@sasha-vm \
--to=sashal@kernel.org \
--cc=Michael.H.Kelley@microsoft.com \
--cc=apw@canonical.com \
--cc=decui@microsoft.com \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=jasowang@redhat.com \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=olaf@aepfle.de \
--cc=stable@vger.kernel.org \
--cc=sthemmin@microsoft.com \
--cc=vkuznets@redhat.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.