Para-virtualization support for ARM on Genode

Stefan Kalkowski stefan.kalkowski at ...1...
Mon Sep 22 11:55:25 CEST 2014


Hi,

On 09/22/2014 08:26 AM, Praveen B wrote:
> Hi 
> 
> We are able to run Genode-14.08 on i.MX6 board.
> Now I am planning to add support for virtualization for Genode on i.MX6. 
> 
> As the processor is Cortex-A9, it does not have virtualization
> extensions. So I am planning to implement a hypervisor to run
> para-virtualized linux, similar to the one proposed in the following paper,
> http://systems.cs.columbia.edu/archive/pub/2014/03/kvm-arm-the-design-and-implementation-of-the-linux-arm-hypervisor/

The paper you're refering to doesn't use a para-virtualization approach,
but uses hardware assisted virtualization.

> 
> I am not sure that would work for ARMv7 as they have only tested for
> ARMv5. Can you suggest any other para-virtualization solutions preferred
> for the implementation of Genode. I saw L4Linux but it is a port of
> linux to L4Re and not to the kernel itself. On the other hand,
> SierraVisor and Xen  are bare metal hypervisors.

You're right vanilla L4Linux is tied to L4Re, but we've a port of
L4Linux that runs on Genode, but on Fiasco.OC only. Alternatively, if
one instance of Linux is enough for your scenario, you might use the
normal world of TrustZone to ease up para-virtualization, as you don't
have to implement CPU virtualization on your own, but other devices
only. The third alternative of course is to para-virtualize Linux from
scratch.

> 
> The road map for Genode 14.11 says virtualization support for Cortex-A7.
> I assume you will be using virtualization extensions and not a
> para-virtualization solution. 

Yes, we're planning to support hardware-assisted virtualization,
although it should be called Cortex-A15 instead of Cortex-A7.
Nevertheless, the difference should be negligible.

> 
> Can you suggest which is the best place to start. Should I implement a
> VMM similar to tz_vmm server or should it be implemented in base-hw as
> VMM should be in supevisor mode and not user mode.

If you're planning to build a para-virtualized solution on your own, I
would strongly recommend to follow the spirit of Genode's microkernel
based architecture. To minimize the trusted computing base (TCB) of all
applications, the kernel shouldn't include code that is used just by a
corner-case (para-virtualization) application. Instead use the scheme of
having the virtual machine monitor within the user-mode. Thereby, the
VMM might be linked together with the para-virtualized VM, like it is
done in the L4Linux approach, or you change to a disjunct VMM task
whenever the VM traps.

Regards
Stefan

> 
> Regards
> Praveen Srinivas
> M.Tech 2nd Year,
> CSE, IIT Madras
> 
> 
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> 
> 
> 
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 

-- 
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ ยท http://genode.org/




More information about the users mailing list