** Also affects: linux-azure (Ubuntu Bionic)
Importance: Undecided
Status: New
** Changed in: linux-azure (Ubuntu)
Status: New => Confirmed
** Changed in: linux-azure (Ubuntu)
Assignee: (unassigned) => Marcelo Cerri (mhcerri)
** Changed in: linux-azure (Ubuntu Bionic)
Status: New => In Progress
** Changed in: linux-azure (Ubuntu Bionic)
Assignee: (unassigned) => Marcelo Cerri (mhcerri)
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-azure in Ubuntu.
https://bugs.launchpad.net/bugs/1805304
Title:
[Hyper-V] Additional patches for Lv2 storage performance
Status in linux-azure package in Ubuntu:
Confirmed
Status in linux-azure source package in Bionic:
In Progress
Bug description:
After analysis of the first 4.15 kernel for Lv2 performance, and while
we are delayed getting to 4.18, we have identified and backported the
following patches for the 4.15 linux-azure kernel:
commit 1268ed0c474a5c8f165ef386f3310521b5e00e27
Author: K. Y. Srinivasan <[email protected]>
Date: Tue Jul 3 16:01:55 2018 -0700
x86/hyper-v: Fix the circular dependency in IPI enlightenment
linux-next:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=1268ed0c474a5c8f165ef386f3310521b5e00e27
commit 366f03b0cf90ef55f063d4a54cf62b0ac9b6da9d
Author: K. Y. Srinivasan <[email protected]>
Date: Wed May 16 14:53:32 2018 -0700
X86/Hyper-V: Enhanced IPI enlightenment
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=366f03b0cf90ef55f063d4a54cf62b0ac9b6da9d
commit 68bb7bfb7985df2bd15c2dc975cb68b7a901488a
Author: K. Y. Srinivasan <[email protected]>
Date: Wed May 16 14:53:31 2018 -0700
X86/Hyper-V: Enable IPI enlightenments
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=68bb7bfb7985df2bd15c2dc975cb68b7a901488a
commit 6b48cb5f8347bc0153ff1d7b075db92e6723ffdb
Author: K. Y. Srinivasan <[email protected]>
Date: Wed May 16 14:53:30 2018 -0700
X86/Hyper-V: Enlighten APIC access
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=6b48cb5f8347bc0153ff1d7b075db92e6723ffdb
commit 68d1eb72ee99e26576913aa6824f7a703ca06b90
Author: Vitaly Kuznetsov <[email protected]>
Date: Tue Mar 20 15:02:09 2018 +0100
x86/hyper-v: define struct hv_enlightened_vmcs and clean field bits
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=68d1eb72ee99e26576913aa6824f7a703ca06b90
commit a46d15cc1ae5af905afac2af4cc0c188c2eb59b0
Author: Vitaly Kuznetsov <[email protected]>
Date: Tue Mar 20 15:02:08 2018 +0100
x86/hyper-v: allocate and use Virtual Processor Assist Pages
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=a46d15cc1ae5af905afac2af4cc0c188c2eb59b0
commit 415bd1cd3a42897f61a92cda0a9f9d7b04c28fb7
Author: Vitaly Kuznetsov <[email protected]>
Date: Tue Mar 20 15:02:06 2018 +0100
x86/hyper-v: move definitions from TLFS to hyperv-tlfs.h
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=415bd1cd3a42897f61a92cda0a9f9d7b04c28fb7
commit 5a485803221777013944cbd1a7cd5c62efba3ffa
Author: Vitaly Kuznetsov <[email protected]>
Date: Tue Mar 20 15:02:05 2018 +0100
x86/hyper-v: move hyperv.h out of uapi
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=5a485803221777013944cbd1a7cd5c62efba3ffa
commit e7c4e36c447daca2b7df49024f6bf230871cb155
Author: Vitaly Kuznetsov <[email protected]>
Date: Wed Jan 24 14:23:34 2018 +0100
x86/hyperv: Redirect reenlightment notifications on CPU offlining
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=e7c4e36c447daca2b7df49024f6bf230871cb155
commit 93286261de1b46339aa27cd4c639b21778f6cade
Author: Vitaly Kuznetsov <[email protected]>
Date: Wed Jan 24 14:23:33 2018 +0100
x86/hyperv: Reenlightenment notifications support
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=93286261de1b46339aa27cd4c639b21778f6cade
commit e2768eaa1ca4fbb7b778da5615cce3dd310352e6
Author: Vitaly Kuznetsov <[email protected]>
Date: Wed Jan 24 14:23:32 2018 +0100
x86/hyperv: Add a function to read both TSC and TSC page value
simulateneously
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20181126&id=e2768eaa1ca4fbb7b778da5615cce3dd310352e6
commit 4a5f3cde4d51c7afce859aed9d74d197751896d5
Author: Michael Kelley <[email protected]>
Date: Fri Dec 22 11:19:02 2017 -0700
Drivers: hv: vmbus: Remove x86-isms from arch independent drivers
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/hv?h=next-20181126&id=4a5f3cde4d51c7afce859aed9d74d197751896d5
From: Dexuan Cui <[email protected]>
We can concurrently try to open the same sub-channel from 2 paths:
path #1: vmbus_onoffer() -> vmbus_process_offer() -> handle_sc_creation().
path #2: storvsc_probe() -> storvsc_connect_to_vsp() ->
-> storvsc_channel_init() -> handle_multichannel_storage() ->
-> vmbus_are_subchannels_present() -> handle_sc_creation().
They conflict with each other, but it was not an issue before the recent
commit ae6935ed7d42 ("vmbus: split ring buffer allocation from open"),
because at the beginning of vmbus_open() we checked newchannel->state so
only one path could succeed, and the other would return with -EINVAL.
After ae6935ed7d42, the failing path frees the channel's ringbuffer by
vmbus_free_ring(), and this causes a panic later.
Commit ae6935ed7d42 itself is good, and it just reveals the longstanding
race. We can resolve the issue by removing path #2, i.e. removing the
second vmbus_are_subchannels_present() in handle_multichannel_storage().
BTW, the comment "Check to see if sub-channels have already been created"
in handle_multichannel_storage() is incorrect: when we unload the driver,
we first close the sub-channel(s) and then close the primary channel, next
the host sends rescind-offer message(s) so primary->sc_list will become
empty. This means the first vmbus_are_subchannels_present() in
handle_multichannel_storage() is never useful.
Fixes: ae6935ed7d42 ("vmbus: split ring buffer allocation from open")
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-azure/+bug/1805304/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp