Re: QMC driver for 860?
From: Joakim Tjernlund <hidden>
Date: 2002-12-02 17:11:09
Joakim Tjernlund wrote:quoted
quoted
OK You asked for it ;). The file netvia_tsa.c is the actual QMC + stuff driver. The file netvia_bri.c is an example driver. The header files are the QMC definitions. Linux kernel version is 2.4.20. Don't hesitate to ask for any explanations. PantelisThanks a lot! I have just browsed the driver and I noticed that there is room for performance improvements in netvia_tsa.c w.r.t memcpy(). You can avoid the memcpy() call for received packets by using invalidate_dcache_range(). I did this for the 8xx_io/enet.c driver a few weeks ago(it's not in BK yet). See http://lists.linuxppc.org/linuxppc-embedded/200210/msg00317.html and http://lists.linuxppc.org/linuxppc-embedded/200210/msg00272.html JockeYes, I know the trick. I'm looking forward to see your changes make it in. As it stands I'm not tracking the BK PPC tree, but the Linus tree. Being behind the company firewall, BK is not very useful.
The patch should apply to linus tree as well. There is just a small bug in my second version(the invalidate_dcache_range() call must be moved).
In this driver case since I'm reading the packet in a non-cachable area, and not directly in a skb, I'm not convinced that the invalidate_dcache_range will be a great win.
It should be a win since the patch removes the need for non-cachable memory and a memcpy()(only add a invalidate_dcache_range call for non cache coherent CPUs like the 8xx). Jocke
If you do any performance testing I'm very interested in your results. Pantelis P.S. Is there anyone in the list interested in this? Should I clean it up, and submit it?
Is QMC supported on other families than 8xx? If so I think it would be a good idea. The 862 even has the QMC built in so there must be a need for this. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/