[Hyper-V] Rebase Hyper-V to 4.6 kernel

Bug #1583357 reported by Joshua R. Poulson on 2016-05-18
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned
Xenial
Medium
Tim Gardner

Bug Description

Please rebase Hyper-V support to the final v4.6 upstream kernel.

The following files comprise Hyper-V support in the upstream kernel:
arch/x86/kernel/cpu/mshyperv.c
arch/x86/include/asm/mshyperv.h
arch/x86/include/uapi/asm/hyperv.h
include/linux/hyperv.h
drivers/hv/channel.c
drivers/hv/channel_mgmt.c
drivers/hv/connection.c
drivers/hv/hv_balloon.c
drivers/hv/hv.c
drivers/hv/hv_fcopy.c
drivers/hv/hv_kvp.c
drivers/hv/hv_snapshot.c
drivers/hv/hv_util.c
drivers/hv/hv_utils_transport.c
drivers/hv/hv_utils_transport.h
drivers/hv/hyperv_vmbus.h
drivers/hv/ring_buffer.c
drivers/hv/vmbus_drv.c
tools/hv/hv_fcopy_daemon.c
tools/hv/hv_get_dhcp_info.sh
tools/hv/hv_get_dns_info.sh
tools/hv/hv_kvp_daemon.c
tools/hv/hv_set_ifconfig.sh
tools/hv/hv_vss_daemon.c
tools/hv/lsvmbus
drivers/input/serio/hyperv-keyboard.c
drivers/net/hyperv/hyperv_net.h
drivers/net/hyperv/netvsc.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/hyperv/rndis_filter.c
drivers/scsi/storvsc_drv.c
drivers/hid/hid-hyperv.c
drivers/pci/host/pci-hyperv.c
drivers/video/fbdev/hyperv_fb.c

While I know a number of post-4.4 commits are already committed, I am including all of the commits from 4.4 to 4.6 for reference:

mshyperv.c : commit 1e2ae9ec072f3b7887f456426bc2cf23b80f661a : x86/hyperv: Avoid reporting bogus NMI status for Gen2 instances
mshyperv.c : commit 1b74dde7c47c19a73ea3e9fac95ac27b5d3d50c5 : x86/cpu: Convert printk(KERN_<LEVEL> ...) to pr_<level>(...)
hyperv.h : commit 45870a441361d1c05a5f767c4ece2f6e30e0da9c : Drivers: hv: ring_buffer: remove stray smp_read_barrier_depends()
hyperv.h : commit e8d6ca023efce3bd80050dcd9e708ee3cf8babd4 : Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock)
hyperv.h : commit 5c23a1a5c60b0f472cfa61cd7d8279f8aaeb5b64 : Drivers: hv: vmbus: define a new VMBus message type for hvsock
hyperv.h : commit 499e8401a515d04daa986b995da710d2b9737764 : Drivers: hv: vmbus: add a per-channel rescind callback
hyperv.h : commit 3c75354d043ad546148d6992e40033ecaefc5ea5 : Drivers: hv: vmbus: add a helper function to set a channel's pending send size
hyperv.h : commit 8981da320a11217589aa3c50f9e891bcdef07ece : Drivers: hv: vmbus: add a hvsock flag in struct hv_driver
hyperv.h : commit b9830d120cbe155863399f25eaef6aa8353e767f : Drivers: hv: util: Pass the channel information during the init call
channel.c : commit 63d55b2aeb5e4faa170316fee73c3c47ea9268c7 : Drivers: hv: vmbus: serialize process_chn_event() and vmbus_close_internal()
channel.c : commit 5c23a1a5c60b0f472cfa61cd7d8279f8aaeb5b64 : Drivers: hv: vmbus: define a new VMBus message type for hvsock
channel.c : commit fe760e4d64fe5c17c39e86c410d41f6587ee88bc : Drivers: hv: vmbus: Give control over how the ring access is serialized
channel.c : commit 8599846d73997cdbccf63f23394d871cfad1e5e6 : Drivers: hv: vmbus: Fix a Host signaling bug
channel_mgmt.c : commit fe760e4d64fe5c17c39e86c410d41f6587ee88bc : Drivers: hv: vmbus: Give control over how the ring access is serialized
channel_mgmt.c : commit 79fd8e706637a5c7c41f9498fe0fbfb437abfdc8 : Drivers: hv: vmbus: avoid infinite loop in init_vp_index()
channel_mgmt.c : commit 75ff3a8a9168df750b5bd0589e897a6c0517a9f1 : Drivers: hv: vmbus: avoid wait_for_completion() on crash
channel_mgmt.c : commit 5c23a1a5c60b0f472cfa61cd7d8279f8aaeb5b64 : Drivers: hv: vmbus: define a new VMBus message type for hvsock
connection.c : commit d6f591e339d23f434efda11917da511870891472 : Drivers: hv: vmbus: channge vmbus_connection.channel_lock to mutex
connection.c : commit 75ff3a8a9168df750b5bd0589e897a6c0517a9f1 : Drivers: hv: vmbus: avoid wait_for_completion() on crash
connection.c : commit 1b807e1011af46a595ba46c75ad5e20ad7177af7 : Drivers: hv: vmbus: Cleanup vmbus_set_event()
hv.c : commit a108393dbf764efb2405f21ca759806c65b8bc16 : drivers:hv: Export the API to invoke a hypercall on Hyper-V
hv.c : commit c35b82ef0294ae5052120615f5cfcef17c5a6bf7 : drivers/hv: correct tsc page sequence invalid value
hv.c : commit 9220e39b5c900c67ddcb517d52fe52d90fb5e3c8 : Drivers: hv: vmbus: fix build warning
hv.c : commit d81274aae61c0a045cd0f34191c51fa64ba58bc4 : Drivers: hv: vmbus: Support handling messages on multiple CPUs
hv.c : commit 3ccb4fd8f492f99aece21acc1bd6142275f26236 : Drivers: hv: vmbus: don't manipulate with clocksources on crash
hv_fcopy.c : commit 3cace4a616108539e2730f8dc21a636474395e0f : Drivers: hv: utils: run polling callback always in interrupt context
hv_fcopy.c : commit b9830d120cbe155863399f25eaef6aa8353e767f : Drivers: hv: util: Pass the channel information during the init call
hv_fcopy.c : commit c0b200cfb0403740171c7527b3ac71d03f82947a : Drivers: hv: util: Increase the timeout for util services
hv_kvp.c : commit 3cace4a616108539e2730f8dc21a636474395e0f : Drivers: hv: utils: run polling callback always in interrupt context
hv_kvp.c : commit 2d0c3b5ad739697a68dc8a444f5b9f4817cf8f8f : Drivers: hv: utils: Invoke the poll function after handshake
hv_kvp.c : commit b9830d120cbe155863399f25eaef6aa8353e767f : Drivers: hv: util: Pass the channel information during the init call
hv_kvp.c : commit c0b200cfb0403740171c7527b3ac71d03f82947a : Drivers: hv: util: Increase the timeout for util services
hv_snapshot.c : commit 2d0c3b5ad739697a68dc8a444f5b9f4817cf8f8f : Drivers: hv: utils: Invoke the poll function after handshake
hv_snapshot.c : commit 3cace4a616108539e2730f8dc21a636474395e0f : Drivers: hv: utils: run polling callback always in interrupt context
hv_snapshot.c : commit b9830d120cbe155863399f25eaef6aa8353e767f : Drivers: hv: util: Pass the channel information during the init call
hv_util.c : commit b9830d120cbe155863399f25eaef6aa8353e767f : Drivers: hv: util: Pass the channel information during the init call
hv_utils_transport.h : commit a15025660d4703a8b37290a14734cb4a84875770 : Drivers: hv: utils: introduce HVUTIL_TRANSPORT_DESTROY mode
hv_utils_transport.h : commit a72f3a4ccff22de879a1f599210ecdd9bd483a43 : Drivers: hv: utils: rename outmsg_lock
hyperv_vmbus.h : commit c0b200cfb0403740171c7527b3ac71d03f82947a : Drivers: hv: util: Increase the timeout for util services
hyperv_vmbus.h : commit 5b423efe11e822e092e8c911a6bad17eadf718eb : drivers/hv: Move struct hv_message into UAPI Hyper-V x86 header
hyperv_vmbus.h : commit d81274aae61c0a045cd0f34191c51fa64ba58bc4 : Drivers: hv: vmbus: Support handling messages on multiple CPUs
hyperv_vmbus.h : commit d6f591e339d23f434efda11917da511870891472 : Drivers: hv: vmbus: channge vmbus_connection.channel_lock to mutex
hyperv_vmbus.h : commit 0f70b66975ce4331e9002b792d5aa6787a110181 : Drivers: hv: vmbus: remove code duplication in message handling
hyperv_vmbus.h : commit 75ff3a8a9168df750b5bd0589e897a6c0517a9f1 : Drivers: hv: vmbus: avoid wait_for_completion() on crash
hyperv_vmbus.h : commit 3cace4a616108539e2730f8dc21a636474395e0f : Drivers: hv: utils: run polling callback always in interrupt context
vmbus_drv.c : commit 7047f17d70fc0599563d30d0791692cb5fe42ae6 : Drivers: hv: vmbus: Add vendor and device atttributes
vmbus_drv.c : commit 34c6801e3310ad286c7bb42bc88d42926b8f99bf : Drivers: hv: vmbus: fix rescind-offer handling for device without a driver
vmbus_drv.c : commit 17efbee8ba02ef00d3b270998978f8a1a90f1d92 : drivers/hv: cleanup synic msrs if vmbus connect failed
vmbus_drv.c : commit 40f26f3168bf7a4da490db308dc0bd9f9923f41f : drivers:hv: Allow for MMIO claims that span ACPI _CRS records
vmbus_drv.c : commit 619848bd074343ff2bdeeafca0be39748f6da372 : drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num
vmbus_drv.c : commit 75ff3a8a9168df750b5bd0589e897a6c0517a9f1 : Drivers: hv: vmbus: avoid wait_for_completion() on crash
vmbus_drv.c : commit 1959a28e2671004c1e9c30ccd2914b868f100742 : Drivers: hv: vmbus: kill tasklets on module unload
hv_fcopy_daemon.c : commit b4ed5d1682c6613988c2eb1de55df5ac9988afcc : tools: hv: report ENOSPC errors in hv_fcopy_daemon
hv_fcopy_daemon.c : commit 6dfb867cea9e93ae9220f0b2e702b0440e4c8b4b : tools: hv: remove repeated HV_FCOPY string
hv_vss_daemon.c : commit a689d2510f188e75391dbebacbddfd74d42f2a7e : tools: hv: vss: fix the write()'s argument: error -> vss_msg
hyperv-keyboard.c : commit 2048157ad02e65f6327118dd4a7b9c9f1fd12f77 : Drivers: hv: vmbus: fix the building warning with hyperv-keyboard
hyperv_net.h : commit 27a70af3f4cf633a1b86c0ac7b426e2fe16ad2e5 : hv_netvsc: rework link status change handling
netvsc.c : commit 2a04ae8acb144996eba6e3d69ab2a7156c775416 : hv_netvsc: remove locking in netvsc_send()
netvsc.c : commit 25b85ee890530f70de850f15660ed41abbee1172 : hv_netvsc: Eliminate the channel field in hv_netvsc_packet structure
netvsc.c : commit 3a3d9a0a731add5afaafd9c714e7efe11820fe5b : hv_netvsc: Eliminate send_completion_tid from struct hv_netvsc_packet
netvsc.c : commit c4b20c6370aa5cdbe11536125d86f31378d4b702 : hv_netvsc: Eliminatte the data field from struct hv_netvsc_packet
netvsc_drv.c : commit 757647e10e55c01fb7a9c4356529442e316a7c72 : hv_netvsc: use skb_get_hash() instead of a homegrown implementation
netvsc_drv.c : commit a9f2e2d6569d00ae8f9f832f1b56bc7702dfd2d3 : hv_netvsc: Eliminate page_buf from struct hv_netvsc_packet
netvsc_drv.c : commit 49eb93892d8dfcf5dc5088e640f486d08572d8bf : hv_netvsc: add ethtool support for set and get of settings
netvsc_drv.c : commit d212b4633c3a99561939f2d423eacf3263850bcd : hv_netvsc: Fix accessing freed memory in netvsc_change_mtu()
rndis_filter.c : commit 3f735131d9c2523eb54a6c5099fa8c60a4292d48 : hv_netvsc: Fix the order of num_sc_offered decrement
rndis_filter.c : commit 9efc2f7dcd06e04d7b6a3032ae65bfd628b1aebe : hv_netvsc: Fix the array sizes to be max supported channels
rndis_filter.c : commit d66ab51442211158b677c2f12310c314d9587f74 : hv_netvsc: Move subchannel waiting to rndis_filter_device_remove()
storvsc_drv.c : commit 83d1e8b9b51b06d79653293d0bf34ff2c61abe46 : storvsc: Fix a bug in the layout of the hv_fc_wwn_packet
storvsc_drv.c : commit f8aea701b77c26732f151aab4f0a70e62eb53d86 : storvsc: add logging for error/warning messages
storvsc_drv.c : commit 74e26784f1c50469585f483cf404c2b1d621c101 : storvsc: Fix typo in MODULE_PARM_DESC
storvsc_drv.c : commit 98441221708a092eb6d3d05142cf842a95aba152 : storvsc: Use the specified target ID in device lookup
storvsc_drv.c : commit ff06c5ffbcb4ffa542fb80c897be977956fafecc : scsi: storvsc: fix SRB_STATUS_ABORTED handling
storvsc_drv.c : commit b95f5be09069526cf53705acbc1e22600f3f550b : storvsc: Allow write_same when host is windows 10

This rebase request is intended for Xenial, but the commits are also applicable to the wily HWE kernel (with the exception of Hyper-V sockets and PCI Passthrough support).

Joshua R. Poulson (jrp) on 2016-05-18
no longer affects: linux
affects: linux-lts-trusty (Ubuntu) → linux (Ubuntu)
Brad Figg (brad-figg) on 2016-05-18
Changed in linux (Ubuntu):
status: New → Invalid
Joshua R. Poulson (jrp) on 2016-05-18
Changed in linux (Ubuntu Xenial):
status: New → Confirmed
Changed in linux (Ubuntu Xenial):
importance: Undecided → Medium
status: Confirmed → Triaged
tags: added: kernel-da-key kernel-hyper-v
Tim Gardner (timg-tpi) wrote :

Joe - how about building a test kernel from 'git://kernel.ubuntu.com/rtg/ubuntu-xenial.git hv'

Changed in linux (Ubuntu):
status: Invalid → Triaged
importance: Undecided → Medium
Joseph Salisbury (jsalisbury) wrote :

I built a test kernel with the repo Tim mentioned in comment #1. This Xenial kernel should have all of the 4.6 HV patches.

The test kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1583357/xenial/

Josh, can you have this test kernel tested out?

Joshua R. Poulson (jrp) wrote :

Acknowledged. We're looking at it.

Chris Valean (cvalean) wrote :

Hello Joe,

While testing this we found at least one existing issue that shipped in 16.04 GA, and the patch for it only recently got accepted upstream (but not part of the 4.6 rebase list).

Will you be able to include at least one patch or several as part of this rebase?

Thank you!

Tim Gardner (timg-tpi) wrote :

Chris - can you provide a commit SHA1 ?

Changed in linux (Ubuntu Xenial):
assignee: nobody → Tim Gardner (timg-tpi)
Changed in linux (Ubuntu):
status: Triaged → Fix Released
Changed in linux (Ubuntu Xenial):
status: Triaged → In Progress
Chris Valean (cvalean) wrote :

It would be commit 4dbfc2e68004c60edab7e8fd26784383dd3ee9bc that resolves an issue with KVP.

We have other commits that are to resolve some issues with kdump on Hyper-V VM, but we'll send those separately.

Thank you!

Tim Gardner (timg-tpi) wrote :

Hi Joe - I've refreshed that branch with the added commit 4dbfc2e68004c60edab7e8fd26784383dd3ee9bc ('Drivers: hv: kvp: fix IP Failover'). Please build and post another test kernel.

Chris Valean (cvalean) wrote :

Thanks Tim, Joe.

I've created a separate request for multiple commits that are to fix the kdump behavior for 16.04, bug ID #1588965

Thank you!

Joseph Salisbury (jsalisbury) wrote :

I built a new test kernel with Tim's tree posted in comment #7. The kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1583357/xenial/

Chris Valean (cvalean) wrote :

Thanks Joe!

I've tested your lp1583357 kernel with KVP and the results are looking good.
For the original 16.04 kernel and the rebase one to 4.6 the only issue open we're tracking is with kdump, but we have another ticket in which that is handled.

Otherwise the results for the 4.6 rebase kernel are good and the changes should be merged.
Thank you!

Joshua R. Poulson (jrp) wrote :

Despite my escalation, this does not appear to be in 4.4.0-28.

Kamal Mostafa (kamalmostafa) wrote :

This has now been committed to Xenial, scheduled to be released in 4.4.0-30.

Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Kamal Mostafa (kamalmostafa) wrote :

We've bumped the current -proposed Xenial version number (to -30) for an unrelated issue. This fix is still scheduled to be released in the next Xenial cycle. A note will be posted here once it reaches -proposed.

Seth Forshee (sforshee) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Joshua R. Poulson (jrp) wrote :

Acknowledged, we will verify and revert.

Joshua R. Poulson (jrp) wrote :

Our verification continues. We encountered a crash that we've attempted to reproduce to no avail, otherwise things look good. We're almost done.

Seth Forshee (sforshee) wrote :

@Joshua: Have you completed verification yet?

Joshua R. Poulson (jrp) wrote :

We have not recreated the one crash we observed.

tags: added: verification-done-xenial
removed: verification-needed-xenial
Launchpad Janitor (janitor) wrote :
Download full text (15.0 KiB)

This bug was fixed in the package linux - 4.4.0-34.53

---------------
linux (4.4.0-34.53) xenial; urgency=low

  [ Seth Forshee ]

  * Release Tracking Bug
    - LP: #1606960

  * [APL][SAUCE] Slow system response time due to a monitor bug (LP: #1606147)
    - x86/cpu/intel: Introduce macros for Intel family numbers
    - SAUCE: x86/cpu: Add workaround for MONITOR instruction erratum on Goldmont
      based CPUs

linux (4.4.0-33.52) xenial; urgency=low

  [ Seth Forshee ]

  * Release Tracking Bug
    - LP: #1605709

  * [regression] NFS client: access problems after updating to kernel
    4.4.0-31-generic (LP: #1603719)
    - SAUCE: (namespace) Bypass sget() capability check for nfs

linux (4.4.0-32.51) xenial; urgency=low

  [ Seth Forshee ]

  * Release Tracking Bug
    - LP: #1604443

  * thinkpad yoga 260 wacom touchscreen not working (LP: #1603975)
    - HID: wacom: break out parsing of device and registering of input
    - HID: wacom: Initialize hid_data.inputmode to -1
    - HID: wacom: Support switching from vendor-defined device mode on G9 and G11

  * changelog: add CVEs as first class citizens (LP: #1604344)
    - use CVE numbers in changelog

  * [Xenial] Include Huawei PCIe SSD hio kernel driver (LP: #1603483)
    - SAUCE: import Huawei ES3000_V2 (2.1.0.23)
    - SAUCE: hio: bio_endio() no longer takes errors arg
    - SAUCE: hio: blk_queue make_request_fn now returns a blk_qc_t
    - SAUCE: hio: use alloc_cpumask_var to avoid -Wframe-larger-than
    - SAUCE: hio: fix mask maybe-uninitialized warning
    - [config] enable CONFIG_HIO (Huawei ES3000_V2 PCIe SSD driver)
    - SAUCE: hio: Makefile and Kconfig

  * CVE-2016-5243 (LP: #1589036)
    - tipc: fix an infoleak in tipc_nl_compat_link_dump
    - tipc: fix nl compat regression for link statistics

  * CVE-2016-4470
    - KEYS: potential uninitialized variable

  * integer overflow in xt_alloc_table_info (LP: #1555353)
    - netfilter: x_tables: check for size overflow

  * CVE-2016-3135:
    - Revert "UBUNTU: SAUCE: (noup) netfilter: x_tables: check for size overflow"

  * CVE-2016-4440 (LP: #1584192)
    - kvm:vmx: more complete state update on APICv on/off

  * the system hangs in the dma driver when reboot or shutdown on a baytrail-m
    laptop (LP: #1602579)
    - dmaengine: dw: platform: power on device on shutdown
    - ACPI / LPSS: override power state for LPSS DMA device

  * Add proper palm detection support for MS Precision Touchpad (LP: #1593124)
    - Revert "HID: multitouch: enable palm rejection if device implements
      confidence usage"
    - HID: multitouch: enable palm rejection for Windows Precision Touchpad

  * Add support for Intel 8265 Bluetooth ([8087:0A2B]) (LP: #1599068)
    - Bluetooth: Add support for Intel Bluetooth device 8265 [8087:0a2b]

  * CVE-2016-4794 (LP: #1581871)
    - percpu: fix synchronization between chunk->map_extend_work and chunk
      destruction
    - percpu: fix synchronization between synchronous map extension and chunk
      destruction

  * Xenial update to v4.4.15 stable release (LP: #1601952)
    - net_sched: fix pfifo_head_drop behavior vs backlog
    - net: Don't forget pr_fmt on net_dbg_ratelimited for CONFIG_DYNAMIC...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Chris Valean (cvalean) wrote :

Verification is also done on our end, no new issues to report here.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers