L4Android performance issue
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Thu Jul 12 00:08:45 CEST 2012
Hi,
On Wed Jul 11, 2012 at 15:20:33 -0500, Mai, Haohui wrote:
> 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.
This is software rendering versus something with hardware support.
> 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.
Are you using PCI_bus_ident() instead of PCI_bus() in your vbus config?
> (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.
Looking at this a bit... this is just done for initializing the
ringbuffer which lives in non-caches memory already. It does not seem to
be used during runtime. There's also no comment why such a complete
global flush is required at all. Maybe to flush something else? Hmm. My
suggestion would thus just be to comment that out and see if it works
without.
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list