This bug was fixed in the package linux - 4.8.0-28.30

---------------
linux (4.8.0-28.30) yakkety; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1641083

  * lxc-attach to malicious container allows access to host (LP: #1639345)
    - Revert "UBUNTU: SAUCE: (noup) ptrace: being capable wrt a process requires
      mapped uids/gids"
    - (upstream) mm: Add a user_ns owner to mm_struct and fix ptrace permission
      checks

  * [Feature] AVX-512 new instruction sets (avx512_4vnniw, avx512_4fmaps)
    (LP: #1637526)
    - x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features

  * zfs: importing zpool with vdev on zvol hangs kernel (LP: #1636517)
    - SAUCE: (noup) Update zfs to 0.6.5.8-0ubuntu4.1

  * Move some device drivers build from kernel built-in to modules
    (LP: #1637303)
    - [Config] CONFIG_TIGON3=m for all arches
    - [Config] CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m

  * I2C touchpad does not work on AMD platform (LP: #1612006)
    - pinctrl/amd: Configure GPIO register using BIOS settings

  * guest experiencing Transmit Timeouts on CX4 (LP: #1636330)
    - powerpc/64: Re-fix race condition between going idle and entering guest
    - powerpc/64: Fix race condition in setting lock bit in idle/wakeup code

  * QEMU throws failure msg while booting guest with SRIOV VF (LP: #1630554)
    - KVM: PPC: Always select KVM_VFIO, plus Makefile cleanup

  * [Feature] KBL - New device ID for Kabypoint(KbP) (LP: #1591618)
    - SAUCE: mfd: lpss: Fix Intel Kaby Lake PCH-H properties

  * hio: SSD data corruption under stress test (LP: #1638700)
    - SAUCE: hio: set bi_error field to signal an I/O error on a BIO
    - SAUCE: hio: splitting bio in the entry of .make_request_fn

  * cleanup primary tree for linux-hwe layering issues (LP: #1637473)
    - [Config] switch Vcs-Git: to yakkety repository
    - [Packaging] handle both linux-lts* and linux-hwe* as backports
    - [Config] linux-tools-common and linux-cloud-tools-common are one per 
series
    - [Config] linux-source-* is in the primary linux namespace
    - [Config] linux-tools -- always suggest the base package

  * SRU: sync zfsutils-linux and spl-linux changes to linux (LP: #1635656)
    - SAUCE: (noup) Update spl to 0.6.5.8-2, zfs to 0.6.5.8-0ubuntu4 (LP:
      #1635656)

  * [Feature] SKX: perf uncore PMU support (LP: #1591810)
    - perf/x86/intel/uncore: Add Skylake server uncore support
    - perf/x86/intel/uncore: Remove hard-coded implementation for Node ID 
mapping
      location
    - perf/x86/intel/uncore: Handle non-standard counter offset

  * [Feature] Purley: Memory Protection Keys (LP: #1591804)
    - x86/pkeys: Add fault handling for PF_PK page fault bit
    - mm: Implement new pkey_mprotect() system call
    - x86/pkeys: Make mprotect_key() mask off additional vm_flags
    - x86/pkeys: Allocation/free syscalls
    - x86: Wire up protection keys system calls
    - generic syscalls: Wire up memory protection keys syscalls
    - pkeys: Add details of system call use to Documentation/
    - x86/pkeys: Default to a restrictive init PKRU
    - x86/pkeys: Allow configuration of init_pkru
    - x86/pkeys: Add self-tests

  * kernel invalid opcode in intel_powerclamp (LP: #1630774)
    - SAUCE: (no-up) thermal/powerclamp: correct cpu support check

  * please include mlx5_core modules in linux-image-generic package
    (LP: #1635223)
    - [Config] Include mlx5 in main package

  * [LTCTest] vfio_pci not loaded on Ubuntu 16.10 by default (LP: #1636733)
    - [Config] CONFIG_VFIO_PCI=y for ppc64el

  * Yakkety update to v4.8.6 stable release (LP: #1638748)
    - drm/vc4: Fix races when the CS reads from render targets.
    - drm/prime: Pass the right module owner through to dma_buf_export()
    - drm/i915/backlight: setup and cache pwm alternate increment value
    - drm/i915/backlight: setup backlight pwm alternate increment on backlight
      enable
    - drm/amdgpu: fix IB alignment for UVD
    - drm/amdgpu/dce10: disable hpd on local panels
    - drm/amdgpu/dce8: disable hpd on local panels
    - drm/amdgpu/dce11: disable hpd on local panels
    - drm/amdgpu/dce11: add missing drm_mode_config_cleanup call
    - drm/amdgpu: initialize the context reset_counter in amdgpu_ctx_init
    - drm/amdgpu: change vblank_time's calculation method to reduce 
computational
      error.
    - drm/radeon: narrow asic_init for virtualization
    - drm/radeon/si/dpm: fix phase shedding setup
    - drm/radeon: change vblank_time's calculation method to reduce 
computational
      error.
    - drm/vmwgfx: Limit the user-space command buffer size
    - drm/fsl-dcu: fix endian issue when using clk_register_divider
    - drm/amd/powerplay: fix mclk not switching back after multi-head was 
disabled
    - HID: add quirk for Akai MIDImix.
    - drm/i915/skl: Update plane watermarks atomically during plane updates
    - drm/i915: Move CRTC updating in atomic_commit into it's own hook
    - drm/i915/skl: Update DDB values atomically with wms/plane attrs
    - drm/i915/skl: Don't try to update plane watermarks if they haven't changed
    - drm/i915/gen9: only add the planes actually affected by ddb changes
    - drm/i915/gen9: fix the WaWmMemoryReadLatency implementation
    - drm/i915/gen9: minimum scanlines for Y tile is not always 4
    - drm/i915/gen9: fix plane_blocks_per_line on watermarks calculations
    - drm/i915/gen9: fix the watermark res_blocks value
    - drm/i915: SAGV is not SKL-only, so rename a few things
    - drm/i915: introduce intel_has_sagv()
    - drm/i915/kbl: KBL also needs to run the SAGV code
    - Revert "drm/i915: Check live status before reading edid"
    - drm/i915: Account for TSEG size when determining 865G stolen base
    - drm/i915/skl: Ensure pipes with changed wms get added to the state
    - drm/i915: Allow PCH DPLL sharing regardless of DPLL_SDVO_HIGH_SPEED
    - drm/i915: Move long hpd handling into the hotplug work
    - drm/i915: Allow DP to work w/o EDID
    - drm/i915: Just clear the mmiodebug before a register access
    - drm/i915: Unalias obj->phys_handle and obj->userptr
    - posix_acl: Clear SGID bit when setting file permissions
    - rt2x00usb: Fix error return code
    - scsi: cxlflash: Remove the device cleanly in the system shutdown path
    - genirq/generic_chip: Add irq_unmap callback
    - coresight: Remove erroneous dma_free_coherent in tmc_probe
    - uio: fix dmem_region_start computation
    - ARM: clk-imx35: fix name for ckil clk
    - spi: spi-fsl-dspi: Drop extra spi_master_put in device remove function
    - i40e: remove a stray unlock
    - i40e: fix broken i40e_config_rss_aq function
    - mwifiex: correct aid value during tdls setup
    - mwifiex: fix failed to reconnect after interface disabled/enabled
    - ath10k: Add WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT wmi service
    - ath10k: fix sending frame in management path in push txq logic
    - ath10k: fix reporting channel survey data
    - ath10k: fix throughput regression in multi client mode
    - crypto: marvell - Don't overwrite default creq->state during 
initialization
    - crypto: gcm - Fix IV buffer size in crypto_gcm_setkey
    - crypto: marvell - Update transformation context for each dequeued req
    - crypto: arm/ghash-ce - add missing async import/export
    - crypto: ccp - Fix return value check in ccp_dmaengine_register()
    - hwrng: omap - Only fail if pm_runtime_get_sync returns < 0
    - ASoC: topology: Fix error return code in soc_tplg_dapm_widget_create()
    - ASoC: dapm: Fix possible uninitialized variable in 
snd_soc_dapm_get_volsw()
    - ASoC: dapm: Fix value setting for _ENUM_DOUBLE MUX's second channel
    - ASoC: dapm: Fix kcontrol creation for output driver widget
    - ASoC: sst-bxt-rt298: fix obsoleted initializers for array
    - ASoC: sst-bxt-da7219_max98357a: fix obsoleted initializers for array
    - iio: ad5755: fix off-by-one on devnr limit check
    - iio: light: us5182d: Add missing error code assignment before test
    - staging: android ion/hisi: fix dependencies
    - staging: sm750fb: Correctly set CLOCK_PHASE bit of display controller.
    - staging: r8188eu: Fix scheduling while atomic splat
    - staging: ks7010: fix wait_for_completion_interruptible_timeout return
      handling
    - staging: ks7010: declare private functions static
    - IB/hfi1: Move iowait_init() to priv allocate
    - IB/rdmavt: Correct sparse annotation
    - IB/qib: Remove qpt_mask global
    - IB/mlx5: Fix steering resource leak
    - power: bq24257: Fix use of uninitialized pointer bq->charger
    - dmaengine: ipu: remove bogus NO_IRQ reference
    - mm/hugetlb: check for reserved hugepages during memory offline
    - mm/hugetlb: improve locking in dissolve_free_huge_pages()
    - drm/vmwgfx: Avoid validating views on view destruction
    - s390/cio: fix accidental interrupt enabling during resume
    - s390/con3270: fix use of uninitialised data
    - s390/con3270: fix insufficient space padding
    - clk: bcm2835: Skip PLLC clocks when deciding on a new clock parent
    - clk: gcc-msm8996: Fix pcie 2 pipe register offset
    - clk: qcom: select GDSC for msm8996 gcc and mmcc
    - clk: qoriq: fix a register offset error
    - clk: Return errors from clk providers in __of_clk_get_from_provider()
    - clk: core: Force setting the phase delay when no change
    - clk: divider: Fix clk_divider_round_rate() to use clk_readl()
    - perf data: Fix building in 32 bit platform with libbabeltrace
    - perf hists browser: Fix event group display
    - perf powerpc: Fix build-test failure
    - perf ui/tui: Reset output width for hierarchy
    - perf ui/stdio: Always reset output width for hierarchy
    - perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too
    - perf symbols: Fixup symbol sizes before picking best ones
    - iwlwifi: check for valid ethernet address provided by OEM
    - iwlwifi: mvm: fix pending frames tracking on tx resp
    - iwlwifi: mvm: call a different txq_enable function
    - iwlwifi: mvm: free reserved queue on STA removal
    - iwlwifi: mvm: support BAR in reorder buffer
    - iwlwifi: mvm: disable P2P queue on mac context release
    - iwlwifi: mvm: bail out if CTDP start operation fails
    - ARM: dts: sun9i: Add missing #interrupt-cells to R_PIO pinctrl device node
    - pinctrl: qcom: fix masking of pinmux functions
    - mpt3sas: Don't spam logs if logging level is 0
    - powerpc: Always restore FPU/VEC/VSX if hardware transactional memory in 
use
    - powerpc: Add check_if_tm_restore_required() to giveup_all()
    - powerpc/nvram: Fix an incorrect partition merge
    - powerpc: Fix usage of _PAGE_RO in hugepage
    - ARM: pxa: pxa_cplds: fix interrupt handling
    - ARM: pxa: fix GPIO double shifts
    - ARM: dts: NSP: Correct RAM amount for BCM958625HR board
    - ARM: dts: fix RealView EB SMSC ethernet version
    - ARM: dts: omap3: overo: add missing unit name for lcd35 display
    - PCI: rcar: Fix pci_remap_iospace() failure path
    - PCI: aardvark: Fix pci_remap_iospace() failure path
    - PCI: generic: Fix pci_remap_iospace() failure path
    - PCI: versatile: Fix pci_remap_iospace() failure path
    - PCI: designware: Fix pci_remap_iospace() failure path
    - PCI: tegra: Fix pci_remap_iospace() failure path
    - libnvdimm: clear the internal poison_list when clearing badblocks
    - Linux 4.8.6

  * Yakkety update to v4.8.5 stable release (LP: #1637520)
    - gpio: mpc8xxx: Correct irq handler function
    - mei: fix return value on disconnection
    - mei: me: add kaby point device ids
    - regulator: tps65910: Work around silicon erratum SWCZ010
    - clk: imx6: initialize GPU clocks
    - clk: imx6: fix i.MX6DL clock tree to reflect reality
    - spi: spidev_test: Fix buffer overflow in unescape()
    - PM / devfreq: event: remove duplicate devfreq_event_get_drvdata()
    - ath10k: fix copy engine 5 destination ring stuck
    - rtlwifi: Fix missing country code for Great Britain
    - mmc: block: don't use CMD23 with very old MMC cards
    - mmc: sdhci: cast unsigned int to unsigned long long to avoid unexpeted 
error
    - PCI: Mark Atheros AR9580 to avoid bus reset
    - PCI: tegra: Fix argument order in tegra_pcie_phy_disable()
    - platform: don't return 0 from platform_get_irq[_byname]() on error
    - cpufreq: ti: Use generic platdev driver
    - cpufreq: conservative: Fix next frequency selection
    - cpufreq: skip invalid entries when searching the frequency
    - cpufreq: intel_pstate: Fix unsafe HWP MSR access
    - cpufreq: fix overflow in cpufreq_table_find_index_dl()
    - parisc: Increase KERNEL_INITIAL_SIZE for 32-bit SMP kernels
    - parisc: Fix self-detected CPU stall warnings on Mako machines
    - parisc: Fix kernel memory layout regarding position of __gp
    - parisc: Increase initial kernel mapping size
    - pstore/ramoops: fixup driver removal
    - pstore/core: drop cmpxchg based updates
    - pstore/ram: Use memcpy_toio instead of memcpy
    - pstore/ram: Use memcpy_fromio() to save old buffer
    - perf intel-pt: Fix snapshot overlap detection decoder errors
    - perf intel-pt: Fix estimated timestamps for cycle-accurate mode
    - perf intel-pt: Fix MTC timestamp calculation for large MTC periods
    - dm: mark request_queue dead before destroying the DM device
    - dm: return correct error code in dm_resume()'s retry loop
    - dm rq: take request_queue lock while clearing QUEUE_FLAG_STOPPED
    - dm mpath: check if path's request_queue is dying in activate_path()
    - dm crypt: fix crash on exit
    - powerpc/xmon: Don't use ld on 32-bit
    - powerpc/vdso64: Use double word compare on pointers
    - powerpc/powernv: Pass CPU-endian PE number to opal_pci_eeh_freeze_clear()
    - powerpc/eeh: Null check uses of eeh_pe_bus_get
    - powerpc/powernv: Use CPU-endian hub diag-data type in
      pnv_eeh_get_and_dump_hub_diag()
    - powerpc/powernv: Use CPU-endian PEST in pnv_pci_dump_p7ioc_diag_data()
    - powerpc/mm: Update FORCE_MAX_ZONEORDER range to allow hugetlb w/4K
    - powerpc/mm/hash64: Fix might_have_hea() check
    - IB/srp: Fix infinite loop when FMR sg[0].offset != 0
    - IB/core: correctly handle rdma_rw_init_mrs() failure
    - ubi: Deal with interrupted erasures in WL
    - zfcp: fix fc_host port_type with NPIV
    - zfcp: fix ELS/GS request&response length for hardware data router
    - zfcp: close window with unblocked rport during rport gone
    - zfcp: retain trace level for SCSI and HBA FSF response records
    - zfcp: restore: Dont use 0 to indicate invalid LUN in rec trace
    - zfcp: trace on request for open and close of WKA port
    - zfcp: restore tracing of handle for port and LUN with HBA records
    - zfcp: fix D_ID field with actual value on tracing SAN responses
    - zfcp: fix payload trace length for SAN request&response
    - zfcp: trace full payload of all SAN records (req,resp,iels)
    - scsi: zfcp: spin_lock_irqsave() is not nestable
    - fbdev/efifb: Fix 16 color palette entry calculation
    - ovl: Fix info leak in ovl_lookup_temp()
    - ovl: copy_up_xattr(): use strnlen
    - mb86a20s: fix the locking logic
    - mb86a20s: fix demod settings
    - cx231xx: don't return error on success
    - cx231xx: fix GPIOs for Pixelview SBTVD hybrid
    - cx231xx: can't proceed if I2C bus register fails
    - ALSA: hda - Fix a failure of micmute led when having multi adcs
    - MIPS: Fix -mabi=64 build of vdso.lds
    - MIPS: ptrace: Fix regs_return_value for kernel context
    - Input: i8042 - skip selftest on ASUS laptops
    - Input: elantech - force needed quirks on Fujitsu H760
    - Input: elantech - add Fujitsu Lifebook E556 to force crc_enabled
    - sunrpc: fix write space race causing stalls
    - NFSD: fix corruption in notifier registration
    - NFS: Fix inode corruption in nfs_prime_dcache()
    - NFSv4: Don't report revoked delegations as valid in nfs_have_delegation()
    - NFSv4: nfs4_copy_delegation_stateid() must fail if the delegation is 
invalid
    - NFSv4: Open state recovery must account for file permission changes
    - NFSv4.2: Fix a reference leak in nfs42_proc_layoutstats_generic
    - pnfs/blocklayout: fix last_write_offset incorrectly set to page boundary
    - scsi: Fix use-after-free
    - watchdog: rt2880_wdt: Remove assignment of dev pointer
    - watchdog: mt7621_wdt: Remove assignment of dev pointer
    - metag: Only define atomic_dec_if_positive conditionally
    - soc/fsl/qe: fix gpio save_regs functions
    - soc/fsl/qe: fix Oops on CPM1 (and likely CPM2)
    - arm64: KVM: VHE: reset PSTATE.PAN on entry to EL2
    - arc: don't leak bits of kernel stack into coredump
    - fs/super.c: fix race between freeze_super() and thaw_super()
    - cifs: Limit the overall credit acquired
    - fs/cifs: keep guid when assigning fid to fileinfo
    - Clarify locking of cifs file and tcon structures and make more granular
    - Display number of credits available
    - Set previous session id correctly on SMB3 reconnect
    - SMB3: GUIDs should be constructed as random but valid uuids
    - Do not send SMB3 SET_INFO request if nothing is changing
    - Cleanup missing frees on some ioctls
    - blkcg: Unlock blkcg_pol_mutex only once when cpd == NULL
    - x86/e820: Don't merge consecutive E820_PRAM ranges
    - kvm: x86: memset whole irq_eoi
    - x86/platform/UV: Fix support for EFI_OLD_MEMMAP after BIOS callback 
updates
    - x86/boot/smp: Don't try to poke disabled/non-existent APIC
    - pinctrl: intel: Only restore pins that are used by the driver
    - pinctrl: baytrail: Fix lockdep
    - sched/fair: Fix incorrect task group ->load_avg
    - sched/fair: Fix min_vruntime tracking
    - irqchip/gicv3: Handle loop timeout proper
    - irqchip/eznps: Acknowledge NPS_IPI before calling the handler
    - irqchip/gic-v3-its: Fix entry size mask for GITS_BASER
    - cxl: Prevent adapter reset if an active context exists
    - isofs: Do not return EACCES for unknown filesystems
    - memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
    - memstick: rtsx_usb_ms: Manage runtime PM when accessing the device
    - arm64: swp emulation: bound LL/SC retries before rescheduling
    - arm64: kaslr: fix breakage with CONFIG_MODVERSIONS=y
    - arm64: percpu: rewrite ll/sc loops in assembly
    - arm64: kernel: Init MDCR_EL2 even in the absence of a PMU
    - arm64: Cortex-A53 errata workaround: check for kernel addresses
    - arm64: KVM: Take S1 walks into account when determining S2 write faults
    - ceph: fix error handling in ceph_read_iter
    - powerpc/mm: Prevent unlikely crash in copro_calculate_slb()
    - mmc: core: Annotate cmd_hdr as __le32
    - mmc: core: switch to 1V8 or 1V2 for hs400es mode
    - mmc: rtsx_usb_sdmmc: Avoid keeping the device runtime resumed when unused
    - mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led
    - KVM: s390: reject invalid modes for runtime instrumentation
    - fscrypto: make XTS tweak initialization endian-independent
    - fscrypto: lock inode while setting encryption policy
    - ext4: do not advertise encryption support when disabled
    - jbd2: fix incorrect unlock on j_list_lock
    - ubifs: Fix xattr_names length in exit paths
    - target/tcm_fc: use CPU affinity for responses
    - target: Re-add missing SCF_ACK_KREF assignment in v4.1.y
    - target: Make EXTENDED_COPY 0xe4 failure return COPY TARGET DEVICE NOT
      REACHABLE
    - target: Don't override EXTENDED_COPY xcopy_pt_cmd SCSI status code
    - Revert "target: Fix residual overflow handling in
      target_complete_cmd_with_length"
    - Linux 4.8.5

  * Yakkety update to v4.8.4 stable release (LP: #1637517)
    - serial: imx: Fix DCD reading
    - BUG: atmel_serial: Interrupts not disabled on close
    - serial: 8250_dw: Check the data->pclk when get apb_pclk
    - serial: 8250_port: fix runtime PM use in __do_stop_tx_rs485()
    - ARCv2: intc: Use kflag if STATUS32.IE must be reset
    - ARCv2: fix local_save_flags
    - debugfs: introduce a public file_operations accessor
    - b43: fix debugfs crash
    - b43legacy: fix debugfs crash
    - carl9170: fix debugfs crashes
    - Btrfs: fix free space tree bitmaps on big-endian systems
    - Btrfs: fix mount -o clear_cache,space_cache=v2
    - Btrfs: catch invalid free space trees
    - btrfs: assign error values to the correct bio structs
    - mei: amthif: fix deadlock in initialization during a reset
    - drivers: base: dma-mapping: page align the size when unmap_kernel_range
    - IB/hfi1: Fix defered ack race with qp destroy
    - clk: mvebu: fix setting unwanted flags in CP110 gate clock
    - clk: mvebu: dynamically allocate resources in Armada CP110 system 
controller
    - fuse: listxattr: verify xattr list
    - fuse: invalidate dir dentry after chmod
    - fuse: fix killing s[ug]id in setattr
    - mm: filemap: fix mapping->nrpages double accounting in fuse
    - i40e: avoid NULL pointer dereference and recursive errors on early PCI 
error
    - xfs: change mailing list address
    - mm: filemap: don't plant shadow entries without radix tree node
    - brcmfmac: fix pmksa->bssid usage
    - brcmfmac: fix memory leak in brcmf_fill_bss_param
    - brcmfmac: use correct skb freeing helper when deleting flowring
    - ASoC: nau8825: fix bug in FLL parameter
    - ASoC: Intel: Atom: add a missing star in a memcpy call
    - reiserfs: Unlock superblock before calling reiserfs_quota_on_mount()
    - async_pq_val: fix DMA memory leak
    - scsi: arcmsr: Simplify user_len checking
    - ipc/sem.c: fix complex_count vs. simple op race
    - mm/hugetlb: fix memory offline with hugepage size > memory block size
    - vfs,mm: fix a dead loop in truncate_inode_pages_range()
    - jbd2: fix lockdep annotation in add_transaction_credits()
    - ext4: enforce online defrag restriction for encrypted files
    - ext4: reinforce check of i_dtime when clearing high fields of uid and gid
    - ext4: bugfix for mmaped pages in mpage_release_unused_pages()
    - ext4: fix memory leak in ext4_insert_range()
    - ext4: fix memory leak when symlink decryption fails
    - ext4: allow DAX writeback for hole punch
    - ext4: release bh in make_indexed_dir
    - ext4: unmap metadata when zeroing blocks
    - dlm: free workqueues after the connections
    - vfs: move permission checking into notify_change() for utimes(NULL)
    - cachefiles: Fix attempt to read i_blocks after deleting file [ver #2]
    - drm: virtio: reinstate drm_virtio_set_busid()
    - acpi, nfit: check for the correct event code in notifications
    - cfq: fix starvation of asynchronous writes
    - Linux 4.8.4

  * Yakkety update to v4.8.3 stable release (LP: #1637512)
    - v4l: rcar-fcp: Don't force users to check for disabled FCP support
    - scsi: configure runtime pm before calling device_add in
      scsi_add_host_with_dma
    - Make __xfs_xattr_put_listen preperly report errors.
    - Linux 4.8.3

  * KVM: PPC: Book3S HV: Migrate pinned pages out of CMA (LP: #1632045)
    - KVM: PPC: Book3S HV: Migrate pinned pages out of CMA

  * unexpectedly large memory usage of mounted snaps (LP: #1636847)
    - [Config] switch squashfs to single threaded decode

  * Fix bugs under virtual scsi server driver for Power (LP: #1621088)
    - target/user: Use sense_reason_t in tcmu_queue_cmd_ring
    - target/user: Return an error if cmd data size is too large
    - target/user: Fix comments to not refer to data ring

  * ISST-LTE:pVM nvme 0000:a0:00.0: iommu_alloc failed on NVMe card
    (LP: #1633128)
    - dma-mapping: introduce the DMA_ATTR_NO_WARN attribute
    - powerpc: implement the DMA_ATTR_NO_WARN attribute
    - nvme: use the DMA_ATTR_NO_WARN attribute

  * arm64: kprobes disabled (LP: #1634271)
    - [Config] Enable KPROBES on arm64

  * Bad page state in process genwqe_gunzip pfn:3c275 in the genwqe device
    driver (LP: #1559194)
    - SAUCE: (noup) Bad page state in process genwqe_gunzip pfn:3c275 in the
      genwqe device driver

  * CVE-2016-7425
    - scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer()

  * Add ipvlan module to 16.04 kernel (LP: #1634705)
    - [Config] Add ipvlan to the generic inclusion list

  * hio Ubuntu sauce driver needs porting to 4.8 (LP: #1635594)
    - 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
    - SAUCE: hio: port to v4.8 base
    - [config] enable CONFIG_HIO (Huawei ES3000_V2 PCIe SSD driver)
    - SAUCE: hio: Makefile and Kconfig
    - [Config] Enforce CONFIG_HIO

  * Yakkety update to v4.8.2 stable release (LP: #1633973)
    - usb: storage: fix runtime pm issue in usb_stor_probe2
    - timekeeping: Fix __ktime_get_fast_ns() regression
    - usb: dwc3: fix Clear Stall EP command failure
    - phy: sun4i-usb: Use spinlock to guard phyctl register access
    - ALSA: ali5451: Fix out-of-bound position reporting
    - ALSA: usb-audio: Extend DragonFly dB scale quirk to cover other variants
    - ALSA: usb-line6: use the same declaration as definition in header for MIDI
      manufacturer ID
    - mfd: rtsx_usb: Avoid setting ucr->current_sg.status
    - mfd: atmel-hlcdc: Do not sleep in atomic context
    - mfd: 88pm80x: Double shifting bug in suspend/resume
    - mfd: wm8350-i2c: Make sure the i2c regmap functions are compiled
    - xen/x86: Update topology map for PV VCPUs
    - KVM: PPC: Book3s PR: Allow access to unprivileged MMCR2 register
    - KVM: MIPS: Drop other CPU ASIDs on guest MMU changes
    - KVM: arm64: Require in-kernel irqchip for PMU support
    - KVM: arm/arm64: vgic: Don't flush/sync without a working vgic
    - KVM: PPC: BookE: Fix a sanity check
    - arm64: fix dump_backtrace/unwind_frame with NULL tsk
    - x86/boot: Fix kdump, cleanup aborted E820_PRAM max_pfn manipulation
    - x86/irq: Prevent force migration of irqs which are not in the vector 
domain
    - x86/pkeys: Make protection keys an "eager" feature
    - x86/cpu: Rename Merrifield2 to Moorefield
    - x86/platform/intel-mid: Add Intel Penwell to ID table
    - x86/platform/intel-mid: Keep SRAM powered on at boot
    - x86/apic: Get rid of apic_version[] array
    - arch/x86: Handle non enumerated CPU after physical hotplug
    - x86/mm/pkeys: Do not skip PKRU register if debug registers are not used
    - x86/dumpstack: Fix x86_32 kernel_stack_pointer() previous stack access
    - ARM: fix delays
    - ARM: dts: mvebu: armada-390: add missing compatibility string and bracket
    - ARM: dts: MSM8064 remove flags from SPMI/MPP IRQs
    - ARM: dts: MSM8660 remove flags from SPMI/MPP IRQs
    - ARM: cpuidle: Fix error return code
    - Bluetooth: Add a new 04ca:3011 QCA_ROME device
    - ima: use file_dentry()
    - tpm: fix a race condition in tpm2_unseal_trusted()
    - tpm_crb: fix crb_req_canceled behavior
    - Linux 4.8.2

  * Bluetooth 04ca:3011 [Asus Aspire V3-371] doesn't work (LP: #1535802)
    - Bluetooth: Add a new 04ca:3011 QCA_ROME device

 -- Luis Henriques <luis.henriq...@canonical.com>  Fri, 11 Nov 2016
10:30:54 +0000

** Changed in: linux (Ubuntu Yakkety)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1632045

Title:
  KVM: PPC: Book3S HV: Migrate pinned pages out of CMA

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Xenial:
  Fix Released
Status in linux source package in Yakkety:
  Fix Released
Status in linux source package in Zesty:
  Fix Released

Bug description:
  ---Problem Description---
  https://github.com/open-power/supermicro-openpower/issues/59

  SW/HW Configuration

  PNOR image version: 5/3/2016
  BMC image version: 0.25
  CPLD Version: B2.81.01
  Host OS version: Ubuntu 16.04 LTS
  UbuntuKVM Guest OS version: Ubuntu 14.04.4 LTS
  HTX version: 394
  Processor: 00UL865 * 2
  Memory: SK hynix 16GB 2Rx4 PC4-2133P * 16
  Summary of Issue

  Two UbuntuKVM guests are each configured with 8 processors, 64 GB of
  memory, 1 disk of 128 GB, 1 network interface, and 1 GPU (pass-
  through'd from the Host OS's K80).

  The two guests are each put into a Create/Destroy loop, with HTX
  running on each of the guests (NOT HOST) in between its creation and
  destruction. The mdt.bu profile is used, and the processors, memory,
  and the GPU are put under load. The HTX session lasts 9 minutes.

  While this is running, the amount of available memory (free memory) in
  the Host OS will slowly decrease, and this can continue until the
  point wherein there's no more free memory for the Host OS to do
  anything, including creating the two VM guests. It seems to be that
  after every cycle, a small portion of the memory that was allocated to
  the VM guest does not get released back to the Host OS, and
  eventually, this can and will add up to take up all the available
  memory in the Host OS.

  At some point, the VM guest(s) might get disconnected and will display
  the following error:

      error: Disconnected from qemu:///system due to I/O error

      error: One or more references were leaked after disconnect from
  the hypervisor

  Then, when the Host OS tries to start the VM guest again, the
  following error shows up:

      error: Failed to create domain from guest2_trusty.xml
      error: internal error: early end of file from monitor, possible problem: 
Unexpected error in spapr_alloc_htab() at 
/build/qemu-c3ZrbA/qemu-2.5+dfsg/hw/ppc/spapr.c:1030:
      2016-05-23T16:18:16.871549Z qemu-system-ppc64: Failed to allocate HTAB of 
requested size, try with smaller maxmem

  The Host OS syslog, as seen HERE, also contains quite some errors.
  To just list a few:

      May 13 20:27:44 191-136 kernel: [36827.151228] alloc_contig_range: 
[3fb800, 3fd8f8) PFNs busy
      May 13 20:27:44 191-136 kernel: [36827.151291] alloc_contig_range: 
[3fb800, 3fd8fc) PFNs busy
      May 13 20:27:44 191-136 libvirtd[19263]: *** Error in 
`/usr/sbin/libvirtd': realloc(): invalid next size: 0x000001000a780400 ***
      May 13 20:27:44 191-136 libvirtd[19263]: ======= Backtrace: =========
      May 13 20:27:44 191-136 libvirtd[19263]: 
/lib/powerpc64le-linux-gnu/libc.so.6(+0x8720c)[0x3fffaf6a720c]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/lib/powerpc64le-linux-gnu/libc.so.6(+0x96f70)[0x3fffaf6b6f70]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/lib/powerpc64le-linux-gnu/libc.so.6(realloc+0x16c)[0x3fffaf6b87fc]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/lib/powerpc64le-linux-gnu/libvirt.so.0(virReallocN+0x68)[0x3fffaf90ccc8]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so(+0x8ef6c)[0x3fff9346ef6c]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so(+0xa826c)[0x3fff9348826c]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/lib/powerpc64le-linux-gnu/libvirt.so.0(virEventPollRunOnce+0x8b4)[0x3fffaf9332b4]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/lib/powerpc64le-linux-gnu/libvirt.so.0(virEventRunDefaultImpl+0x54)[0x3fffaf931334]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/lib/powerpc64le-linux-gnu/libvirt.so.0(virNetDaemonRun+0x1f0)[0x3fffafad2f70]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/usr/sbin/libvirtd(+0x15d74)[0x52e45d74]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/lib/powerpc64le-linux-gnu/libc.so.6(+0x2319c)[0x3fffaf64319c]
      May 13 20:27:44 191-136 libvirtd[19263]: 
/lib/powerpc64le-linux-gnu/libc.so.6(__libc_start_main+0xb8)[0x3fffaf6433b8]
      May 13 20:27:44 191-136 libvirtd[19263]: ======= Memory map: ========
      May 13 20:27:44 191-136 libvirtd[19263]: 52e30000-52eb0000 r-xp 00000000 
08:02 65540510 /usr/sbin/libvirtd
      May 13 20:27:44 191-136 libvirtd[19263]: 52ec0000-52ed0000 r--p 00080000 
08:02 65540510 /usr/sbin/libvirtd
      May 13 20:27:44 191-136 libvirtd[19263]: 52ed0000-52ee0000 rw-p 00090000 
08:02 65540510 /usr/sbin/libvirtd
      May 13 20:27:44 191-136 libvirtd[19263]: 1000a730000-1000a830000 rw-p 
00000000 00:00 0 [heap]
      May 13 20:27:44 191-136 libvirtd[19263]: 3fff60000000-3fff60030000 rw-p 
00000000 00:00 0
      May 13 20:27:44 191-136 libvirtd[19263]: 3fff60030000-3fff64000000 ---p 
00000000 00:00 0
      May 13 20:50:33 191-136 kernel: [38196.502926] audit: type=1400 
audit(1463197833.497:4025): apparmor="DENIED" operation="open" 
profile="libvirt-d3ade785-c1c1-4519-b123-9d28704c2ad4" 
name="/sys/devices/pci0003:00/0003:00:00.0/0003:01:00.0/0003:02:08.0/0003:03:00.0/devspec"
 pid=24887 comm="qemu-system-ppc" requested_mask="r" denied_mask="r" fsuid=110 
ouid=0
      May 13 20:50:33 191-136 virtlogd[3727]: End of file while reading data: 
Input/output error

  Notes

  Host OS's free memory will also slowly decrease when HTX is NOT
  executed at all on the guests between guest Create/Destory, but at a
  much slower pace, and VM guests can also still fail to be created,
  with the same error message, and even though the Host OS might still
  have plenty of free memory left:

      error: Failed to create domain from guest2_trusty.xml
      error: internal error: early end of file from monitor, possible problem: 
Unexpected error in spapr_alloc_htab() at 
/build/qemu-c3ZrbA/qemu-2.5+dfsg/hw/ppc/spapr.c:1030:
      2016-05-23T16:18:16.871549Z qemu-system-ppc64: Failed to allocate HTAB of 
requested size, try with smaller maxmem

  However, this happened only once so far, and after it completed about 3924 
Create/Destroy cycles.
  The other guest that was running the same test concurrently did NOT have any 
issues and went on to 4,600+ cycles.

   
  ---uname output---
  Host OS version: Ubuntu 16.04 LTS UbuntuKVM Guest OS version: Ubuntu 14.04.4 
LTS
   
  Machine Type = SMC 
   
  I do not see any actual information about using all memory, here are:

  1. "Failed to allocate HTAB" - happens because we run out of
  _contiguous_ chunks of CMA memory, not just any RAM

  2. libvirtd[19263]: *** Error in `/usr/sbin/libvirtd': realloc():
  invalid next size: 0x000001000a780400 *** - this looks more like
  memory corruption than insufficient memory

  I suggest collecting statistics using something like this shell
  script:

  # !/bin/sh

  while [ true ]
  do
   <here you put guest start/stop>
   grep -e "\(CmaFree:\|MemFree:\)" /proc/meminfo | paste -d "\t" - - >> 
mymemorylog
  done

  and attaching the resulting mymemorylog to this bug. Also it would be
  interesting to know if the issue can be reproduced without loaded
  NVIDIA driver in the guest or even without passing NVIDIA GPU to the
  guest. Meanwhile I am running my tests and see if I can get this
  behavior.

  Ok, located the problem, will post a patch tomorrow to the public
  lists.

  Basically when QEMU dies, it does unpin DMA pages when its memory
  context is destroyed which was expected to happen when QEMU process
  exits but actually it may happen lot later if some kernel thread was
  executed on this same context and referenced it so until it was
  scheduled again, the very last memory context release would not
  happen.

  == Comment: #15 - Leonardo Augusto Guimaraes Garcia <lagar...@br.ibm.com> - 
2016-08-24 08:15:00 ==
  (In reply to comment #14)
  > On my host, I have 10 guests running. Sum of all 10 guests memory will come
  > up to 69GB.

  Ok... So, this is quite different from what is in the bug description.
  In the bug description, I read:

  "Two UbuntuKVM guests are each configured with 8 processors, 64 GB of
  memory, 1 disk of 128 GB, 1 network interface, and 1 GPU (pass-
  through'd from the Host OS's K80).

  The two guests are each put into a Create/Destroy loop, with HTX
  running on each of the guests (NOT HOST) in between its creation and
  destruction. The mdt.bu profile is used, and the processors, memory,
  and the GPU are put under load. The HTX session lasts 9 minutes."

  What is the scenario being worked on this bug? I suggest you open a
  new bug for your issue if needed and we continue to investigate the
  original issue here.

  > 
  > I am trying to bring up 11th guest which is having 5Gb memory and it fails:
  > 
  > root@lotkvm:~# virsh start --console lotg12
  > error: Failed to start domain lotg12
  > error: internal error: process exited while connecting to monitor:
  > 5076802818bda30000000000003f2,format=raw,if=none,id=drive-virtio-disk0
  > -device
  > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,
  > id=virtio-disk0,bootindex=1 -drive
  > file=/dev/disk/by-id/wwn-0x6005076802818bda30000000000003f4,format=raw,
  > if=none,id=drive-virtio-disk1 -device
  > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,
  > id=virtio-disk1 -netdev tap,fd=41,id=hostnet0 -device
  > virtio-net,netdev=hostnet0,id=net0,mac=52:54:00:9b:53:77,bus=pci.0,addr=0x1,
  > bootindex=2 -chardev pty,id=charserial0 -device
  > spapr-vty,chardev=charserial0,reg=0x30000000 -device
  > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 -msg timestamp=on
  > 2016-08-24T12:00:50.375315Z qemu-system-ppc64: Failed to allocate KVM HPT of
  > order 26 (try smaller maxmem?): Cannot allocate memory

  This is not because you don't have available memory. This is because
  you don't have CMA memory available. Please, take a look at LTC bug
  145072 comment 5 and subsequent comments.

  > 
  > 
  > I waited for an hour and retried guest start.. It fails still..
  > 
  > Current memory on host :
  > -----------
  > root@lotkvm:~# free -g
  >               total        used        free      shared  buff/cache  
  > available
  > Mem:            127          73           0           0          53         
  > 53
  > Swap:            11           4           6

  I think there are actually two separate problems here.

  (A) Pages in the CMA zone are getting pinned and causing fragmentation
  of the CMA zone, leading to the messages saying "qemu-system-ppc64:
  Failed to allocate HTAB of requested size, try with smaller maxmem".
  This happens because the guest is doing PCI passthrough with DDW
  enabled and hence pins all its memory. If guest pages happen to be
  allocated in the CMA zone, they get pinned there and then can't be
  moved for a future HPT allocation.

  Balbir was looking at the possibility of moving the pages out of the
  CMA zone before pinning them, but this work was dependent on some
  upstream refactoring which seems to be stalled.

  (B) On VM destruction, the pages are not getting unpinned and freed in
  a timely fashion. Alexey debugged this issue and has posted two
  patches to fix the problem: "powerpc/iommu: Stop using @current in
  mm_iommu_xxx" and "powerpc/mm/iommu: Put pages on process exit". These
  patches touch two maintainers' areas (powerpc and vfio) and hence need
  two maintainers' concurrence, and thus haven't gone anywhere yet.

  (Of course, issue (B) exacerbates issue (A).)

  Upon moving host and guests to 4.8 kernel. Still almost whole memory
  is getting used on host.

  Any updates here, any patches that we can expect soon ? Please let us
  know..

  Thanks,
  Manju

  
  4.8 does not yet have the fix for the pinned page migrations. I am not sure 
of the status of https://patchwork.kernel.org/patch/9238861/ upstream. I 
checked to see if I could find it in any git tree, but could not. I suspect we 
need this fix in first.

  > Balbir - Is this fixed in the latest 4.8 kernel out today?
  My patch is in powerpc-next

  
https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?h=next&id=2e5bbb5461f138cac631fe21b4ad956feabfba22

  Should hit 4.9 and we can backport it. I am also trying to work on
  improvements to the patch for the future. Not sure of aik's patch
  status

  Balbir Singh.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1632045/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~group.of.nepali.translators
Post to     : group.of.nepali.translators@lists.launchpad.net
Unsubscribe : https://launchpad.net/~group.of.nepali.translators
More help   : https://help.launchpad.net/ListHelp

Reply via email to