Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: SIGIO, xemacs random crashes on SMP system



On Wed, Sep 17, 2008 at 09:35:43PM +0100, Roy Marples wrote:
> On Wed, 2008-09-17 at 20:58 +0200, Anthony Mallet wrote:
> > Clearly, the direction flag is not set while the cpu is doing the 'rep 
> > movsl',
> > just after the 'std'. Then, of course, the program fails to pass the test 
> > and
> > asserts(). 
> > 
> > There's something wrong somewhere, isn't it?
> 
> I have absolutely no idea about what you posted, but I do recall a
> discussion on Slashdot about a direction flag being set by gcc because
> none of the kernels (Linux, *BSD, etc) did for i386 even when they
> should be according to the ABI.
> 
> http://lwn.net/Articles/272048/
> http://gcc.gnu.org/gcc-4.3/changes.html
> 
> Is this the fault?

It is responsible, well sort of...

The code to clear DF on signal handler entry was added (to i386 but
not amd64), but the DF was not restored when the sugnal handler
returned.

Christos has fixed 'current' in rev 1.4 of x86/include/psl.h

Looking at the definition of PSL_USER, I don't think it should contain
PSL_MBO - which would allow buildcontext() to remove all of PSL_USER
from the flags.

        David

-- 
David Laight: david%l8s.co.uk@localhost


Home | Main Index | Thread Index | Old Index