On Fri, Feb 26, 2016 at 10:53:44AM -0500, xu mike wrote: > 2016-02-26 2:54 GMT-05:00 Christoffer Dall <christoffer.dall@xxxxxxxxxx>: > > On Thu, Feb 25, 2016 at 12:45:45PM -0500, xu mike wrote: > >> Hi Peter, > >> > >> 2016-02-25 10:30 GMT-05:00 Peter Maydell <peter.maydell@xxxxxxxxxx>: > >> > > >> > On 25 February 2016 at 15:17, xu mike <upennmike@xxxxxxxxx> wrote: > >> > > I'm a student from the University of Pennsylvania. I want to try KVM on ARM > >> > > boards. > >> > > > >> > > I have a Freescale IMX6 board [1] which has ARM Cortex A9 processors. > >> > > I'm wondering if KVM can run on the Freescale IMX6 board? or > >> > > Can KVM run on any ARM board with ARM Cortex A9 processors? > >> > > > >> > > I noticed at [2] that " KVM/ARM is designed specifically to work on ARM > >> > > processors with the virtualization extensions enabled to run unmodified > >> > > guest operating systems." > >> > > I'm wondering if this statement is still true? > >> > > >> > Yes, it is. You need a CPU with the virtualization extensions, > >> > and the A9 does not have them. You want (for instance) an A15 > >> > or an A7. There are cheap A7-based development boards out there, > >> > for instance the CubieTruck (which is not very fast but can run > >> > a mainline Linux kernel and KVM so is a reasonable getting-started > >> > development platform). > >> > >> > >> Thank you very much for your quick reply! > >> > >> I'm wondering if KVM community has any plan to make KVM compatible > >> with Cortex A9 processors? > >> > > > > Not that I'm aware, no. > > > >> If someone, with linux scheduler development experiment but without > >> porting experiment, wants to port KVM to Cortex A9, how hard could it > >> be to port KVM onto Cortex A9 processor? > > > > As Peter said, ARM is not a virtualizable architecture, so you need > > hardware support for virtualization to run hypervisors on an ARM system. > > > > Cortex-A9 does not have this support. > > > > You could implement something using either binary translation or > > paravirtualization, but neither is something we're immediately > > interested in accepting in mainline Linux. > > Right. I couldn't estimate how hard it will be to achieve the > paravirtualization/binary translation in KVM.. Probably it may involve > a lot of (assembly) code, since it requires to de-privilege those > privileged instructions. :-( > I don't think you'd have to write a lot of assembly code, but writing an in-kernel binary translator is simply beyond the scope of what KVM was designed for, and making a binary translator efficient and adding support for shadow page tables will be non-trivial. If anything, but again, I stress that I would *not* accept this upstream, you could build something that was paravirtualized with shadow page table support. > > > > What is your use-case for running on A9 specifically, as opposed to a > > CPU with virt support? > > The reason why I have to use A9 is because A9 has the special cache > controller, called PL310 cache controller, which is not supported in > A7 or A15. I want to use the special cache controller in > virtualization environment. That's why I'm so addicted to A9. :-( > If there is some latest ARM processor that has the PL310 cache > controller and virtulaizaiton extension support, that will be awesome! > However, I'm unaware of the ideal ARM processors. :-( Do you happen to > know? > I have no idea, no. I'm curious, why is it important for you to have a PL310 cache controller in a VM? Is this research or product oriented? In any case, I would give up on A9 virtualization and use a proper piece of hardware for virtualization on ARM. -Christoffer _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm