Port-vax archive

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

Current lwp



While searching for the reason that interrupt sometimes are locked out, I wanted to check what the current lwp is, and I'm confused.

In cpu.h defined curlwp as the contents of the supervisor stack pointer. No problem with that. If supervisor mode isn't used anyway, it's a good register to use for something else.

However, nothing ever sets the supervisor stack pointer to any value. The only time it is set is during boot, when it's set to lwp0, and then nothing more.

But plenty of places reads the current lwp. Does this thing really work? If so, what am I missing? Where is the SSP being set???

As for the missing interrupts, I've come as far as realizing that sometimes mi_switch() will switch to a process, but remain at IPL_SCHED, which obviously will cause my observed problem, but I have not yet figured out under which circumstances this happens.

        Johnny

--
Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: bqt%softjar.se@localhost             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


Home | Main Index | Thread Index | Old Index