19 Aug, 2014

2 commits

  • As a generic function, deassign_guest_irq() assumes it can be called
    even if assign_guest_irq() is not be called successfully (which can be
    triggered by ioctl from user mode, indirectly).

    So for assign_guest_irq() failure process, need set 'dev->irq_source_id'
    to -1 after free 'dev->irq_source_id', or deassign_guest_irq() may free
    it again.

    Signed-off-by: Chen Gang
    Signed-off-by: Paolo Bonzini

    Chen Gang
     
  • The third parameter of kvm_iommu_put_pages is wrong,
    It should be 'gfn - slot->base_gfn'.

    By making gfn very large, malicious guest or userspace can cause kvm to
    go to this error path, and subsequently to pass a huge value as size.
    Alternatively if gfn is small, then pages would be pinned but never
    unpinned, causing host memory leak and local DOS.

    Passing a reasonable but large value could be the most dangerous case,
    because it would unpin a page that should have stayed pinned, and thus
    allow the device to DMA into arbitrary memory. However, this cannot
    happen because of the condition that can trigger the error:

    - out of memory (where you can't allocate even a single page)
    should not be possible for the attacker to trigger

    - when exceeding the iommu's address space, guest pages after gfn
    will also exceed the iommu's address space, and inside
    kvm_iommu_put_pages() the iommu_iova_to_phys() will fail. The
    page thus would not be unpinned at all.

    Reported-by: Jack Morgenstein
    Cc: stable@vger.kernel.org
    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Paolo Bonzini

    Michael S. Tsirkin
     

06 Aug, 2014

1 commit

  • Commits e4d57e1ee1ab (KVM: Move irq notifier implementation into
    eventfd.c, 2014-06-30) included the irq notifier code unconditionally
    in eventfd.c, while it was under CONFIG_HAVE_KVM_IRQCHIP before.

    Similarly, commit 297e21053a52 (KVM: Give IRQFD its own separate enabling
    Kconfig option, 2014-06-30) moved code from CONFIG_HAVE_IRQ_ROUTING
    to CONFIG_HAVE_KVM_IRQFD but forgot to move the pieces that used to be
    under CONFIG_HAVE_KVM_IRQCHIP.

    Together, this broke compilation without CONFIG_KVM_XICS. Fix by adding
    or changing the #ifdefs so that they point at CONFIG_HAVE_KVM_IRQFD.

    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     

05 Aug, 2014

8 commits

  • Currently, the IRQFD code is conditional on CONFIG_HAVE_KVM_IRQ_ROUTING.
    So that we can have the IRQFD code compiled in without having the
    IRQ routing code, this creates a new CONFIG_HAVE_KVM_IRQFD, makes
    the IRQFD code conditional on it instead of CONFIG_HAVE_KVM_IRQ_ROUTING,
    and makes all the platforms that currently select HAVE_KVM_IRQ_ROUTING
    also select HAVE_KVM_IRQFD.

    Signed-off-by: Paul Mackerras
    Tested-by: Eric Auger
    Tested-by: Cornelia Huck
    Signed-off-by: Paolo Bonzini

    Paul Mackerras
     
  • This moves the functions kvm_irq_has_notifier(), kvm_notify_acked_irq(),
    kvm_register_irq_ack_notifier() and kvm_unregister_irq_ack_notifier()
    from irqchip.c to eventfd.c. The reason for doing this is that those
    functions are used in connection with IRQFDs, which are implemented in
    eventfd.c. In future we will want to use IRQFDs on platforms that
    don't implement the GSI routing implemented in irqchip.c, so we won't
    be compiling in irqchip.c, but we still need the irq notifiers. The
    implementation is unchanged.

    Signed-off-by: Paul Mackerras
    Tested-by: Eric Auger
    Tested-by: Cornelia Huck
    Signed-off-by: Paolo Bonzini

    Paul Mackerras
     
  • Now that struct _irqfd does not keep a reference to storage pointed
    to by the irq_routing field of struct kvm, we can move the statement
    that updates it out from under the irqfds.lock and put it in
    kvm_set_irq_routing() instead. That means we then have to take a
    srcu_read_lock on kvm->irq_srcu around the irqfd_update call in
    kvm_irqfd_assign(), since holding the kvm->irqfds.lock no longer
    ensures that that the routing can't change.

    Combined with changing kvm_irq_map_gsi() and kvm_irq_map_chip_pin()
    to take a struct kvm * argument instead of the pointer to the routing
    table, this allows us to to move all references to kvm->irq_routing
    into irqchip.c. That in turn allows us to move the definition of the
    kvm_irq_routing_table struct into irqchip.c as well.

    Signed-off-by: Paul Mackerras
    Tested-by: Eric Auger
    Tested-by: Cornelia Huck
    Signed-off-by: Paolo Bonzini

    Paul Mackerras
     
  • This provides accessor functions for the KVM interrupt mappings, in
    order to reduce the amount of code that accesses the fields of the
    kvm_irq_routing_table struct, and restrict that code to one file,
    virt/kvm/irqchip.c. The new functions are kvm_irq_map_gsi(), which
    maps from a global interrupt number to a set of IRQ routing entries,
    and kvm_irq_map_chip_pin, which maps from IRQ chip and pin numbers to
    a global interrupt number.

    This also moves the update of kvm_irq_routing_table::chip[][]
    into irqchip.c, out of the various kvm_set_routing_entry
    implementations. That means that none of the kvm_set_routing_entry
    implementations need the kvm_irq_routing_table argument anymore,
    so this removes it.

    This does not change any locking or data lifetime rules.

    Signed-off-by: Paul Mackerras
    Tested-by: Eric Auger
    Tested-by: Cornelia Huck
    Signed-off-by: Paolo Bonzini

    Paul Mackerras
     
  • This makes the irqfd code keep a copy of the irq routing table entry
    for each irqfd, rather than a reference to the copy in the actual
    irq routing table maintained in kvm/virt/irqchip.c. This will enable
    us to change the routing table structure in future, or even not have a
    routing table at all on some platforms.

    The synchronization that was previously achieved using srcu_dereference
    on the read side is now achieved using a seqcount_t structure. That
    ensures that we don't get a halfway-updated copy of the structure if
    we read it while another thread is updating it.

    We still use srcu_read_lock/unlock around the read side so that when
    changing the routing table we can be sure that after calling
    synchronize_srcu, nothing will be using the old routing.

    Signed-off-by: Paul Mackerras
    Tested-by: Eric Auger
    Tested-by: Cornelia Huck
    Signed-off-by: Paolo Bonzini

    Paul Mackerras
     
  • Patch queue for ppc - 2014-08-01

    Highlights in this release include:

    - BookE: Rework instruction fetch, not racy anymore now
    - BookE HV: Fix ONE_REG accessors for some in-hardware registers
    - Book3S: Good number of LE host fixes, enable HV on LE
    - Book3S: Some misc bug fixes
    - Book3S HV: Add in-guest debug support
    - Book3S HV: Preload cache lines on context switch
    - Remove 440 support

    Alexander Graf (31):
    KVM: PPC: Book3s PR: Disable AIL mode with OPAL
    KVM: PPC: Book3s HV: Fix tlbie compile error
    KVM: PPC: Book3S PR: Handle hyp doorbell exits
    KVM: PPC: Book3S PR: Fix ABIv2 on LE
    KVM: PPC: Book3S PR: Fix sparse endian checks
    PPC: Add asm helpers for BE 32bit load/store
    KVM: PPC: Book3S HV: Make HTAB code LE host aware
    KVM: PPC: Book3S HV: Access guest VPA in BE
    KVM: PPC: Book3S HV: Access host lppaca and shadow slb in BE
    KVM: PPC: Book3S HV: Access XICS in BE
    KVM: PPC: Book3S HV: Fix ABIv2 on LE
    KVM: PPC: Book3S HV: Enable for little endian hosts
    KVM: PPC: Book3S: Move vcore definition to end of kvm_arch struct
    KVM: PPC: Deflect page write faults properly in kvmppc_st
    KVM: PPC: Book3S: Stop PTE lookup on write errors
    KVM: PPC: Book3S: Add hack for split real mode
    KVM: PPC: Book3S: Make magic page properly 4k mappable
    KVM: PPC: Remove 440 support
    KVM: Rename and add argument to check_extension
    KVM: Allow KVM_CHECK_EXTENSION on the vm fd
    KVM: PPC: Book3S: Provide different CAPs based on HV or PR mode
    KVM: PPC: Implement kvmppc_xlate for all targets
    KVM: PPC: Move kvmppc_ld/st to common code
    KVM: PPC: Remove kvmppc_bad_hva()
    KVM: PPC: Use kvm_read_guest in kvmppc_ld
    KVM: PPC: Handle magic page in kvmppc_ld/st
    KVM: PPC: Separate loadstore emulation from priv emulation
    KVM: PPC: Expose helper functions for data/inst faults
    KVM: PPC: Remove DCR handling
    KVM: PPC: HV: Remove generic instruction emulation
    KVM: PPC: PR: Handle FSCR feature deselects

    Alexey Kardashevskiy (1):
    KVM: PPC: Book3S: Fix LPCR one_reg interface

    Aneesh Kumar K.V (4):
    KVM: PPC: BOOK3S: PR: Fix PURR and SPURR emulation
    KVM: PPC: BOOK3S: PR: Emulate virtual timebase register
    KVM: PPC: BOOK3S: PR: Emulate instruction counter
    KVM: PPC: BOOK3S: HV: Update compute_tlbie_rb to handle 16MB base page

    Anton Blanchard (2):
    KVM: PPC: Book3S HV: Fix ABIv2 indirect branch issue
    KVM: PPC: Assembly functions exported to modules need _GLOBAL_TOC()

    Bharat Bhushan (10):
    kvm: ppc: bookehv: Added wrapper macros for shadow registers
    kvm: ppc: booke: Use the shared struct helpers of SRR0 and SRR1
    kvm: ppc: booke: Use the shared struct helpers of SPRN_DEAR
    kvm: ppc: booke: Add shared struct helpers of SPRN_ESR
    kvm: ppc: booke: Use the shared struct helpers for SPRN_SPRG0-7
    kvm: ppc: Add SPRN_EPR get helper function
    kvm: ppc: bookehv: Save restore SPRN_SPRG9 on guest entry exit
    KVM: PPC: Booke-hv: Add one reg interface for SPRG9
    KVM: PPC: Remove comment saying SPRG1 is used for vcpu pointer
    KVM: PPC: BOOKEHV: rename e500hv_spr to bookehv_spr

    Michael Neuling (1):
    KVM: PPC: Book3S HV: Add H_SET_MODE hcall handling

    Mihai Caraman (8):
    KVM: PPC: e500mc: Enhance tlb invalidation condition on vcpu schedule
    KVM: PPC: e500: Fix default tlb for victim hint
    KVM: PPC: e500: Emulate power management control SPR
    KVM: PPC: e500mc: Revert "add load inst fixup"
    KVM: PPC: Book3e: Add TLBSEL/TSIZE defines for MAS0/1
    KVM: PPC: Book3s: Remove kvmppc_read_inst() function
    KVM: PPC: Allow kvmppc_get_last_inst() to fail
    KVM: PPC: Bookehv: Get vcpu's last instruction for emulation

    Paul Mackerras (4):
    KVM: PPC: Book3S: Controls for in-kernel sPAPR hypercall handling
    KVM: PPC: Book3S: Allow only implemented hcalls to be enabled or disabled
    KVM: PPC: Book3S PR: Take SRCU read lock around RTAS kvm_read_guest() call
    KVM: PPC: Book3S: Make kvmppc_ld return a more accurate error indication

    Stewart Smith (2):
    Split out struct kvmppc_vcore creation to separate function
    Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8

    Conflicts:
    Documentation/virtual/kvm/api.txt

    Paolo Bonzini
     
  • KVM/ARM New features for 3.17 include:
    - Fixes and code refactoring for stage2 kvm MMU unmap_range
    - Support unmapping IPAs on deleting memslots for arm and arm64
    - Support MMIO mappings in stage2 faults
    - KVM VGIC v2 emulation on GICv3 hardware
    - Big-Endian support for arm/arm64 (guest and host)
    - Debug Architecture support for arm64 (arm32 is on Christoffer's todo list)

    Conflicts:
    virt/kvm/arm/vgic.c [last minute cherry-pick from 3.17 to 3.16]

    Paolo Bonzini
     
  • Pull KVM changes from Paolo Bonzini:
    "These are the x86, MIPS and s390 changes; PPC and ARM will come in a
    few days.

    MIPS and s390 have little going on this release; just bugfixes, some
    small, some larger.

    The highlights for x86 are nested VMX improvements (Jan Kiszka),
    optimizations for old processor (up to Nehalem, by me and Bandan Das),
    and a lot of x86 emulator bugfixes (Nadav Amit).

    Stephen Rothwell reported a trivial conflict with the tracing branch"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (104 commits)
    x86/kvm: Resolve shadow warnings in macro expansion
    KVM: s390: rework broken SIGP STOP interrupt handling
    KVM: x86: always exit on EOIs for interrupts listed in the IOAPIC redir table
    KVM: vmx: remove duplicate vmx_mpx_supported() prototype
    KVM: s390: Fix memory leak on busy SIGP stop
    x86/kvm: Resolve shadow warning from min macro
    kvm: Resolve missing-field-initializers warnings
    Replace NR_VMX_MSR with its definition
    KVM: x86: Assertions to check no overrun in MSR lists
    KVM: x86: set rflags.rf during fault injection
    KVM: x86: Setting rflags.rf during rep-string emulation
    KVM: x86: DR6/7.RTM cannot be written
    KVM: nVMX: clean up nested_release_vmcs12 and code around it
    KVM: nVMX: fix lifetime issues for vmcs02
    KVM: x86: Defining missing x86 vectors
    KVM: x86: emulator injects #DB when RFLAGS.RF is set
    KVM: x86: Cleanup of rflags.rf cleaning
    KVM: x86: Clear rflags.rf on emulated instructions
    KVM: x86: popf emulation should not change RF
    KVM: x86: Clearing rflags.rf upon skipped emulated instruction
    ...

    Linus Torvalds
     

31 Jul, 2014

2 commits

  • Just like GICv2 was fixed in 63afbe7a0ac1
    (kvm: arm64: vgic: fix hyp panic with 64k pages on juno platform),
    mandate the GICV region to be both aligned on a page boundary and
    its size to be a multiple of page size.

    This prevents a guest from being able to poke at regions where we
    have no idea what is sitting there.

    Signed-off-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Marc Zyngier
     
  • Currently, the EOI exit bitmap (used for APICv) does not include
    interrupts that are masked. However, this can cause a bug that manifests
    as an interrupt storm inside the guest. Alex Williamson reported the
    bug and is the one who really debugged this; I only wrote the patch. :)

    The scenario involves a multi-function PCI device with OHCI and EHCI
    USB functions and an audio function, all assigned to the guest, where
    both USB functions use legacy INTx interrupts.

    As soon as the guest boots, interrupts for these devices turn into an
    interrupt storm in the guest; the host does not see the interrupt storm.
    Basically the EOI path does not work, and the guest continues to see the
    interrupt over and over, even after it attempts to mask it at the APIC.
    The bug is only visible with older kernels (RHEL6.5, based on 2.6.32
    with not many changes in the area of APIC/IOAPIC handling).

    Alex then tried forcing bit 59 (corresponding to the USB functions' IRQ)
    on in the eoi_exit_bitmap and TMR, and things then work. What happens
    is that VFIO asserts IRQ11, then KVM recomputes the EOI exit bitmap.
    It does not have set bit 59 because the RTE was masked, so the IOAPIC
    never sees the EOI and the interrupt continues to fire in the guest.

    My guess was that the guest is masking the interrupt in the redirection
    table in the interrupt routine, i.e. while the interrupt is set in a
    LAPIC's ISR, The simplest fix is to ignore the masking state, we would
    rather have an unnecessary exit rather than a missed IRQ ACK and anyway
    IOAPIC interrupts are not as performance-sensitive as for example MSIs.
    Alex tested this patch and it fixed his bug.

    [Thanks to Alex for his precise description of the problem
    and initial debugging effort. A lot of the text above is
    based on emails exchanged with him.]

    Reported-by: Alex Williamson
    Tested-by: Alex Williamson
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     

30 Jul, 2014

1 commit

  • If the physical address of GICV isn't page-aligned, then we end up
    creating a stage-2 mapping of the page containing it, which causes us to
    map neighbouring memory locations directly into the guest.

    As an example, consider a platform with GICV at physical 0x2c02f000
    running a 64k-page host kernel. If qemu maps this into the guest at
    0x80010000, then guest physical addresses 0x80010000 - 0x8001efff will
    map host physical region 0x2c020000 - 0x2c02efff. Accesses to these
    physical regions may cause UNPREDICTABLE behaviour, for example, on the
    Juno platform this will cause an SError exception to EL3, which brings
    down the entire physical CPU resulting in RCU stalls / HYP panics / host
    crashing / wasted weeks of debugging.

    SBSA recommends that systems alias the 4k GICV across the bounding 64k
    region, in which case GICV physical could be described as 0x2c020000 in
    the above scenario.

    This patch fixes the problem by failing the vgic probe if the physical
    base address or the size of GICV aren't page-aligned. Note that this
    generated a warning in dmesg about freeing enabled IRQs, so I had to
    move the IRQ enabling later in the probe.

    Cc: Christoffer Dall
    Cc: Marc Zyngier
    Cc: Gleb Natapov
    Cc: Paolo Bonzini
    Cc: Joel Schopp
    Cc: Don Dutile
    Acked-by: Peter Maydell
    Acked-by: Joel Schopp
    Acked-by: Marc Zyngier
    Signed-off-by: Will Deacon
    Signed-off-by: Christoffer Dall

    Will Deacon
     

28 Jul, 2014

2 commits

  • The KVM_CHECK_EXTENSION is only available on the kvm fd today. Unfortunately
    on PPC some of the capabilities change depending on the way a VM was created.

    So instead we need a way to expose capabilities as VM ioctl, so that we can
    see which VM type we're using (HV or PR). To enable this, add the
    KVM_CHECK_EXTENSION ioctl to our vm ioctl portfolio.

    Signed-off-by: Alexander Graf
    Acked-by: Paolo Bonzini

    Alexander Graf
     
  • In preparation to make the check_extension function available to VM scope
    we add a struct kvm * argument to the function header and rename the function
    accordingly. It will still be called from the /dev/kvm fd, but with a NULL
    argument for struct kvm *.

    Signed-off-by: Alexander Graf
    Acked-by: Paolo Bonzini

    Alexander Graf
     

25 Jul, 2014

1 commit


11 Jul, 2014

16 commits


13 Jun, 2014

1 commit

  • Pull more scheduler updates from Ingo Molnar:
    "Second round of scheduler changes:
    - try-to-wakeup and IPI reduction speedups, from Andy Lutomirski
    - continued power scheduling cleanups and refactorings, from Nicolas
    Pitre
    - misc fixes and enhancements"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/deadline: Delete extraneous extern for to_ratio()
    sched/idle: Optimize try-to-wake-up IPI
    sched/idle: Simplify wake_up_idle_cpu()
    sched/idle: Clear polling before descheduling the idle thread
    sched, trace: Add a tracepoint for IPI-less remote wakeups
    cpuidle: Set polling in poll_idle
    sched: Remove redundant assignment to "rt_rq" in update_curr_rt(...)
    sched: Rename capacity related flags
    sched: Final power vs. capacity cleanups
    sched: Remove remaining dubious usage of "power"
    sched: Let 'struct sched_group_power' care about CPU capacity
    sched/fair: Disambiguate existing/remaining "capacity" usage
    sched/fair: Change "has_capacity" to "has_free_capacity"
    sched/fair: Remove "power" from 'struct numa_stats'
    sched: Fix signedness bug in yield_to()
    sched/fair: Use time_after() in record_wakee()
    sched/balancing: Reduce the rate of needless idle load balancing
    sched/fair: Fix unlocked reads of some cfs_b->quota/period

    Linus Torvalds
     

05 Jun, 2014

1 commit

  • yield_to() is supposed to return -ESRCH if there is no task to
    yield to, but because the type is bool that is the same as returning
    true.

    The only place I see which cares is kvm_vcpu_on_spin().

    Signed-off-by: Dan Carpenter
    Reviewed-by: Raghavendra
    Signed-off-by: Peter Zijlstra
    Cc: Gleb Natapov
    Cc: Linus Torvalds
    Cc: Paolo Bonzini
    Cc: kvm@vger.kernel.org
    Link: http://lkml.kernel.org/r/20140523102042.GA7267@mwanda
    Signed-off-by: Ingo Molnar

    Dan Carpenter
     

04 Jun, 2014

1 commit

  • Pull KVM updates from Paolo Bonzini:
    "At over 200 commits, covering almost all supported architectures, this
    was a pretty active cycle for KVM. Changes include:

    - a lot of s390 changes: optimizations, support for migration, GDB
    support and more

    - ARM changes are pretty small: support for the PSCI 0.2 hypercall
    interface on both the guest and the host (the latter acked by
    Catalin)

    - initial POWER8 and little-endian host support

    - support for running u-boot on embedded POWER targets

    - pretty large changes to MIPS too, completing the userspace
    interface and improving the handling of virtualized timer hardware

    - for x86, a larger set of changes is scheduled for 3.17. Still, we
    have a few emulator bugfixes and support for running nested
    fully-virtualized Xen guests (para-virtualized Xen guests have
    always worked). And some optimizations too.

    The only missing architecture here is ia64. It's not a coincidence
    that support for KVM on ia64 is scheduled for removal in 3.17"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (203 commits)
    KVM: add missing cleanup_srcu_struct
    KVM: PPC: Book3S PR: Rework SLB switching code
    KVM: PPC: Book3S PR: Use SLB entry 0
    KVM: PPC: Book3S HV: Fix machine check delivery to guest
    KVM: PPC: Book3S HV: Work around POWER8 performance monitor bugs
    KVM: PPC: Book3S HV: Make sure we don't miss dirty pages
    KVM: PPC: Book3S HV: Fix dirty map for hugepages
    KVM: PPC: Book3S HV: Put huge-page HPTEs in rmap chain for base address
    KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates()
    KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number
    KVM: PPC: Book3S: Add ONE_REG register names that were missed
    KVM: PPC: Add CAP to indicate hcall fixes
    KVM: PPC: MPIC: Reset IRQ source private members
    KVM: PPC: Graciously fail broken LE hypercalls
    PPC: ePAPR: Fix hypercall on LE guest
    KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler
    KVM: PPC: BOOK3S: Always use the saved DAR value
    PPC: KVM: Make NX bit available with magic page
    KVM: PPC: Disable NX for old magic page using guests
    KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest
    ...

    Linus Torvalds
     

03 Jun, 2014

1 commit


05 May, 2014

1 commit

  • When starting lots of dataplane devices the bootup takes very long on
    Christian's s390 with irqfd patches. With larger setups he is even
    able to trigger some timeouts in some components. Turns out that the
    KVM_SET_GSI_ROUTING ioctl takes very long (strace claims up to 0.1 sec)
    when having multiple CPUs. This is caused by the synchronize_rcu and
    the HZ=100 of s390. By changing the code to use a private srcu we can
    speed things up. This patch reduces the boot time till mounting root
    from 8 to 2 seconds on my s390 guest with 100 disks.

    Uses of hlist_for_each_entry_rcu, hlist_add_head_rcu, hlist_del_init_rcu
    are fine because they do not have lockdep checks (hlist_for_each_entry_rcu
    uses rcu_dereference_raw rather than rcu_dereference, and write-sides
    do not do rcu lockdep at all).

    Note that we're hardly relying on the "sleepable" part of srcu. We just
    want SRCU's faster detection of grace periods.

    Testing was done by Andrew Theurer using netperf tests STREAM, MAERTS
    and RR. The difference between results "before" and "after" the patch
    has mean -0.2% and standard deviation 0.6%. Using a paired t-test on the
    data points says that there is a 2.5% probability that the patch is the
    cause of the performance difference (rather than a random fluctuation).

    (Restricting the t-test to RR, which is the most likely to be affected,
    changes the numbers to respectively -0.3% mean, 0.7% stdev, and 8%
    probability that the numbers actually say something about the patch.
    The probability increases mostly because there are fewer data points).

    Cc: Marcelo Tosatti
    Cc: Michael S. Tsirkin
    Tested-by: Christian Borntraeger # s390
    Reviewed-by: Christian Borntraeger
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Paolo Bonzini

    Christian Borntraeger
     

01 May, 2014

1 commit


29 Apr, 2014

1 commit

  • Currently below check in vgic_ioaddr_overlap will always succeed,
    because the vgic dist base and vgic cpu base are still kept UNDEF
    after initialization. The code as follows will be return forever.

    if (IS_VGIC_ADDR_UNDEF(dist) || IS_VGIC_ADDR_UNDEF(cpu))
    return 0;

    So, before invoking the vgic_ioaddr_overlap, it needs to set the
    corresponding base address firstly.

    Signed-off-by: Haibin Wang
    Acked-by: Marc Zyngier
    Signed-off-by: Christoffer Dall

    Haibin Wang