The current arithmetic instruction emulation is fairly clumsy: after
decode, each instruction gets a switch (size), and for every size
we fetch the operands, prepare flags, emulate the instruction, then store
back the flags and operands.
This patchset simplifies things by moving everything into
We emulate arithmetic opcodes by executing a similar (same operation,
different operands) on the cpu. This ensures accurate emulation, esp. wrt.
eflags. However, the prologue and epilogue around the opcode is fairly long,
consisting of a switch (for the operand size) and code to load and save
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 25 +
1 file changed, 25 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index dd71567..42c53c8 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -24,6
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index fe113fb..2af0c44 100644
--- a/arch/x86/kvm/emulate.c
+++
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 17 -
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 2af0c44..09dbdc5 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
Instead of disabling writeback via OP_NONE, just specify NoWrite.
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 4
1 file changed, 4 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 42c53c8..fe113fb 100644
---
Opcodes:
TEST
CMP
ADD
ADC
SUB
SBB
XOR
OR
AND
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 112 +++--
1 file changed, 34 insertions(+), 78
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 12
1 file changed, 12 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 09dbdc5..9a39689 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -465,6 +465,17 @@
On Thu, Jan 03, 2013 at 11:19:18AM -0200, Marcelo Tosatti wrote:
On Thu, Jan 03, 2013 at 10:11:53AM +0200, Gleb Natapov wrote:
FreeBSD 9.1 with -smp 2.
I cannot reproduce. I do see boot failure on the next branch with 9.[01]
64 bit -smp 2 here, but it is caused but segment registers been
On 01/04/2013 12:47 PM, Avi Kivity wrote:
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 12
1 file changed, 12 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 09dbdc5..9a39689 100644
--- a/arch/x86/kvm/emulate.c
There are some changes from Gleb's review:
- poss the point of target_gfn_is_pt into FNAME(is_self_change_mapping)
to let the return value be more clearer
- fold some changes of patch 5 into patch 4
- remove vcpu.arch.fault_addr
There are some test cases to trigger the bugs which are fixed in
If the write-fault access is from supervisor and CR0.WP is not set on the
vcpu, kvm will fix it by adjusting pte access - it sets the W bit on pte
and clears U bit. This is the chance that kvm can change pte access from
readonly to writable
Unfortunately, the pte access is the access of 'direct'
We have two issues in current code:
- if target gfn is used as its page table, guest will refault then kvm will use
small page size to map it. We need two #PF to fix its shadow page table
- sometimes, say a exception is triggered during vm-exit caused by #PF
(see handle_exception() in vmx.c),
Little cleanup for reexecute_instruction, also use gpa_to_gfn in
retry_instruction
Signed-off-by: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
---
arch/x86/kvm/x86.c | 13 ++---
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
Currently, reexecute_instruction refused to retry all instructions. If
nested npt is used, the emulation may be caused by shadow page, it can
be fixed by dropping the shadow page
Signed-off-by: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
---
arch/x86/kvm/x86.c | 28
The current reexecute_instruction can not well detect the failed instruction
emulation. It allows guest to retry all the instructions except it accesses
on error pfn
For example, some cases are nested-write-protect - if the page we want to
write is used as PDE but it chains to itself. Under this
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
x86/emulator.c | 26 ++
1 file changed, 26 insertions(+)
diff --git a/x86/emulator.c b/x86/emulator.c
index c39027a..a128e13 100644
--- a/x86/emulator.c
+++ b/x86/emulator.c
@@ -863,6 +863,31 @@ static void
The current arithmetic instruction emulation is fairly clumsy: after
decode, each instruction gets a switch (size), and for every size
we fetch the operands, prepare flags, emulate the instruction, then store
back the flags and operands.
This patchset simplifies things by moving everything into
We emulate arithmetic opcodes by executing a similar (same operation,
different operands) on the cpu. This ensures accurate emulation, esp. wrt.
eflags. However, the prologue and epilogue around the opcode is fairly long,
consisting of a switch (for the operand size) and code to load and save
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 25 +
1 file changed, 25 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index dd71567..42c53c8 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -24,6
Instead of disabling writeback via OP_NONE, just specify NoWrite.
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 4
1 file changed, 4 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 42c53c8..fe113fb 100644
---
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 20
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index fe113fb..2af0c44 100644
--- a/arch/x86/kvm/emulate.c
+++
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 17 -
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 2af0c44..09dbdc5 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 12
1 file changed, 12 insertions(+)
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 09dbdc5..3b5d4dd 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -465,6 +465,17 @@
Opcodes:
TEST
CMP
ADD
ADC
SUB
SBB
XOR
OR
AND
Signed-off-by: Avi Kivity avi.kiv...@gmail.com
---
arch/x86/kvm/emulate.c | 112 +++--
1 file changed, 34 insertions(+), 78
The kvm_mmu_op feature was removed from the kernel since v3.3 (released
in March 2012), it was marked for removal since January 2011 and it's
slower than shadow or hardware assisted paging (see kernel commit
fb92045843). It doesn't make sense to keep it enabled by default.
Also, keeping it
The kvm_mmu_op feature was removed from the kernel since v3.3 (released
in March 2012), it was marked for removal since January 2011 and it's
slower than shadow or hardware assisted paging (see kernel commit
fb92045843). It doesn't make sense to keep it enabled by default.
Also, keeping it
The -cpu check/enforce warnings are printing incorrect information about the
missing flags. There are no feature flags on CPUID leaves 0 and 0x8000, but
there were references to 0 and 0x8000 in the table at
kvm_check_features_against_host().
This changes the model_features_t struct to
This will be necessary once kvm_check_features_against_host() starts
using KVM-specific definitions (so it won't compile anymore if
CONFIG_KVM is not set).
Signed-off-by: Eduardo Habkost ehabk...@redhat.com
---
target-i386/cpu.c | 4
1 file changed, 4 insertions(+)
diff --git
This changes the -cpu check/enforce code to work as it should: it will
check every single CPUID bit to make sure it is supported by the host.
The changes are a bit intrusive, but:
- The longer we take to make enforce strict as it should (and make libvirt
finally use it), more users will have
This adds the following feature words to the list of flags to be checked
by kvm_check_features_against_host():
- cpuid_7_0_ebx_features
- ext4_features
- kvm_features
- svm_features
This will ensure the enforce flag works as it should: it won't allow
QEMU to be started unless every flag that
When using -cpu host, we don't need to use the kvm_default_features
variable, as the user is explicitly asking QEMU to enable all feature
supported by the host.
This changes the kvm_cpu_fill_host() code to use GET_SUPPORTED_CPUID to
initialize the kvm_features field, so we get all host KVM
I have no idea why PPRO_FEATURES was being ignored on the check of the
CPUID.8001H.EDX bits. I believe it was a mistake, and it was
supposed to be ~(PPRO_FEATURES CPUID_EXT2_AMD_ALIASES) or just
~CPUID_EXT2_AMD_ALIASES, because some time ago kvm_cpu_fill_host() used
the CPUID instruction
We don't need any hack to ignore CPUID_EXT_HYPERVISOR anymore, because
kvm_arch_get_supported_cpuid() now set CPUID_EXT_HYPERVISOR properly.
So, this shouldn't introduce any behavior change, but it makes the code
simpler.
Signed-off-by: Eduardo Habkost ehabk...@redhat.com
---
My goal is to
When nested SVM is supported, the kernel returns the SVM flag on
GET_SUPPORTED_CPUID[1], so we can check the SVM flag safely on
kvm_check_features_against_host().
I don't know why the original code ignored the SVM flag. Maybe it was
because kvm_cpu_fill_host() used the CPUID instruction directly
The existing -cpu host code simply set every bit inside svm_features
(initializing it to -1), and that makes it impossible to make the
enforce/check options work properly when the user asks for SVM features
explicitly in the command-line.
So, instead of initializing svm_features to -1, use
Now that all entries have check_feat=~0 on
kvm_check_features_against_host(), we can eliminate check_feat entirely
and make the code check all bits.
This patch shouldn't introduce any behavior change, as check_feat is set
to ~0 on all entries.
Signed-off-by: Eduardo Habkost ehabk...@redhat.com
This is a cleanup that tries to solve two small issues:
- We don't need a separate kvm_pv_eoi_features variable just to keep a
constant calculated at compile-time, and this style would require
adding a separate variable (that's declared twice because of the
CONFIG_KVM ifdef) for each
The FSL MPIC implementation contains a feature called external proxy
facility which allows for interrupts to be acknowledged in the MPIC
as soon as a core accepts its pending external interrupt.
This patch set implements all the necessary pieces to support this
from the kernel space side.
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when the
guest has successfully accepted an external interrupt though.
So we need to prepare the interrupt
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf ag...@suse.de
---
arch/powerpc/kvm/booke_emulate.c |3 +++
1 files changed, 3 insertions(+), 0
The External Proxy Facility in FSL BookE chips allows the interrupt
controller to automatically acknowledge an interrupt as soon as a
core gets its pending external interrupt delivered.
Today, user space implements the interrupt controller, so we need to
check on it during such a cycle.
This
We need to be able to read and write the contents of the EPR register
from user space.
This patch implements that logic through the ONE_REG API and declares
its (never implemented) SREGS counterpart as deprecated.
Signed-off-by: Alexander Graf ag...@suse.de
---
Documentation/virtual/kvm/api.txt
On 01/04/2013 11:36:37 AM, Alexander Graf wrote:
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when
the
guest has successfully accepted an external
On 01/04/2013 11:36:38 AM, Alexander Graf wrote:
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf ag...@suse.de
---
arch/powerpc/kvm/booke_emulate.c |3
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR register
from user space.
This patch implements that logic through the ONE_REG API and declares
its (never implemented) SREGS counterpart as deprecated.
QEMU already uses SREGS to
On 01/04/2013 11:36:39 AM, Alexander Graf wrote:
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 4ae83f9..363301f 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -306,7 +306,7 @@ static int kvmppc_booke_irqprio_deliver(struct
kvm_vcpu *vcpu,
{
On Fri, Jan 4, 2013 at 5:12 AM, Jason Wang jasow...@redhat.com wrote:
On 12/29/2012 01:52 AM, Blue Swirl wrote:
On Fri, Dec 28, 2012 at 10:32 AM, Jason Wang jasow...@redhat.com wrote:
This patch implements both userspace and vhost support for multiple queue
virtio-net (VIRTIO_NET_F_MQ). This
On Fri, Jan 4, 2013 at 2:52 PM, Eduardo Habkost ehabk...@redhat.com wrote:
This is a cleanup that tries to solve two small issues:
- We don't need a separate kvm_pv_eoi_features variable just to keep a
constant calculated at compile-time, and this style would require
adding a separate
On Fri, Jan 4, 2013 at 2:52 PM, Eduardo Habkost ehabk...@redhat.com wrote:
The kvm_mmu_op feature was removed from the kernel since v3.3 (released
in March 2012), it was marked for removal since January 2011 and it's
slower than shadow or hardware assisted paging (see kernel commit
Hi,
This is an automated message generated from the QEMU Patches.
Thank you for submitting this patch. This patch no longer applies to qemu.git.
This may have occurred due to:
1) Changes in mainline requiring your patch to be rebased and re-tested.
2) Sending the mail using a tool other
On Fri, Jan 04, 2013 at 08:47:07PM +, Blue Swirl wrote:
{
-kvm_default_features |= kvm_pv_eoi_features;
+#ifdef CONFIG_KVM
+if (kvm_enabled())
Missing braces, please read CODING_STYLE and use checkpatch.pl to find
problems in patches.
Sorry (again). I will soon send a new
On Fri, Jan 4, 2013 at 3:37 PM, Eduardo Habkost ehabk...@redhat.com wrote:
The -cpu check/enforce warnings are printing incorrect information about the
missing flags. There are no feature flags on CPUID leaves 0 and 0x8000,
but
there were references to 0 and 0x8000 in the table at
On Fri, Jan 04, 2013 at 07:02:17PM -0200, Eduardo Habkost wrote:
On Fri, Jan 04, 2013 at 08:47:07PM +, Blue Swirl wrote:
{
-kvm_default_features |= kvm_pv_eoi_features;
+#ifdef CONFIG_KVM
+if (kvm_enabled())
Missing braces, please read CODING_STYLE and use
On Fri, Jan 04, 2013 at 08:48:42PM +, Blue Swirl wrote:
[...]
+/* machine init function for pc-0.14 - pc-1.2 */
static void pc_init_pci(QEMUMachineInitArgs *args)
{
ram_addr_t ram_size = args-ram_size;
@@ -232,12 +233,20 @@ static void pc_init_pci(QEMUMachineInitArgs *args)
Hi all,
when I run KVM with this command the Windows 8 installation stops with
error code 0x005D:
kvm -m 1024 -hda win8.img -cdrom windows_8_x86.iso
After adding the option -cpu host the installation proceeds to a black
screen and hangs.
With Virtualbox the installation succeeds.
The host
The -cpu check/enforce warnings are printing incorrect information about the
missing flags. There are no feature flags on CPUID leaves 0 and 0x8000, but
there were references to 0 and 0x8000 in the table at
kvm_check_features_against_host().
This changes the model_features_t struct to
This adds the following feature words to the list of flags to be checked
by kvm_check_features_against_host():
- cpuid_7_0_ebx_features
- ext4_features
- kvm_features
- svm_features
This will ensure the enforce flag works as it should: it won't allow
QEMU to be started unless every flag that
On Fri, Jan 04, 2013 at 09:55:40PM +0800, Xiao Guangrong wrote:
Little cleanup for reexecute_instruction, also use gpa_to_gfn in
retry_instruction
Signed-off-by: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
---
arch/x86/kvm/x86.c | 13 ++---
1 files changed, 6 insertions(+),
On Fri, Jan 04, 2013 at 09:56:59PM +0800, Xiao Guangrong wrote:
The current reexecute_instruction can not well detect the failed instruction
emulation. It allows guest to retry all the instructions except it accesses
on error pfn
For example, some cases are nested-write-protect - if the page
When using -cpu host, we don't need to use the kvm_default_features
variable, as the user is explicitly asking QEMU to enable all feature
supported by the host.
This changes the kvm_cpu_fill_host() code to use GET_SUPPORTED_CPUID to
initialize the kvm_features field, so we get all host KVM
This is a cleanup that tries to solve two small issues:
- We don't need a separate kvm_pv_eoi_features variable just to keep a
constant calculated at compile-time, and this style would require
adding a separate variable (that's declared twice because of the
CONFIG_KVM ifdef) for each
The existing -cpu host code simply set every bit inside svm_features
(initializing it to -1), and that makes it impossible to make the
enforce/check options work properly when the user asks for SVM features
explicitly in the command-line.
So, instead of initializing svm_features to -1, use
On 04.01.2013, at 21:08, Scott Wood wrote:
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR register
from user space.
This patch implements that logic through the ONE_REG API and declares
its (never implemented) SREGS counterpart
This will be necessary once kvm_check_features_against_host() starts
using KVM-specific definitions (so it won't compile anymore if
CONFIG_KVM is not set).
Signed-off-by: Eduardo Habkost ehabk...@redhat.com
---
target-i386/cpu.c | 4
1 file changed, 4 insertions(+)
diff --git
We don't need any hack to ignore CPUID_EXT_HYPERVISOR anymore, because
kvm_arch_get_supported_cpuid() now set CPUID_EXT_HYPERVISOR properly.
So, this shouldn't introduce any behavior change, but it makes the code
simpler.
Signed-off-by: Eduardo Habkost ehabk...@redhat.com
---
My goal is to
Changes on v2:
- Now both the kvm_mmu-disable and -cpu enforce changes are on the same
series
- Coding style fixes
Git tree for reference:
git://github.com/ehabkost/qemu-hacks.git cpu-enforce-all.v2
https://github.com/ehabkost/qemu-hacks/tree/cpu-enforce-all.v2
Patches 1-2 disable the
On 04.01.2013, at 20:40, Scott Wood wrote:
On 01/04/2013 11:36:37 AM, Alexander Graf wrote:
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when the
On 01/04/2013 04:55:34 PM, Alexander Graf wrote:
On 04.01.2013, at 21:08, Scott Wood wrote:
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR
register
from user space.
This patch implements that logic through the ONE_REG API
On 05.01.2013, at 00:03, Scott Wood wrote:
On 01/04/2013 04:55:34 PM, Alexander Graf wrote:
On 04.01.2013, at 21:08, Scott Wood wrote:
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR register
from user space.
This patch
On 04.01.2013, at 20:50, Scott Wood wrote:
On 01/04/2013 11:36:38 AM, Alexander Graf wrote:
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf
The FSL MPIC implementation contains a feature called external proxy
facility which allows for interrupts to be acknowledged in the MPIC
as soon as a core accepts its pending external interrupt.
This patch set implements all the necessary pieces to support this
from the kernel space side.
v1 -
The External Proxy Facility in FSL BookE chips allows the interrupt
controller to automatically acknowledge an interrupt as soon as a
core gets its pending external interrupt delivered.
Today, user space implements the interrupt controller, so we need to
check on it during such a cycle.
This
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf ag...@suse.de
---
arch/powerpc/kvm/booke_emulate.c |3 +++
1 files changed, 3 insertions(+), 0
We need to be able to read and write the contents of the EPR register
from user space.
This patch implements that logic through the ONE_REG API and declares
its (never implemented) SREGS counterpart as deprecated.
Signed-off-by: Alexander Graf ag...@suse.de
---
Documentation/virtual/kvm/api.txt
From: Mihai Caraman mihai.cara...@freescale.com
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when the
guest has successfully accepted an external
I have no idea why PPRO_FEATURES was being ignored on the check of the
CPUID.8001H.EDX bits. I believe it was a mistake, and it was
supposed to be ~(PPRO_FEATURES CPUID_EXT2_AMD_ALIASES) or just
~CPUID_EXT2_AMD_ALIASES, because some time ago kvm_cpu_fill_host() used
the CPUID instruction
Now that all entries have check_feat=~0 on
kvm_check_features_against_host(), we can eliminate check_feat entirely
and make the code check all bits.
This patch shouldn't introduce any behavior change, as check_feat is set
to ~0 on all entries.
Signed-off-by: Eduardo Habkost ehabk...@redhat.com
The kvm_mmu_op feature was removed from the kernel since v3.3 (released
in March 2012), it was marked for removal since January 2011 and it's
slower than shadow or hardware assisted paging (see kernel commit
fb92045843). It doesn't make sense to keep it enabled by default.
Also, keeping it
When nested SVM is supported, the kernel returns the SVM flag on
GET_SUPPORTED_CPUID[1], so we can check the SVM flag safely on
kvm_check_features_against_host().
I don't know why the original code ignored the SVM flag. Maybe it was
because kvm_cpu_fill_host() used the CPUID instruction directly
On 01/05/2013 06:21 AM, Marcelo Tosatti wrote:
On Fri, Jan 04, 2013 at 09:55:40PM +0800, Xiao Guangrong wrote:
Little cleanup for reexecute_instruction, also use gpa_to_gfn in
retry_instruction
Signed-off-by: Xiao Guangrong xiaoguangr...@linux.vnet.ibm.com
---
arch/x86/kvm/x86.c | 13
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when the
guest has successfully accepted an external interrupt though.
So we need to prepare the interrupt
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf ag...@suse.de
---
arch/powerpc/kvm/booke_emulate.c |3 +++
1 files changed, 3 insertions(+), 0
The External Proxy Facility in FSL BookE chips allows the interrupt
controller to automatically acknowledge an interrupt as soon as a
core gets its pending external interrupt delivered.
Today, user space implements the interrupt controller, so we need to
check on it during such a cycle.
This
We need to be able to read and write the contents of the EPR register
from user space.
This patch implements that logic through the ONE_REG API and declares
its (never implemented) SREGS counterpart as deprecated.
Signed-off-by: Alexander Graf ag...@suse.de
---
Documentation/virtual/kvm/api.txt
On 01/04/2013 11:36:38 AM, Alexander Graf wrote:
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf ag...@suse.de
---
arch/powerpc/kvm/booke_emulate.c |3
On 04.01.2013, at 21:08, Scott Wood wrote:
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR register
from user space.
This patch implements that logic through the ONE_REG API and declares
its (never implemented) SREGS counterpart
On 04.01.2013, at 20:40, Scott Wood wrote:
On 01/04/2013 11:36:37 AM, Alexander Graf wrote:
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when the
On 01/04/2013 04:55:34 PM, Alexander Graf wrote:
On 04.01.2013, at 21:08, Scott Wood wrote:
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR
register
from user space.
This patch implements that logic through the ONE_REG API
On 05.01.2013, at 00:03, Scott Wood wrote:
On 01/04/2013 04:55:34 PM, Alexander Graf wrote:
On 04.01.2013, at 21:08, Scott Wood wrote:
On 01/04/2013 11:36:40 AM, Alexander Graf wrote:
We need to be able to read and write the contents of the EPR register
from user space.
This patch
On 04.01.2013, at 20:50, Scott Wood wrote:
On 01/04/2013 11:36:38 AM, Alexander Graf wrote:
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf
The FSL MPIC implementation contains a feature called external proxy
facility which allows for interrupts to be acknowledged in the MPIC
as soon as a core accepts its pending external interrupt.
This patch set implements all the necessary pieces to support this
from the kernel space side.
v1 -
The EPR register is potentially valid for PR KVM as well, so we need
to emulate accesses to it. It's only defined for reading, so only
handle the mfspr case.
Signed-off-by: Alexander Graf ag...@suse.de
---
arch/powerpc/kvm/booke_emulate.c |3 +++
1 files changed, 3 insertions(+), 0
From: Mihai Caraman mihai.cara...@freescale.com
When injecting an interrupt into guest context, we usually don't need
to check for requests anymore. At least not until today.
With the introduction of EPR, we will have to create a request when the
guest has successfully accepted an external
The External Proxy Facility in FSL BookE chips allows the interrupt
controller to automatically acknowledge an interrupt as soon as a
core gets its pending external interrupt delivered.
Today, user space implements the interrupt controller, so we need to
check on it during such a cycle.
This
95 matches
Mail list logo