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