Subject: Re: Process exiting but still running
To: R. Braun <syn@sceen.net>
From: Andrey Petrov <petrov@netbsd.org>
List: port-sparc64
Date: 12/18/2003 12:15:05
On Thu, Dec 18, 2003 at 11:19:29AM -0800, Andrey Petrov wrote:
> On Thu, Dec 18, 2003 at 05:45:28PM +0100, R. Braun wrote:
> > Hi,
> >
> > One of the users of my sparc64 shell server has tested some sparc64 assembly
> > code. He created a process which keeps running in RE+ state :
> >
> > 9138 p2- RE+ 6:03.52 (h)
> >
> > Later, the process moved to the RNE state (nobody niced it) :
> >
> > 9138 p2- RNE 13:03.16 (h)
> >
> > here is the source code :
> >
> > .global main
> > main:
> > sub %sp,4,%sp
> > mov 42,%o0 // exit(42)
> > mov 1,%g1 // 1 = SYS_exit
> > ta 9 // get the syscall
> >
> > I guess the problem comes from the sub %sp,4,%sp line. Though it is a
> > programming error (in this case it was used to see how the machine would handle
> > such a programming error), is there no way to prevent this ? And is it related
> > to the architecture or can NetBSD handle it ?
> >
>
> It should but it not always does it properly. Thanks for test.
> And yes, it is sparc specific problem due to register windows lazy save
> operations.
>
And -current DEBUG kernel handles it correctly. *sigh* unfortunately.
Andrey