2.0.31-pre9 + QNX + NoStackExec weirdness

Andrej Presern (andrejp@luz.fe.uni-lj.si)
Tue, 16 Sep 1997 22:20:44 +0200


Ok, here's the deal.

I'm experiencing some weird things using the 2.0.31-pre9
together with a QNX scheduler (1.09), the nonexecutable
stack patch, the delay fix and the cyrix patch.

When the screen blanker goes on and is on for some time,
I can't login to the system anymore and I can't even shut
down the system (hard reset does it:/). The first thing
I notice when the screenblanker pops off is that the load
is absolutely too high (1.5 even though NOTHING is running
- the screen blanker just turns the screen off, so I doubt
that's the reason for the load), then I notice that diald's
dctrl is in run queue 19 (? and that's ) and is locked (no
activity.. as if it was starved?) yet top and hifs say the
system is 95% idle..

The loadavg then slowly goes back to normal, but the dctrl
is still not responding to anything, the diald is not
working and I can't login anymore (except through the xdm
which makes the thing even stranger).

Now you call this weird? I call this 'the report #1'...
Let's go on to #2 :)

I saw there was a noexec stack patch on the 'mama' homepage,
downloaded it and patched the kernel. Now the things get
weirder - X server (and only the X server) starts LEAKING
memory like hell (that's like nothing ever gets freed - the
thing is 70 megs and rising in only a few minutes if I make
a mistake and start netscape).

I got the first noexec patch from linuxhq when it was still
up and running and I asumed the two should be more or less
identical except that the one that I got from the 'mama'
homepage was made explicitly for the pre9 while the first
one was for 2.0.30 (i think). All the patches went in cleanly.

Any suggestions? I think I can reproduce this at will.

Andrej

PS: I just checked the dctrl now (after a fresh boot):
[root@soda /usr/src]# qsched 323
pid: 323
policy: 0 (Adaptive)
timeslice: 200ms
fork_thresh: 15s
strv_thresh: 1000ms
ts_max: 1
run_q: 19
run_q_min: 19
run_q_max: 31

Hmm.. so I guess it IS that cpu intensive? Let's see the load..

[root@soda /usr/src]# uptime
10:10pm up 24 min, 2 users, load average: 0.08, 0.02, 0.06

Then again.. I guess not.. I wouldn't mind it droping into run
queue 19 due to high cpu usage but what in the hell got it to
MIN run queue 19???

PPS: One more thing ('the report #3').. to get the pid of dctrl
I did a 'ps -aux | grep dctrl' and got this:
[root@soda /usr/src]# ps -aux | grep dctrl
andrejp 323 0.2 2.8 2768 1796 ? S N 21:49 0:03 wish
/usr/bin/dctrl -

Now what I found to be weird here is that when I did this exact
same command before the reboot (when I couldn't login), I got
the 'grep dctrl' command in the listing too.. why is that? One
time I get both commands and the other I get just one? What's
the trick here?