[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 000084: KVM: Fix GSI number space limit
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 000084: KVM: Fix GSI number space limit |
Date: |
Fri, 20 Jun 2014 12:30:05 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 00008418aa22700f6c49e794e79f53aeb157d10f
https://github.com/qemu/qemu/commit/00008418aa22700f6c49e794e79f53aeb157d10f
Author: Alexander Graf <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M kvm-all.c
Log Message:
-----------
KVM: Fix GSI number space limit
KVM tells us the number of GSIs it can handle inside the kernel. That value is
basically KVM_MAX_IRQ_ROUTES. However when we try to set the GSI mapping table,
it checks for
r = -EINVAL;
if (routing.nr >= KVM_MAX_IRQ_ROUTES)
goto out;
erroring out even when we're only using all of the GSIs. To make sure we never
hit that limit, let's reduce the number of GSIs we get from KVM by one.
Cc: address@hidden
Signed-off-by: Alexander Graf <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 4b69c7e265a2c2fd1120c431c5d8d0809d4ec10a
https://github.com/qemu/qemu/commit/4b69c7e265a2c2fd1120c431c5d8d0809d4ec10a
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M hw/mips/cputimer.c
M target-mips/translate.c
Log Message:
-----------
target-mips: Reset CPU timer consistently
The MIPS CPU timer (CP0 Count/Compare registers & QEMU timer) is
reset at machine initialisation, including starting the timeout. Both
registers however are placed before mvp in CPUMIPSState so they will
both be zeroed on reset by the memset in mips_cpu_reset() including soon
after init. This doesn't take into account that the timer may be
running, in which case env->CP0_Count will represent the delta against
the VM clock and the timeout will need updating.
At init time (cpu_mips_clock_init()), lets only create the timer.
Setting Count = 1 and starting the timer (cpu_mips_store_count()) can be
done at reset time from cpu_state_reset(), which is after the memset.
There is also no need to set CP0_Compare = 0 as that is already handled
by the memset.
Note that a reset occurs from mips_cpu_realizefn() which is before the
machine init callback has had a chance to set up the CPU interrupts and
the CPU timer, so env->timer will be NULL. This case is handled
explicitly in cpu_mips_store_count(), treating the timer as disabled
(which will also be the right thing to do when KVM support is added).
Reported-by: Paolo Bonzini <address@hidden>
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 353a243e22fae2b993ab7f2d123c2b81013b3c5d
https://github.com/qemu/qemu/commit/353a243e22fae2b993ab7f2d123c2b81013b3c5d
Author: Sanjay Lal <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M hw/mips/cputimer.c
Log Message:
-----------
hw/mips/cputimer: Don't start periodic timer in KVM mode
Compare/Count timer interrupts are handled in-kernel for KVM. Therefore
don't bother creating the timer at init time if KVM is enabled. This
will conveniently avoid attempts to set the timeout when
cpu_mips_store_count() is called at reset with KVM enabled, treating the
timer as stopped so that CP0_Count is modified directly.
Signed-off-by: Sanjay Lal <address@hidden>
address@hidden: Update after "target-mips: Reset CPU timer
consistently" which moves timer start to reset time]
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 253fffe725e8ecc0147a4c6f0893493c1393f0f7
https://github.com/qemu/qemu/commit/253fffe725e8ecc0147a4c6f0893493c1393f0f7
Author: Sanjay Lal <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M hw/mips/addr.c
M include/hw/mips/cpudevs.h
Log Message:
-----------
hw/mips: Add API to convert KVM guest KSEG0 <-> GPA
Add API for converting physical addresses to KVM guest KSEG0 addresses,
and fix the existing API for converting KSEG0 addresses to physical
addresses to work in the KVM case. Both have the same sized KSEG0, so
it's just a case of fixing the mask.
In KVM trap and emulate mode both the guest kernel and guest userspace
execute in useg:
Guest User address space: 0x00000000..0x3fffffff
Guest Kernel Unmapped: 0x40000000..0x5fffffff
Guest Kernel Mapped: 0x60000000..0x7fffffff
Signed-off-by: Sanjay Lal <address@hidden>
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 22010ce7f23236b970b40cc5c0cf0c7fe0588e2f
https://github.com/qemu/qemu/commit/22010ce7f23236b970b40cc5c0cf0c7fe0588e2f
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M target-mips/helper.c
Log Message:
-----------
target-mips: get_physical_address: Add defines for segment bases
Add preprocessor definitions for 32bit segment bases for use in
get_physical_address(). These will also be taken advantage of in the
next patch which adds KVM awareness.
Signed-off-by: James Hogan <address@hidden>
Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 4ef37e6907eaeeec3e0425b9e51a4b3918c194c7
https://github.com/qemu/qemu/commit/4ef37e6907eaeeec3e0425b9e51a4b3918c194c7
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M target-mips/helper.c
Log Message:
-----------
target-mips: get_physical_address: Add KVM awareness
MIPS KVM trap & emulate mode (which is currently the only supported
mode) has to add an extra kseg0/kseg1 at 0x40000000 and an extra
kseg2/kseg3 at 0x60000000. Take this into account in
get_physical_address() so that debug memory access works.
This is done by translating the address to a standard kseg0 or kseg2
address before doing the normal address translation. The real virtual
address is still used for TLB lookups.
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: aed6efb90cc43faf45f1e40425646c55d37a340f
https://github.com/qemu/qemu/commit/aed6efb90cc43faf45f1e40425646c55d37a340f
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M include/sysemu/kvm.h
M kvm-all.c
Log Message:
-----------
kvm: Allow arch to set sigmask length
MIPS/Linux is unusual in having 128 signals rather than just 64 like
most other architectures. This means its sigmask is 16 bytes instead of
8, so allow arches to override the sigmask->len value passed to the
KVM_SET_SIGNAL_MASK ioctl in kvm_set_signal_mask() by calling
kvm_set_sigmask_len() from kvm_arch_init(). Otherwise default to 8
bytes.
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Cc: Sanjay Lal <address@hidden>
Cc: Gleb Natapov <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: e2132e0bba7751be7af7e3ebcd6f39e77f76d05e
https://github.com/qemu/qemu/commit/e2132e0bba7751be7af7e3ebcd6f39e77f76d05e
Author: Sanjay Lal <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
A target-mips/kvm.c
A target-mips/kvm_mips.h
Log Message:
-----------
target-mips: kvm: Add main KVM support for MIPS
Implement the main KVM arch API for MIPS.
Signed-off-by: Sanjay Lal <address@hidden>
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Cc: Gleb Natapov <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Andreas Färber <address@hidden>
Cc: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 14c03ab97594d0700d73aedc254579a57b8aeec1
https://github.com/qemu/qemu/commit/14c03ab97594d0700d73aedc254579a57b8aeec1
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M target-mips/cpu.c
Log Message:
-----------
target-mips: Call kvm_mips_reset_vcpu() from mips_cpu_reset()
When KVM is enabled call kvm_mips_reset_vcpu() from mips_cpu_reset() as
done for other targets since commit 50a2c6e55fa2 (kvm: reset state from
the CPU's reset method).
Signed-off-by: James Hogan <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Gleb Natapov <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: b1bd8b28ccad3a9813466895794216a02326876c
https://github.com/qemu/qemu/commit/b1bd8b28ccad3a9813466895794216a02326876c
Author: Sanjay Lal <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M hw/mips/mips_int.c
Log Message:
-----------
hw/mips: In KVM mode, inject IRQ2 (I/O) interrupts via ioctls
COP0 emulation is in-kernel for KVM, so inject IRQ2 (I/O) interrupts via
ioctls.
Signed-off-by: Sanjay Lal <address@hidden>
Signed-off-by: James Hogan <address@hidden>
Reviewed-by: Aurelien Jarno <address@hidden>
Reviewed-by: Andreas Färber <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: b03118114d461a681eaf5fc1d07e99e228d45260
https://github.com/qemu/qemu/commit/b03118114d461a681eaf5fc1d07e99e228d45260
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M hw/mips/mips_malta.c
Log Message:
-----------
hw/mips: malta: Add KVM support
In KVM mode the bootrom is loaded and executed from the last 1MB of
DRAM.
Based on "[PATCH 12/12] KVM/MIPS: General KVM support and support for
SMP Guests" by Sanjay Lal <address@hidden>.
Signed-off-by: James Hogan <address@hidden>
Reviewed-by: Aurelien Jarno <address@hidden>
Cc: Peter Maydell <address@hidden>
Cc: Sanjay Lal <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 222e7d11e7c35de5d7e4125da9a8f8dc937b6438
https://github.com/qemu/qemu/commit/222e7d11e7c35de5d7e4125da9a8f8dc937b6438
Author: Sanjay Lal <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M configure
M target-mips/Makefile.objs
Log Message:
-----------
target-mips: Enable KVM support in build system
Enable KVM support for MIPS in the build system.
Signed-off-by: Sanjay Lal <address@hidden>
Signed-off-by: James Hogan <address@hidden>
Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: a31896c411b096dfccee69c338aebb871d4fb80e
https://github.com/qemu/qemu/commit/a31896c411b096dfccee69c338aebb871d4fb80e
Author: James Hogan <address@hidden>
Date: 2014-06-18 (Wed, 18 Jun 2014)
Changed paths:
M MAINTAINERS
Log Message:
-----------
MAINTAINERS: Add entry for MIPS KVM
Add MAINTAINERS entry for MIPS KVM.
Signed-off-by: James Hogan <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 3c5d0be553b18d47361ac3a701e2bff86b8256b0
https://github.com/qemu/qemu/commit/3c5d0be553b18d47361ac3a701e2bff86b8256b0
Author: James Hogan <address@hidden>
Date: 2014-06-20 (Fri, 20 Jun 2014)
Changed paths:
M hw/mips/mips_malta.c
Log Message:
-----------
hw/mips: malta: Don't boot from flash with KVM T&E
In KVM trap & emulate (T&E) mode the flash reset region at 0xbfc00000
isn't executable, which is why the minimal kernel bootloader is loaded
and executed from the last 1MB of DRAM instead.
Therefore if no kernel is provided on the command line and KVM is
enabled, exit with an error since booting from flash will fail.
Reported-by: Aurelien Jarno <address@hidden>
Signed-off-by: James Hogan <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: d70a319b8d6f10ad895f05bdd5160cdb42f5058a
https://github.com/qemu/qemu/commit/d70a319b8d6f10ad895f05bdd5160cdb42f5058a
Author: Peter Maydell <address@hidden>
Date: 2014-06-20 (Fri, 20 Jun 2014)
Changed paths:
M MAINTAINERS
M configure
M hw/mips/addr.c
M hw/mips/cputimer.c
M hw/mips/mips_int.c
M hw/mips/mips_malta.c
M include/hw/mips/cpudevs.h
M include/sysemu/kvm.h
M kvm-all.c
M target-mips/Makefile.objs
M target-mips/cpu.c
M target-mips/helper.c
A target-mips/kvm.c
A target-mips/kvm_mips.h
M target-mips/translate.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/kvm/uq/master' into staging
* remotes/kvm/uq/master:
hw/mips: malta: Don't boot from flash with KVM T&E
MAINTAINERS: Add entry for MIPS KVM
target-mips: Enable KVM support in build system
hw/mips: malta: Add KVM support
hw/mips: In KVM mode, inject IRQ2 (I/O) interrupts via ioctls
target-mips: Call kvm_mips_reset_vcpu() from mips_cpu_reset()
target-mips: kvm: Add main KVM support for MIPS
kvm: Allow arch to set sigmask length
target-mips: get_physical_address: Add KVM awareness
target-mips: get_physical_address: Add defines for segment bases
hw/mips: Add API to convert KVM guest KSEG0 <-> GPA
hw/mips/cputimer: Don't start periodic timer in KVM mode
target-mips: Reset CPU timer consistently
KVM: Fix GSI number space limit
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/0a99aae5fab5...d70a319b8d6f
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 000084: KVM: Fix GSI number space limit,
GitHub <=