L4Android performance issue

Mai, Haohui haohui.mai at gmail.com
Wed Jul 11 22:20:33 CEST 2012


Hi,

This is an important problem to solve. I'm seeing 60x slow down on the
graphics component of L4Android right now because of this frame buffer
issue.

I'm using an Eee PC which has an i945 chip. I tweaked my configuration
a little bit but I still had no luck.

There're two possible bugs(?) here:

(1) The driver got confused because l4pci changes the func field of
the pci table. The func field in PCI table is to describe whether
there's another device attached to the slot. Here is code in Linux
kernel causing problem:

        gmch_device = pci_get_device(PCI_VENDOR_ID_INTEL, device, NULL);
        if (gmch_device && PCI_FUNC(gmch_device->devfn) != 0) {
                gmch_device = pci_get_device(PCI_VENDOR_ID_INTEL,
                                             device, gmch_device);
        }

On my machine, L4PCI reports the func field of my card (gmch_device in
the code) as 1, which makes it find the "next" display card (i.e.,
executing the if branch).
Therefore it cannot find the device.

I worked around it by disabling the if statement, and the kernel can
detect the card and map in mmio memory.

(2) L4Linux is unable to execute "wbinvd" instruction. wbvind is a
privileged instruction to write back all caches and invalidate them.
The driver is executing this instruction at ring 3 -- thus generating
a #GP fault.

This is more troublesome and I don't really have a good idea of how to
fix it. I appreciate if you can tell me the quickest way of fixing it.

~Haohui

On Mon, Jul 9, 2012 at 4:54 PM, Adam Lackorzynski
<adam at os.inf.tu-dresden.de> wrote:
> Hi,
>
> On Mon Jul 09, 2012 at 15:49:35 -0500, Mai, Haohui wrote:
>> Getting rid of mag does improve the performance. I want to push it
>> even further -- can I get rid of fb-drv completely to let L4Linux
>> access the hardware directly?
>
> fb-drv is a passive component doing nothing (except possible paging)
> after startup so that won't do any difference itself. The alternative
> here would probably be to not do any VESA/fbmem and let a graphics
> driver inside L4Linux completely manage the graphics card. Hopefully
> works as with any other PCI device.
>
>
> Adam
> --
> Adam                 adam at os.inf.tu-dresden.de
>   Lackorzynski         http://os.inf.tu-dresden.de/~adam/
>
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers




More information about the l4-hackers mailing list