Re: mpc8xx and ld.so problem
From: Marcelo Tosatti <hidden>
Date: 2005-07-08 15:03:24
Hi Yuli, On Mon, Jul 04, 2005 at 11:22:14AM +0300, Yuli Barcohen wrote:
quoted
quoted
quoted
quoted
quoted
Jason McMullan writes:[...deleted...] Jason> Ha. Funny. The glibc powerpc maintainer doesn't want any Jason> embedded fixes in the mainline. Last I checked, that was for Jason> 'the tools vendors' to fix. Jason> "We won't work around processor bugs" is their philosophy. [...deleted...] I investigated the problem a bit when I had trouble with a self-compiled glibc a year or so ago. IIRC, I found bug in the memset code, not in the chip. The code was just wrong for cache line sizes not equal to 32. So memset.S is good for 60x series (PQII included) but for 8xx it fails.
I suppose you didnt actually use dcbz for userspace memset on 8xx?
We use dcbX instructions in some kernel drivers and since we never had any problems with those drivers I'm a bit surprised to hear that all 8xx chips have got that bug.
The problem is that the DAR register is correctly unset (it comes as NULL IIRC) on pagefaults for the dcbz instruction. The dcbz instructions you issue are probably always works on kernel addresses whose pagetables are present? Joakim has developed a workaround for the problem... although I promised him several times to test it I never managed to get dcbz to work on the kernel copying functions. :( He has posted it here in the past... here it is attached anyway.
Attachments
- dcbx.patch5 [text/plain] 8750 bytes · preview