• Mihai Caraman's avatar
    KVM: PPC: e500mc: Add support for single threaded vcpus on e6500 core · 188e267c
    Mihai Caraman authored
    ePAPR represents hardware threads as cpu node properties in device tree.
    So with existing QEMU, hardware threads are simply exposed as vcpus with
    one hardware thread.
    
    The e6500 core shares TLBs between hardware threads. Without tlb write
    conditional instruction, the Linux kernel uses per core mechanisms to
    protect against duplicate TLB entries.
    
    The guest is unable to detect real siblings threads, so it can't use the
    TLB protection mechanism. An alternative solution is to use the hypervisor
    to allocate different lpids to guest's vcpus that runs simultaneous on real
    siblings threads. On systems with two threads per core this patch halves
    the size of the lpid pool that the allocator sees and use two lpids per VM.
    Use even numbers to speedup vcpu lpid computation with consecutive lpids
    per VM: vm1 will use lpids 2 and 3, vm2 lpids 4 and 5, and so on.
    Signed-off-by: default avatarMihai Caraman <mihai.caraman@freescale.com>
    [agraf: fix spelling]
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    188e267c
kvm_booke.h 2.77 KB