Patchwork [GIT,PULL,1/4] core ARM kvm implementation for 3.9

login
register
mail settings
Submitter Will Deacon
Date Feb. 4, 2013, 1:55 p.m.
Message ID <1359986131-13034-1-git-send-email-will.deacon@arm.com>
Download mbox
Permalink /patch/217933/
State New
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git for-rmk/virt/kvm/core

Comments

Will Deacon - Feb. 4, 2013, 1:55 p.m.
Hi Russell, Arnd, Olof,

Here is the first (and most significant) pull request introducing KVM
support for ARM. I'm sending this later than I would have liked due to
various indirect dependencies on other branches that didn't stabilise
until the end of last week (then I was at FOSDEM over the weekend), but
this branch has been stable since -rc3.

The only direct dependency is on my for-rmk/perf branch, which you have
already pulled.

Cheers,

Will

--->8

The following changes since commit 9931faca02c604c22335f5a935a501bb2ace6e20:

  Linux 3.8-rc3 (2013-01-09 18:59:55 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git for-rmk/virt/kvm/core

for you to fetch changes up to da141b67d29a05267a9a0d56bd7856b7f3f58d44:

  Merge branch 'for-will/kvm/core' of git://github.com/virtualopensystems/linux-kvm-arm into for-rmk/virt/kvm/core (2013-01-24 10:37:49 +0000)

----------------------------------------------------------------

Christoffer Dall (15):
      ARM: Define CPU part numbers and implementors
      ARM: Use implementor and part defines from cputype.h
      ARM: Add page table and page defines needed by KVM
      ARM: Section based HYP idmap
      KVM: ARM: Initial skeleton to compile KVM support
      KVM: ARM: Hypervisor initialization
      KVM: ARM: Memory virtualization setup
      KVM: ARM: Inject IRQs and FIQs from userspace
      KVM: ARM: World-switch implementation
      KVM: ARM: Emulation framework and CP15 emulation
      KVM: ARM: User space API for getting/setting co-proc registers
      KVM: ARM: Demux CCSIDR in the userspace API
      KVM: ARM: Handle guest faults in KVM
      KVM: ARM: Handle I/O aborts
      KVM: ARM: Add maintainer entry for KVM/ARM

Marc Zyngier (1):
      KVM: ARM: Power State Coordination Interface implementation

Mark Rutland (3):
      ARM: perf: handle armpmu_register failing
      ARM: perf: remove unnecessary checks for idx < 0
      ARM: perf: simplify __hw_perf_event_init err handling

Rusty Russell (1):
      KVM: ARM: VFP userspace interface

Will Deacon (4):
      ARM: perf: remove redundant NULL check on cpu_pmu
      ARM: perf: don't pretend to support counting of L1I writes
      Merge branch 'for-rmk/perf' into for-rmk/virt/kvm/core
      Merge branch 'for-will/kvm/core' of git://github.com/virtualopensystems/linux-kvm-arm into for-rmk/virt/kvm/core

 Documentation/virtual/kvm/api.txt           |   99 ++-
 MAINTAINERS                                 |    9 +
 arch/arm/Kconfig                            |    2 +
 arch/arm/Makefile                           |    1 +
 arch/arm/include/asm/cputype.h              |   33 +
 arch/arm/include/asm/idmap.h                |    1 +
 arch/arm/include/asm/kvm_arm.h              |  214 ++++++
 arch/arm/include/asm/kvm_asm.h              |   82 +++
 arch/arm/include/asm/kvm_coproc.h           |   47 ++
 arch/arm/include/asm/kvm_emulate.h          |   72 ++
 arch/arm/include/asm/kvm_host.h             |  161 +++++
 arch/arm/include/asm/kvm_mmio.h             |   56 ++
 arch/arm/include/asm/kvm_mmu.h              |   50 ++
 arch/arm/include/asm/kvm_psci.h             |   23 +
 arch/arm/include/asm/pgtable-3level-hwdef.h |    5 +
 arch/arm/include/asm/pgtable-3level.h       |   18 +
 arch/arm/include/asm/pgtable.h              |    7 +
 arch/arm/include/uapi/asm/kvm.h             |  164 +++++
 arch/arm/kernel/asm-offsets.c               |   25 +
 arch/arm/kernel/perf_event.c                |   16 +-
 arch/arm/kernel/perf_event_cpu.c            |   51 +-
 arch/arm/kernel/perf_event_v6.c             |    4 +-
 arch/arm/kernel/perf_event_v7.c             |   18 +-
 arch/arm/kernel/perf_event_xscale.c         |    2 +-
 arch/arm/kernel/vmlinux.lds.S               |    6 +-
 arch/arm/kvm/Kconfig                        |   56 ++
 arch/arm/kvm/Makefile                       |   21 +
 arch/arm/kvm/arm.c                          | 1015 ++++++++++++++++++++++++++
 arch/arm/kvm/coproc.c                       | 1046 +++++++++++++++++++++++++++
 arch/arm/kvm/coproc.h                       |  153 ++++
 arch/arm/kvm/coproc_a15.c                   |  162 +++++
 arch/arm/kvm/emulate.c                      |  373 ++++++++++
 arch/arm/kvm/guest.c                        |  222 ++++++
 arch/arm/kvm/init.S                         |  114 +++
 arch/arm/kvm/interrupts.S                   |  478 ++++++++++++
 arch/arm/kvm/interrupts_head.S              |  441 +++++++++++
 arch/arm/kvm/mmio.c                         |  153 ++++
 arch/arm/kvm/mmu.c                          |  787 ++++++++++++++++++++
 arch/arm/kvm/psci.c                         |  108 +++
 arch/arm/kvm/reset.c                        |   74 ++
 arch/arm/kvm/trace.h                        |  235 ++++++
 arch/arm/mm/idmap.c                         |   55 +-
 arch/arm/mm/mmu.c                           |   22 +
 include/uapi/linux/kvm.h                    |    9 +
 44 files changed, 6621 insertions(+), 69 deletions(-)
 create mode 100644 arch/arm/include/asm/kvm_arm.h
 create mode 100644 arch/arm/include/asm/kvm_asm.h
 create mode 100644 arch/arm/include/asm/kvm_coproc.h
 create mode 100644 arch/arm/include/asm/kvm_emulate.h
 create mode 100644 arch/arm/include/asm/kvm_host.h
 create mode 100644 arch/arm/include/asm/kvm_mmio.h
 create mode 100644 arch/arm/include/asm/kvm_mmu.h
 create mode 100644 arch/arm/include/asm/kvm_psci.h
 create mode 100644 arch/arm/include/uapi/asm/kvm.h
 create mode 100644 arch/arm/kvm/Kconfig
 create mode 100644 arch/arm/kvm/Makefile
 create mode 100644 arch/arm/kvm/arm.c
 create mode 100644 arch/arm/kvm/coproc.c
 create mode 100644 arch/arm/kvm/coproc.h
 create mode 100644 arch/arm/kvm/coproc_a15.c
 create mode 100644 arch/arm/kvm/emulate.c
 create mode 100644 arch/arm/kvm/guest.c
 create mode 100644 arch/arm/kvm/init.S
 create mode 100644 arch/arm/kvm/interrupts.S
 create mode 100644 arch/arm/kvm/interrupts_head.S
 create mode 100644 arch/arm/kvm/mmio.c
 create mode 100644 arch/arm/kvm/mmu.c
 create mode 100644 arch/arm/kvm/psci.c
 create mode 100644 arch/arm/kvm/reset.c
 create mode 100644 arch/arm/kvm/trace.h
Russell King - ARM Linux - Feb. 4, 2013, 3:24 p.m.
On Mon, Feb 04, 2013 at 01:55:29PM +0000, Will Deacon wrote:
> Hello again,
> 
> This is the second part of the kvm-related series and moves ARM over to
> the generic timer broadcast implementation, currently queued by tglx in
> -tip.
> 
> Please note that, due to this dependency, this branch contains mainline
> up to ~-rc6, so you may want to keep it on a separate branch to avoid
> pulling in a bunch of unrelated changes from -tip.

Both 1 and 2 pulled and merged.  I'll wait 24 hours before pushing this out
so that the nightly build can have a go at it before the new devel-stable
branch gets published.
Olof Johansson - Feb. 5, 2013, 10:37 p.m.
On Mon, Feb 04, 2013 at 03:24:26PM +0000, Russell King - ARM Linux wrote:
> On Mon, Feb 04, 2013 at 01:55:29PM +0000, Will Deacon wrote:
> > Hello again,
> > 
> > This is the second part of the kvm-related series and moves ARM over to
> > the generic timer broadcast implementation, currently queued by tglx in
> > -tip.
> > 
> > Please note that, due to this dependency, this branch contains mainline
> > up to ~-rc6, so you may want to keep it on a separate branch to avoid
> > pulling in a bunch of unrelated changes from -tip.
> 
> Both 1 and 2 pulled and merged.  I'll wait 24 hours before pushing this out
> so that the nightly build can have a go at it before the new devel-stable
> branch gets published.

Sounds good. I'll deal with 3 and 4 once you're happy with 1/2 and
they're out, since we need the same as base.


-Olof
Will Deacon - Feb. 7, 2013, 12:15 p.m.
Hi Olof,

On Tue, Feb 05, 2013 at 10:37:28PM +0000, Olof Johansson wrote:
> On Mon, Feb 04, 2013 at 03:24:26PM +0000, Russell King - ARM Linux wrote:
> > On Mon, Feb 04, 2013 at 01:55:29PM +0000, Will Deacon wrote:
> > > This is the second part of the kvm-related series and moves ARM over to
> > > the generic timer broadcast implementation, currently queued by tglx in
> > > -tip.
> > > 
> > > Please note that, due to this dependency, this branch contains mainline
> > > up to ~-rc6, so you may want to keep it on a separate branch to avoid
> > > pulling in a bunch of unrelated changes from -tip.
> > 
> > Both 1 and 2 pulled and merged.  I'll wait 24 hours before pushing this out
> > so that the nightly build can have a go at it before the new devel-stable
> > branch gets published.
> 
> Sounds good. I'll deal with 3 and 4 once you're happy with 1/2 and
> they're out, since we need the same as base.

1 and 2 are now in rmk's devel-stable branch, so we should be good to go
with the third series. As highlighted by me and Rob, the fourth set likely
needs a new base in arm-soc to minimise both the diffstat and number of
merge conflicts.

Cheers,

Will