** 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 <k...@microsoft.com> 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 <k...@microsoft.com> 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 <k...@microsoft.com> 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 <k...@microsoft.com> 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 <vkuzn...@redhat.com> 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 <vkuzn...@redhat.com> 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 <vkuzn...@redhat.com> 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 <vkuzn...@redhat.com> 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 <vkuzn...@redhat.com> 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 <vkuzn...@redhat.com> 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 <vkuzn...@redhat.com> 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 <mikel...@microsoft.com> 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 <de...@microsoft.com> 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 : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp