22 Jun, 2020

1 commit

  • [ Upstream commit f7d31e65368aeef973fab788aa22c4f1d5a6af66 ]

    The problem the patch is trying to address is the fact that 'struct
    kvm_hyperv_exit' has different layout on when compiling in 32 and 64 bit
    modes.

    In 64-bit mode the default alignment boundary is 64 bits thus
    forcing extra gaps after 'type' and 'msr' but in 32-bit mode the
    boundary is at 32 bits thus no extra gaps.

    This is an issue as even when the kernel is 64 bit, the userspace using
    the interface can be both 32 and 64 bit but the same 32 bit userspace has
    to work with 32 bit kernel.

    The issue is fixed by forcing the 64 bit layout, this leads to ABI
    change for 32 bit builds and while we are obviously breaking '32 bit
    userspace with 32 bit kernel' case, we're fixing the '32 bit userspace
    with 64 bit kernel' one.

    As the interface has no (known) users and 32 bit KVM is rather baroque
    nowadays, this seems like a reasonable decision.

    Reviewed-by: Vitaly Kuznetsov
    Signed-off-by: Jon Doron
    Message-Id:
    Reviewed-by: Roman Kagan
    Signed-off-by: Paolo Bonzini
    Signed-off-by: Sasha Levin

    Jon Doron
     

24 Sep, 2019

1 commit

  • Hyper-V direct tlb flush function should be enabled for
    guest that only uses Hyper-V hypercall. User space
    hypervisor(e.g, Qemu) can disable KVM identification in
    CPUID and just exposes Hyper-V identification to make
    sure the precondition. Add new KVM capability KVM_CAP_
    HYPERV_DIRECT_TLBFLUSH for user space to enable Hyper-V
    direct tlb function and this function is default to be
    disabled in KVM.

    Signed-off-by: Tianyu Lan
    Signed-off-by: Paolo Bonzini

    Tianyu Lan
     

12 Sep, 2019

1 commit


11 Sep, 2019

2 commits


10 Sep, 2019

1 commit


09 Sep, 2019

1 commit

  • While parts of the VGIC support a large number of vcpus (we
    bravely allow up to 512), other parts are more limited.

    One of these limits is visible in the KVM_IRQ_LINE ioctl, which
    only allows 256 vcpus to be signalled when using the CPU or PPI
    types. Unfortunately, we've cornered ourselves badly by allocating
    all the bits in the irq field.

    Since the irq_type subfield (8 bit wide) is currently only taking
    the values 0, 1 and 2 (and we have been careful not to allow anything
    else), let's reduce this field to only 4 bits, and allocate the
    remaining 4 bits to a vcpu2_index, which acts as a multiplier:

    vcpu_id = 256 * vcpu2_index + vcpu_index

    With that, and a new capability (KVM_CAP_ARM_IRQ_LINE_LAYOUT_2)
    allowing this to be discovered, it becomes possible to inject
    PPIs to up to 4096 vcpus. But please just don't.

    Whilst we're there, add a clarification about the use of KVM_IRQ_LINE
    on arm, which is not completely conditionned by KVM_CAP_IRQCHIP.

    Reported-by: Zenghui Yu
    Reviewed-by: Eric Auger
    Reviewed-by: Zenghui Yu
    Signed-off-by: Marc Zyngier

    Marc Zyngier
     

29 Aug, 2019

1 commit

  • Explicitly specify the valid ranges for size and ar, and reword
    buf requirements a bit.

    Signed-off-by: Cornelia Huck
    Reviewed-by: Thomas Huth
    Reviewed-by: David Hildenbrand
    Link: https://lkml.kernel.org/r/20190829124746.28665-1-cohuck@redhat.com
    Signed-off-by: Christian Borntraeger

    Cornelia Huck
     

22 Aug, 2019

1 commit


27 Jul, 2019

1 commit

  • Pull documentation fixes from Jonathan Corbet:
    "This is mostly a set of follow-on fixes from Mauro fixing various
    fallout from the massive RST conversion; a few other small fixes as
    well"

    * tag 'docs-5.3-1' of git://git.lwn.net/linux: (21 commits)
    docs: phy: Drop duplicate 'be made'
    doc:it_IT: translations in process/
    docs/vm: transhuge: fix typo in madvise reference
    doc:it_IT: rephrase statement
    doc:it_IT: align translation to mainline
    docs: load_config.py: ensure subdirs end with "/"
    docs: virtual: add it to the documentation body
    docs: remove extra conf.py files
    docs: load_config.py: avoid needing a conf.py just due to LaTeX docs
    scripts/sphinx-pre-install: seek for Noto CJK fonts for pdf output
    scripts/sphinx-pre-install: cleanup Gentoo checks
    scripts/sphinx-pre-install: fix latexmk dependencies
    scripts/sphinx-pre-install: don't use LaTeX with CentOS 7
    scripts/sphinx-pre-install: fix script for RHEL/CentOS
    docs: conf.py: only use CJK if the font is available
    docs: conf.py: add CJK package needed by translations
    docs: pdf: add all Documentation/*/index.rst to PDF output
    docs: fix broken doc references due to renames
    docs: power: add it to to the main documentation index
    docs: powerpc: convert docs to ReST and rename to *.rst
    ...

    Linus Torvalds
     

24 Jul, 2019

1 commit

  • Renaming docs seems to be en vogue at the moment, so fix on of the
    grossly misnamed directories. We usually never use "virtual" as
    a shortcut for virtualization in the kernel, but always virt,
    as seen in the virt/ top-level directory. Fix up the documentation
    to match that.

    Fixes: ed16648eb5b8 ("Move kvm, uml, and lguest subdirectories under a common "virtual" directory, I.E:")
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Paolo Bonzini

    Christoph Hellwig