Thread (16 messages) flat view 16 messages, 5 authors, 2007-06-15

Re: 83xx GPIO/EXT int in arch/powerpc/

From: Kumar Gala <hidden>
Date: 2007-06-12 13:31:12

What is more disturbing though, is that a number of operations on the
powerpc arch seems significantly slower wrt the ppc arch.

ioremap and iounmap being the most important one: we are using a small
driver that uses one of the UPMs in combination with GPIOs for HPI  
(Host
Port Interface) for TI DSPs.

Where the loading of a DSP took only 3 seconds, it went up to over a
minute on powerpc (same driver code).
I'm confused what you are comparing here, 3 seconds on arch=ppc vs  
over a minute on arch=powerpc?
Changing the driver to ioremap and unmap 0xe2400000 only once at  
driver
initialisation and unloading (not really relevant on this embedded
system, shame on me) instead twice for every word greatly improves the
time (around one second). However, this optimisation has the same  
effect
on ppc too :-/

Running the same application with the same modules on ppc and powerpc
(transferring data from the network to an FPGA) has a 50% higher  
load on
powerpc. The transfer is done with mapping user pages into the kernel
and DMA'ing them over PCI. What all driver have in common is that  
there
are quite some writes/reads to the IMMR configuration.
I'd expect the driver to be exactly the same (or close to it) for  
arch=ppc vs arch=powerpc.
Decreasing the read and writes to the LBC for HPI (0xe2400000)  
seems to
improve the overall load.

So my question would be if I need to specify a special section in the
dts file for some reason; next to the U-Boot configuration that sends
writes to this address through the UPMB?

If not, is there any other reason that might account for these
significant performance drops?
There shouldn't be, but if you are seeing this we really should  
figure out what's going on.

What kernel is this on?  What processor are you using?

- k
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help