← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1729412] Re: TLB updates from 4.14 for linux-azure

 

** Also affects: linux-azure (Ubuntu Xenial)
   Importance: Undecided
       Status: New

-- 
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/1729412

Title:
  TLB updates from 4.14 for linux-azure

Status in linux-azure package in Ubuntu:
  In Progress
Status in linux-azure source package in Xenial:
  New

Bug description:
  This request is based on a patch series from linux-next:

  commit ab7ff471aa5db670197070760f022622793da7e5
  Author: Marcelo Henrique Cerri <marcelo.cerri@xxxxxxxxxxxxx>
  Date:   Thu Oct 5 10:34:29 2017 -0300

      x86/hyperv: Fix hypercalls with extended CPU ranges for TLB
  flushing

      Do not consider the fixed size of hv_vp_set when passing the variable
      header size to hv_do_rep_hypercall().

      The Hyper-V hypervisor specification states that for a hypercall with a
      variable header only the size of the variable portion should be supplied
      via the input control.

      For HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX/LIST_EX calls that means the
      fixed portion of hv_vp_set should not be considered.

      That fixes random failures of some applications that are unexpectedly
      killed with SIGBUS or SIGSEGV.

  commit 60d73a7c96601434dfdb56d5b9167ff3b850d8d7
  Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
  Date:   Thu Oct 5 13:39:24 2017 +0200

      x86/hyperv: Don't use percpu areas for pcpu_flush/pcpu_flush_ex
  structures

      hv_do_hypercall() does virt_to_phys() translation and with some configs
      (CONFIG_SLAB) this doesn't work for percpu areas, we pass wrong memory to
      hypervisor and get #GP. We could use working slow_virt_to_phys() instead
      but doing so kills the performance.

      Move pcpu_flush/pcpu_flush_ex structures out of percpu areas and
      allocate memory on first call. The additional level of indirection gives
      us a small performance penalty, in future we may consider introducing
      hypercall functions which avoid virt_to_phys() conversion and cache
      physical addresses of pcpu_flush/pcpu_flush_ex structures somewhere.

  commit a3b7424392924e778b608e30ee321f7b10cc94b8
  Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
  Date:   Fri Oct 6 17:48:54 2017 +0200

      x86/hyperv: Clear vCPU banks between calls to avoid flushing
  unneeded vCPUs

      hv_flush_pcpu_ex structures are not cleared between calls for performance
      reasons (they're variable size up to PAGE_SIZE each) but we must clear
      hv_vp_set.bank_contents part of it to avoid flushing unneeded vCPUs. The
      rest of the structure is formed correctly.

      To do the clearing in an efficient way stash the maximum possible vCPU
      number (this may differ from Linux CPU id).

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