[parisc-linux] PCXS fixes
Albert Strasheim
fullung@ilink.nis.za
Thu, 11 Oct 2001 21:41:15 +0200
Hello parisc,
Has anyone given any thought to how one would go about solving the
problem outlined below? I am quite anxious to get my 720/50 working
properly. :-)
Keep up the good work, hackers!
Regards,
Albert
On Sat, 06 Oct 2001, Albert Strasheim wrote:
> Hello,
>
> On Wed, 03 Oct 2001, John Marvin wrote:
>
> <snip>
>
> > However, ls still hangs randomly (actually it is not random, it depends on
> > which directory the ls is done in). It gets stuck in a ldcw loop due to
> > the lock word not being 16 byte aligned. The problem is that we fixed the
> > alignment problems for static and dynamic allocations, but the align
> > attribute is ignored for automatic (stack) allocations. Note that
> > although ldcw requires 16 byte alignment for correct function, it does
> > not cause an unaligned fault if the address is not aligned, it just
> > doesn't work correctly!
> >
> > Here are some suggested fixes:
> >
> > 1) Fix the compiler to honor the aligned attribute for stack
> > allocations. I'm not sure how difficult this would be. I'm
> > not a compiler person, so someone else would have to do this.
> > I would guess that this problem is in the machine independent
> > part of the compiler. I'm not sure whether or not it would
> > be considered a bug. It might be worth writing a test for
> > the 386 version of gcc, and if it fails, report the "bug" and
> > see what happens ...
> >
> > 2) Change the lock structure to have 4 contiguous lock words, each
> > initialized to 1. Then the lock code can round the address up to the
> > nearest 16 byte aligned address and use that for the semaphore. If we
> > choose this solution we can just get rid of the aligned attribute,
> > since it would no longer serve any purpose.
>
> As anyone decided on what do here? What would the test that John
> mentions entail? How difficult is the second solution to implement?
>
> Regards,
>
> Albert