the wake_up_process func is included by spin_lock/unlock in vhost_work_queue,
but it could be done outside the spin_lock.
I have test it with kernel 3.0.27 and guest suse11-sp2 using iperf, the num as
below.
orignal modified
thread_num tp(Gbps) vhost(%) |
On Thu, Jun 6, 2013 at 8:03 PM, Pekka Enberg wrote:
> On Tue, May 28, 2013 at 2:49 PM, Cyrill Gorcunov wrote:
>> If cpuvendor string is not filetered in case of host
>> amd machine we get unhandled msr reads
>>
>> | [1709265.368464] kvm: 25706: cpu6 unhandled rdmsr: 0xc0010048
>> | [1709265.39716
On 6 June 2013 15:59, Anthony Liguori wrote:
> We would still use virtio-pci for existing devices. Only new devices
> would use virtio-pcie.
Surely you'd want to support both for any new device, because
(a) transport is orthogonal to backend functionality
(b) not all existing machine models have
On 06/07/2013 03:31 PM, Qinchuanyu wrote:
> the wake_up_process func is included by spin_lock/unlock in vhost_work_queue,
> but it could be done outside the spin_lock.
> I have test it with kernel 3.0.27 and guest suse11-sp2 using iperf, the num
> as below.
> orignal
It is useful for debug mmio spte invalidation
Signed-off-by: Xiao Guangrong
---
arch/x86/kvm/mmu.c | 9 +++--
arch/x86/kvm/mmutrace.h | 24
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index bdc95bc..1f
Let mmio spte only use bit62 and bit63 on upper 32 bits, then bit 52 ~ bit 61
can be used for other purposes
Signed-off-by: Xiao Guangrong
---
arch/x86/kvm/vmx.c | 4 ++--
arch/x86/kvm/x86.c | 8 +++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/arch/x86/kvm/vmx.c b/arch/x8
Then it has the chance to trigger mmio generation number wrap-around
Signed-off-by: Xiao Guangrong
---
arch/x86/kvm/mmu.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 1fd2c05..7d50a2d 100644
--- a/arch/x86/kvm/mmu.c
+++ b
This patch tries to introduce a very simple and scale way to invalidate
all mmio sptes - it need not walk any shadow pages and hold mmu-lock
KVM maintains a global mmio valid generation-number which is stored in
kvm->memslots.generation and every mmio spte stores the current global
generation-numb
Store the generation-number into bit3 ~ bit11 and bit52 ~ bit61, totally
19 bits can be used, it should be enough for nearly all most common cases
In this patch, the generation-number is always 0, it will be changed in
the later patch
Signed-off-by: Xiao Guangrong
---
arch/x86/kvm/mmu.c
Define some meaningful names instead of raw code
Signed-off-by: Xiao Guangrong
---
arch/x86/kvm/mmu.c | 15 +--
arch/x86/kvm/mmu.h | 14 ++
arch/x86/kvm/vmx.c | 4 ++--
3 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu
Changelog:
V3:
All of these changes are from Gleb's review:
1) rename RET_MMIO_PF_EMU to RET_MMIO_PF_EMULATE.
2) smartly adjust kvm generation number in kvm_current_mmio_generatio()
to avoid kvm_memslots->generation overflow.
V2:
- rename kvm_mmu_invalid_mmio_spte to kvm_mmu_invalid_m
Hi,
here's the guest driver support for adapter interrupts in virtio-ccw.
We use one summary indicator per page of indicators. For each device,
we try to find a space in an indicator where all of its virtqueues fit.
Locking probably needs some more love, but it seems to work fine so far.
Cornel
Handle the new CCW_CMD_SET_IND_ADAPTER command enabling adapter interrupts
on guest request. When active, host->guest notifications will be handled
via global_indicator -> queue indicators instead of queue indicators +
subchannel I/O interrupt. Indicators for virtqueues may be present at an
offset.
Signed-off-by: Cornelia Huck
---
virtio-spec.lyx | 147 +--
1 file changed, 144 insertions(+), 3 deletions(-)
diff --git a/virtio-spec.lyx b/virtio-spec.lyx
index 6e188d0..697351e 100644
--- a/virtio-spec.lyx
+++ b/virtio-spec.lyx
@@ -10701,11
Hi,
here's the qemu patch that implements the new adapter indicators ccw
in virtio-ccw and injects adapter interrupts for the devices enabled
for it.
Cornelia Huck (1):
s390/virtio-ccw: Adapter interrupt support.
hw/s390x/css.c| 10
hw/s390x/css.h|2 ++
hw/s390x
Implement the new CCW_CMD_SET_IND_ADAPTER command and try to enable
adapter interrupts for every device on the first startup. If the host
does not support adapter interrupts, fall back to normal I/O interrupts.
virtio-ccw adapter interrupts use the same isc as normal I/O subchannels
and share a su
Hi,
here's a proposal to support adapter (aka thin) interrupts for virtio-ccw.
The basic idea is to make host->guest signalling on s390 more lightweight.
Normal I/O interrupts have two parts: an interrupt that is made pending on
any of the guest cpus, and status that is made pending on the subcha
A command reject for a ccw may happen if we run on a host not supporting
a certain feature. We want to be able to handle this as special case of
command failure, so let's split this off from the generic -EIO error code.
Signed-off-by: Cornelia Huck
---
drivers/s390/kvm/virtio_ccw.c | 11
the wake_up_process func is included by spin_lock/unlock in vhost_work_queue,
but it could be done outside the spin_lock.
I have test it with kernel 3.0.27 and guest suse11-sp2 using iperf, the num as
below.
orignal modified
thread_num tp(Gbps) vhost(%) | t
On 06/07/2013 11:17 AM, Asias He wrote:
Ping! Is there someone out there who has a AMD box they could test this on?
I tested it on AMD box. Guest boots with this patch, guest does not
boot without it. I am not seeing the msr warning in both cases.
That's pretty interesting. Can you please p
On Thu, Jun 06, 2013 at 10:02:14AM -0500, Anthony Liguori wrote:
> Gleb Natapov writes:
>
> > On Wed, Jun 05, 2013 at 07:41:17PM -0500, Anthony Liguori wrote:
> >> "H. Peter Anvin" writes:
> >>
> >> > On 06/05/2013 03:08 PM, Anthony Liguori wrote:
> >> >>>
> >> >>> Definitely an option. Howeve
On Fri, Jun 07, 2013 at 02:06:40PM +0300, Pekka Enberg wrote:
> On 06/07/2013 11:17 AM, Asias He wrote:
> >>Ping! Is there someone out there who has a AMD box they could test this on?
> >
> >I tested it on AMD box. Guest boots with this patch, guest does not
> >boot without it. I am not seeing th
Hello.
On 07-06-2013 11:31, Qinchuanyu wrote:
the wake_up_process func is included by spin_lock/unlock in vhost_work_queue,
but it could be done outside the spin_lock.
I have test it with kernel 3.0.27 and guest suse11-sp2 using iperf, the num as
below.
orignal
On Fri, 2013-06-07 at 11:45 +0530, Raghavendra K T wrote:
> On 06/03/2013 11:51 AM, Raghavendra K T wrote:
> > On 06/03/2013 07:10 AM, Raghavendra K T wrote:
> >> On 06/02/2013 09:50 PM, Jiannan Ouyang wrote:
> >>> On Sun, Jun 2, 2013 at 1:07 AM, Gleb Natapov wrote:
> >>>
> High level questio
On Fri, Jun 07, 2013 at 08:20:33PM +0800, Asias He wrote:
> On Fri, Jun 07, 2013 at 02:06:40PM +0300, Pekka Enberg wrote:
> > On 06/07/2013 11:17 AM, Asias He wrote:
> > >>Ping! Is there someone out there who has a AMD box they could test this
> > >>on?
> > >
> > >I tested it on AMD box. Guest bo
the wake_up_process func is included by spin_lock/unlock in
vhost_work_queue,
but it could be done outside the spin_lock.
I have test it with kernel 3.0.27 and guest suse11-sp2 using iperf,
the num as below.
original modified
thread_num tp(Gbps) vhost(%) | tp
On Fri, Jun 7, 2013 at 9:50 PM, Qin Chuanyu wrote:
> the wake_up_process func is included by spin_lock/unlock in
> vhost_work_queue,
> but it could be done outside the spin_lock.
> I have test it with kernel 3.0.27 and guest suse11-sp2 using iperf,
> the num as below.
> original
Catalin, Will,
Please consider pulling the following branch to get the current
KVM/arm64 code to be merged in 3.11.
Note that this code doesn't get built as it stands, as it depends on
other bits and pieces coming from both the main KVM tree and the
KVM/ARM tree. Once these dependencies are met
Hi Linus,
The following changes since commit d683b96b072dc4680fc74964eca77e6a23d1fa6e:
Linux 3.10-rc4 (2013-06-02 17:11:17 +0900)
are available in the git repository at:
git://github.com/awilliam/linux-vfio.git tags/vfio-v3.10-rc5
for you to fetch changes up to 9a6aa279d3d17af73a029fa40654
From: David Daney
Signed-off-by: David Daney
---
arch/mips/include/asm/mipsregs.h | 2 ++
arch/mips/kernel/cpu-probe.c | 29 +
arch/mips/mm/tlbex.c | 20 +---
3 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/arch/mips/
From: David Daney
Introduce __compute_return_epc_for_insn0() entry point.
Signed-off-by: David Daney
---
arch/mips/include/asm/branch.h | 7 +
arch/mips/kernel/branch.c | 63 +++---
2 files changed, 54 insertions(+), 16 deletions(-)
diff --git a/a
From: David Daney
---
arch/mips/include/uapi/asm/inst.h | 23 ++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/arch/mips/include/uapi/asm/inst.h
b/arch/mips/include/uapi/asm/inst.h
index 0f4aec2..133abc1 100644
--- a/arch/mips/include/uapi/asm/inst.h
+++ b/a
From: David Daney
Also let CPU_CAVIUM_OCTEON select KVM.
Signed-off-by: David Daney
---
arch/mips/Kconfig | 1 +
arch/mips/kvm/Kconfig | 9 +
arch/mips/kvm/Makefile | 1 +
3 files changed, 11 insertions(+)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 7a58ab9..16e3d22
From: David Daney
Only the trap-and-emulate KVM code needs a Special tlb flusher. All
other configurations should use the regular version.
Signed-off-by: David Daney
---
arch/mips/include/asm/mmu_context.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/include/a
From: David Daney
The mipsvz implementation allows for SMP, so let's be able to create
all those vcpus.
Signed-off-by: David Daney
---
arch/mips/include/asm/kvm_host.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/k
From: David Daney
... and their accessors in asm-offsets.c
Signed-off-by: David Daney
---
arch/mips/include/asm/processor.h | 6 ++
arch/mips/kernel/asm-offsets.c| 5 +
2 files changed, 11 insertions(+)
diff --git a/arch/mips/include/asm/processor.h
b/arch/mips/include/asm/proces
From: David Daney
The MIPS VZ KVM code needs this to be able to manage the FPU.
Signed-off-by: David Daney
---
arch/mips/kernel/traps.c | 8
1 file changed, 8 insertions(+)
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index fca0a2f..2bdeb32 100644
--- a/arch/mips/
From: David Daney
Create the symbol KVM_MIPSTE, and use it to select the trap and
emulate specific things.
Signed-off-by: David Daney
---
arch/mips/kvm/Kconfig | 14 +-
arch/mips/kvm/Makefile | 14 --
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/arc
From: David Daney
The forthcoming MIPSVZ code doesn't currently use this, so it must
only be enabled for KVM_MIPSTE.
Signed-off-by: David Daney
---
arch/mips/include/asm/kvm_host.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kv
From: David Daney
Signed-off-by: David Daney
---
arch/mips/kernel/asm-offsets.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index 37fd9e2..db09376 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/as
From: David Daney
These save the instruction word to be used by MIPSVZ code for
instruction emulation.
Signed-off-by: David Daney
---
arch/mips/include/asm/ptrace.h | 4
arch/mips/kernel/asm-offsets.c | 4
2 files changed, 8 insertions(+)
diff --git a/arch/mips/include/asm/ptrace.h
From: David Daney
Signed-off-by: David Daney
---
arch/mips/include/asm/kvm_mips_vz.h | 29 +
1 file changed, 29 insertions(+)
create mode 100644 arch/mips/include/asm/kvm_mips_vz.h
diff --git a/arch/mips/include/asm/kvm_mips_vz.h
b/arch/mips/include/asm/kvm_mips_v
From: David Daney
Signed-off-by: David Daney
---
arch/mips/include/asm/thread_info.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/mips/include/asm/thread_info.h
b/arch/mips/include/asm/thread_info.h
index 895320e..a7a894a 100644
--- a/arch/mips/include/asm/thread_info.h
+++ b/arc
From: David Daney
If the CPU is operating in guest mode when a TLB related excpetion
occurs, give KVM a chance to do emulation.
Signed-off-by: David Daney
---
arch/mips/mm/fault.c | 8
arch/mips/mm/tlbex-fault.S | 6 ++
2 files changed, 14 insertions(+)
diff --git a/arch/mi
From: David Daney
We need to move it out of __init so we don't have section mismatch problems.
Signed-off-by: David Daney
---
arch/mips/include/asm/uasm.h | 2 +-
arch/mips/kernel/traps.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/mips/include/asm/uasm.h b/
From: David Daney
The new function (part) get_new_asid() can now be used from MIPSVZ code.
Signed-off-by: David Daney
---
arch/mips/include/asm/mmu_context.h | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/mips/include/asm/mmu_context.h
b/arch/mips/include/
From: David Daney
The kernel's struct pt_regs has many fields conditional on various
Kconfig variables, we cannot be exporting this garbage to user-space.
Move the kernel's definition to asm/ptrace.h, and put a uapi only
version in uapi/asm/ptrace.h gated by #ifndef __KERNEL__
Signed-off-by: Da
From: David Daney
There are accessors for both the guest control registers as well as
guest CP0 context.
Signed-off-by: David Daney
---
arch/mips/include/asm/mipsregs.h | 260 +++
1 file changed, 260 insertions(+)
diff --git a/arch/mips/include/asm/mipsregs
From: David Daney
Currently this is a little complex, here are the facts about how it works:
o When running in Guest mode we set the high bit of CP0_XCONTEXT. If
this bit is clear, we don't do anything special on an exception.
o If we are in guest mode, upon an exception we:
1) load the s
From: David Daney
Signed-off-by: David Daney
---
arch/mips/kernel/genex.S | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index 163e299..ce0be96 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -486,6 +486,9 @@ NE
From: David Daney
This makes it follow the pattern where the structure name is the
symbol name prefix.
Signed-off-by: David Daney
---
arch/mips/kernel/asm-offsets.c | 68 +++---
arch/mips/kvm/kvm_locore.S | 206 -
2 files changed, 137 insert
From: David Daney
The current implementation does nothing with them, but future MIPSVZ
work need them. Also add the asm-offsets accessors for the fields.
Signed-off-by: David Daney
---
arch/mips/include/asm/kvm_host.h | 8
arch/mips/kernel/asm-offsets.c | 8
arch/mips/kv
From: David Daney
It was a completely inconsistent mix of spaces and tabs.
Signed-off-by: David Daney
---
arch/mips/kvm/kvm_locore.S | 921 +++--
1 file changed, 464 insertions(+), 457 deletions(-)
diff --git a/arch/mips/kvm/kvm_locore.S b/arch/mips/kvm
From: David Daney
The proper MIPS name for this register is EPC, so use that.
Change the asm-offsets name to KVM_VCPU_ARCH_EPC, so that the symbol
name prefix matches the structure name.
Signed-off-by: David Daney
---
arch/mips/include/asm/kvm_host.h | 2 +-
arch/mips/kernel/asm-offsets.c
From: David Daney
When building for 64-bits we need these cases to make it build.
Signed-off-by: David Daney
---
arch/mips/kvm/kvm_mips.c | 4 ++--
arch/mips/kvm/kvm_mips_dyntrans.c | 4 ++--
arch/mips/kvm/kvm_mips_emul.c | 2 +-
arch/mips/kvm/kvm_tlb.c | 4 ++--
4 files
From: David Daney
We cannot clobber any registers on exceptions as any guest will need
them all.
Signed-off-by: David Daney
---
arch/mips/include/asm/mipsregs.h | 2 ++
arch/mips/include/asm/stackframe.h | 15 +++
arch/mips/kernel/cpu-probe.c | 7 ++-
arch/mips/kernel
From: David Daney
For a warning free compile, we need to use the width aware PTR_LI and
PTR_LA macros. Use LI variant for immediate data and LA variant for
addresses.
Signed-off-by: David Daney
---
arch/mips/kvm/kvm_locore.S | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff
From: David Daney
We don't know if we have the r4k specific functions available, so use
universally available __flush_cache_all() instead. This takes longer
as it flushes both i-cache and d-cache, but is available for all CPUs.
Signed-off-by: David Daney
---
arch/mips/kvm/kvm_mips_emul.c | 6
I should also add that I will shortly send patches for the kvm tool
required to drive this VM as well as a small set of patches that create
a para-virtualized MIPS/Linux guest kernel.
The idea is that because there is no standard SMP linux system, we
create a standard para-virtualized system t
From: David Daney
These patches take a somewhat different approach to MIPS
virtualization via the MIPS-VZ extensions than the patches previously
sent by Sanjay Lal.
Several facts about the code:
o Existing exception handlers are modified to hook in to KVM instead
of intercepting all exception
Hello.
On 06/08/2013 03:03 AM, David Daney wrote:
From: David Daney
If the CPU is operating in guest mode when a TLB related excpetion
occurs, give KVM a chance to do emulation.
Signed-off-by: David Daney
---
arch/mips/mm/fault.c | 8
arch/mips/mm/tlbex-fault.S | 6 ++
Raghu, thanks for you input. I'm more than glad to work together with
you to make this idea work better.
-Jiannan
On Thu, Jun 6, 2013 at 11:15 PM, Raghavendra K T
wrote:
> On 06/03/2013 11:51 AM, Raghavendra K T wrote:
>>
>> On 06/03/2013 07:10 AM, Raghavendra K T wrote:
>>>
>>> On 06/02/2013 09
On 06/07/2013 04:34 PM, Sergei Shtylyov wrote:
Hello.
On 06/08/2013 03:03 AM, David Daney wrote:
From: David Daney
If the CPU is operating in guest mode when a TLB related excpetion
occurs, give KVM a chance to do emulation.
Signed-off-by: David Daney
---
arch/mips/mm/fault.c | 8 +
kvmclock should not count while vm is paused, because:
1) if the vm is paused for long periods, timekeeping
math can overflow while converting the (large) clocksource
delta to nanoseconds.
2) Users rely on CLOCK_MONOTONIC to count run time, that is,
time which OS has been in a runnable state
From: Xiao Guangrong
Currently, memory synchronization is missed in emulator_fix_hypercall,
please see the commit 758ccc89b83
(KVM: x86: drop calling kvm_mmu_zap_all in emulator_fix_hypercall)
This patch fixes it by introducing kvm_vcpus_hang_on_page_start() and
kvm_vcpus_hang_on_page_end which
65 matches
Mail list logo