Para-virtualization support for ARM on Genode

Stefan Kalkowski stefan.kalkowski at ...1...
Fri Sep 26 13:13:43 CEST 2014


Hi Praveen,

On 09/26/2014 11:16 AM, Praveen B wrote:
> Hi Stefan,
> 
> Thank you for the information.
> 
> Can you explain how we can run the two tests, Network performance and
> compiling Genode's core on Genode tests?

The network performance was measured using the run script
"netperf_lwip", the Genode core compilation is measured using
"noux_tool_chain_auto". Both run scripts can be found in the 'ports'
repository, under 'repos/ports/run'.

> We will use latest Fiasco.OC kernel by modifying etc/foc.conf, if version
> matters.

It's just an assumption, as I said I don't know whether the developers
of Fiasco.OC fixed the SMP performance weakness in a more recent
version. The following e-mail from Christian Prochaska on the l4-hackers
mailing list explains the SMP problem in more detail:

  http://permalink.gmane.org/gmane.comp.micro-kernel.l4.devel/4896

Just a warning: if you're planning to upgrade to a more recent version
of Fiasco.OC, don't expect that everthing will run out-of-the-box.

Regards
Stefan

> 
> For linux performance we will use standard tools.
> 
> Regards
> Praveen
> 
> On Thu, Sep 25, 2014 at 6:44 PM, Stefan Kalkowski <
> stefan.kalkowski at ...1...> wrote:
> 
>> Hi Praveen,
>>
>> On 09/25/2014 12:12 PM, Praveen B wrote:
>>> Hi Stefan, (Sorry I was in a hurry and mentioned Norman in my previous
>> mail)
>>>
>>> I can run L4Linux, on i.MX6 board with Genode on Fiasco.OC kernel.
>>>
>>> But there is one confusion.
>>> Is Genode running as an application in L4Re? How are L4re, Genode and
>>> L4Linux related in the port for Fiasco.OC kernel?
>>
>> Genode isn't running as an application in L4Re. L4Linux in its
>> unmodified form uses L4Re bindings, as well as Fiasco.OC kernel
>> bindings. Our version of L4Linux in Genode replaces the L4Re library
>> with a Genode specific one that implements the same API. However,
>> Genode's L4Linux version is tied to the Fiasco.OC kernel bindings, like
>> the original one.
>>
>>>
>>> Can you give an estimate of how much is the performance drawback of
>>> running Genode over Fiasco.OC kernel over base-hw?
>>> How do we go about measuring the performance difference?
>>
>> Well, as always this is a matter of what kind of performance test you
>> do. I would be very cautious in judging performance in general.
>>
>> I can provide exactly two kinds of measurements we're doing regularily.
>>
>> The first is a network performance test (I/O burden), which measures
>> throughput of packets within a defined time range. The following numbers
>> are measured on a Cortex A9 Pandaboard:
>>
>>      |---------------------------------------|
>>      |    | Genode/Fiasco.OC |   Genode/HW   |
>>      |---------------------------------------|
>>      | RX |   70.2 Mbit/s    |   88.8 Mbit/s |
>>      |---------------------------------------|
>>      | TX |   89.7 MBit/s    |   93.7 MBit/s |
>>      |---------------------------------------|
>>
>> The second is compiling Genode's core process on top of Genode. The
>> following numbers are measured on a Cortex A15 Arndale board. With
>> Fiasco.OC the whole test takes 492 seconds, and on the HW-kernel it
>> takes 216 seconds. This test spawns a lot of child processes, and
>> destroys them again. Thereby everything is done sequentially.
>> Fiasco.OC's SMP implementation suffers from a performance weakness when
>> it comes to kernel object deletion. However, we use an already outdated
>> version of Fiasco.OC. It might be that the developers of Fiasco.OC
>> removed this performance weakness in the meantime.
>>
>> However, when it comes to L4Linux, most performance critical
>> functionality (e.g. paging code) is done using kernel primitives only.
>> That said, the difference of the runtime performance of L4Linux on top
>> of L4Re or Genode should be less important in contrast to ordinary
>> Genode applications. But I haven't measured it in the past.
>>
>>>
>>> We need only one virtual linux as Mr.Madhu mentioned. But trustzone is
>>> not yet working for i.MX6 board and another student, Chirag, is working
>>> on that. We will look into that solution once trustzone works.
>>>
>>> But Which one of the three solutions might be the better solution in
>>> terms of performance?
>>> I think it is Trustzone VM as the guest runs as there is no
>>> virtualization overhead of CPU and Memory. Please clarify.
>>
>> I would assume the same, especially when the VM uses a lot of hardware
>> devices on its behalf. But when doing heavy I/O related stuff on
>> virtualized devices it might be different. As the world switch between
>> non-secure/secure world is more costly than a normal context switch, and
>> the memory transfer (using non-cached memory) is more costly too, a
>> para-virtualized guest in the secure world might be cheaper. Again it
>> depends on the use-case, and you'll have to measure it, if performance
>> is such an issue.
>>
>> Regards
>> Stefan
>>
>>>
>>> Thanks in advance
>>>
>>> Regards
>>> Praveen,
>>> IIT Madras
>>>
>>>
>>> On Mon, Sep 22, 2014 at 8:37 PM, Praveen B <srinivasprv at ...9...
>>> <mailto:srinivasprv at ...9...>> wrote:
>>>
>>>     Norman,
>>>     Thank you for the reply.
>>>
>>>
>>>     On Mon, Sep 22, 2014 at 3:25 PM, Stefan Kalkowski
>>>     <stefan.kalkowski at ...1...
>>>     <mailto:stefan.kalkowski at ...1...>> wrote:
>>>
>>>         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'm sorry. That was wrong link.
>>>     The paper
>>>     is, http://systems.cs.columbia.edu/archive/pub/2010/07/kvm-for-arm/
>>>
>>>
>>>
>>>         >
>>>         > 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.
>>>
>>>
>>>     We will use the first option, that is, L4Linux with Genode on
>> Fiasco.OC.
>>>     Thank you
>>>
>>>     Regards
>>>     Praveen
>>>
>>>
>>>         >
>>>         > 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
>>>         <mailto: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/
>>>
>>>
>>  ------------------------------------------------------------------------------
>>>         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
>>>         <mailto:genode-main at lists.sourceforge.net>
>>>         https://lists.sourceforge.net/lists/listinfo/genode-main
>>>
>>>
>>>
>>>
>>>
>>>
>> ------------------------------------------------------------------------------
>>> 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/
>>
>>
>> ------------------------------------------------------------------------------
>> 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
>>
> 
> 
> 
> ------------------------------------------------------------------------------
> 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