qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 00/12] KVM Support for MIPS32 Processors


From: Zhang, Yang Z
Subject: Re: [Qemu-devel] [PATCH 00/12] KVM Support for MIPS32 Processors
Date: Mon, 4 Mar 2013 01:21:40 +0000

Sanjay Lal wrote on 2013-03-02:
> The following patchset implements KVM support for MIPS32 processors,
> using Trap & Emulate, with basic runtime binary translation to improve
> performance.
> 
> In KVM mode, CPU virtualization is handled via the kvm kernel module,
> while system and I/O virtualization leverage the Malta model already present
> in QEMU.
One question(maybe stupid):
I don't see any changes to mips32 kernel. But you said cpu virtualization is 
handled via kvm kernel module. How it handle it?

> Both Guest kernel and Guest Userspace execute in UM. The Guest address
> space is
> as folows:
> Guest User address space:   0x00000000 -> 0x40000000
> Guest Kernel Unmapped:      0x40000000 -> 0x60000000
> Guest Kernel Mapped:        0x60000000 -> 0x80000000
> 
> As a result, Guest Usermode virtual memory is limited to 1GB.
> 
> The Malta model has been enhanced to support SMP guest kernels via support
> for the CPS bootcode from MIPS  which supports bootstrapping multiple cpus.
> A model for the MIPS GIC has also been added to support IPIs.
> This allows booting Linux in full SMP mode with a cluster of MIPS32R2 cpus.
> 
> There is a companion kernel patchset for KVM that has been posted on
> the KVM/MIPS mailing lists.
> 
> --
> Sanjay Lal (12):
>   KVM/MIPS: Bootcode for MIPS SMP configurations with a GCMP
>   KVM/MIPS: GIC emulation for SMP guests.
>   KVM/MIPS: Add save/restore state APIs for saving/restoring KVM
>     guests. KVM/MIPS: Do not start the periodic timer in KVM mode.
>     Compare/Count timer interrupts are handled in-kernel. KVM/MIPS: In
>     KVM mode, inject IRQ2 (I/O) interupts  via ioctls(). COP0 emulation
>     is in-kernel KVM/MIPS: Define APIs to convert Guest KSEG0 <-> Guest
>     Physical addresses.
>   KVM/MIPS: QEMU <-> Kernel interface for KVM/MIPS
>   KVM/MIPS: Enable KVM/MIPS for MIPS targets.  Add MIPS GIC code to the
>     build.
>   KVM/MIPS: set sigmask length to 16 for MIPS targets.
>   KVM/MIPS: Set page size to 16K in KVM mode.
>   KVM/MIPS: MIPS specfic APIs for KVM.
>   KVM/MIPS: General KVM support and support for SMP Guests
>  configure                         |  17 +- hw/gt64xxx.c                
>       | 317 +++++++++++++++++++++++++++++ hw/mips/Makefile.objs         
>     |   2 +- hw/mips_addr.c                    |  14 ++
>  hw/mips_cps_bootcode.h            | 310 ++++++++++++++++++++++++++++
>  hw/mips_cpudevs.h                 |   4 + hw/mips_gcmpregs.h           
>      | 122 +++++++++++ hw/mips_gic.c                     | 418
>  ++++++++++++++++++++++++++++++++++++++ hw/mips_gic.h                   
>   | 378 ++++++++++++++++++++++++++++++++++ hw/mips_int.c                
>      |  15 ++ hw/mips_malta.c                   | 192 +++++++++++------
>  hw/mips_timer.c                   |  13 +- kvm-all.c                   
>       |   5 + linux-headers/asm-mips/kvm.h      |  94 +++++++++
>  linux-headers/asm-mips/kvm_para.h |  10 + target-mips/Makefile.objs    
>      |   1 + target-mips/kvm.c                 | 292
>  ++++++++++++++++++++++++++ target-mips/kvm_mips.h            |  21 ++
>  target-mips/mips-defs.h           |   5 + 19 files changed, 2157
>  insertions(+), 73 deletions(-) create mode 100644
>  hw/mips_cps_bootcode.h create mode 100644 hw/mips_gcmpregs.h create
>  mode 100644 hw/mips_gic.c create mode 100644 hw/mips_gic.h create mode
>  100644 linux-headers/asm-mips/kvm.h create mode 100644
>  linux-headers/asm-mips/kvm_para.h create mode 100644 target-mips/kvm.c
>  create mode 100644 target-mips/kvm_mips.h
> --
> 1.7.11.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to address@hidden
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


Best regards,
Yang





reply via email to

[Prev in Thread] Current Thread [Next in Thread]