On Mon, Apr 12, 2010 at 12:00:50PM +0200, Grzegorz Nosek wrote: > Hi all, > Sending this out before I spend much time researching as maybe > it's a known and fixed problem. > When I send a signal (apparently even 0, to check whether the > process is alive) from the host to a guest process, "something bad" > happens. sounds interesting ... judging from the patch you provided it hangs in a loop which constantly tries to send the signal and receives -ESRCH (which means, the process was not found at this time) > It looks like a spinlock isn't being released as all kinds of > processes are getting stuck in uninterruptible sleep, loadavg > shoots through the roof and the machine has to be power cycled > (sysrq-b works but e.g. sysrq-s never finishes). as I seem to be able to reproduce it here with the following sequence: # chcontext --xid 42 -- sleep 1000 & # kill -USR1 %% bash: kill: (<pid>) - No such process # kill -USR1 <pid> but only if the first kill returns with 'No such process' I'll investigate it shortly ... thanks, Herbert > There are no errors in dmesg (apart from usual "did lookup hidden > devpts" spam). FWIW, lockdep is off. > Best regards, > Grzegorz Nosek > > --------------------------------------------------------------------- > Versions: > Kernel: 2.6.27.42-00007-gf591647 > VS-API: 0x00020304 > util-vserver: 0.30.213; May 9 2007, 20:02:07 > > Features: > CC: gcc, gcc (GCC) 4.1.2 20061115 (prerelease) > (Debian 4.1.1-21) > CXX: g++, g++ (GCC) 4.1.2 20061115 (prerelease) > (Debian 4.1.1-21) > CPPFLAGS: '' > CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W -funit-at-a-time' > CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W > -fmessage-length=0 -funit-at-a-time' > build/host: i686-pc-linux-gnu/i686-pc-linux-gnu > Use dietlibc: yes > Build C++ programs: yes > Build C99 programs: yes > Available APIs: v13,net,v21 > ext2fs Source: e2fsprogs > syscall(2) invocation: alternative > vserver(2) syscall#: 273/glibc > > Paths: > prefix: /usr > sysconf-Directory: /etc > cfg-Directory: /etc/vservers > initrd-Directory: $(sysconfdir)/init.d > pkgstate-Directory: /var/run/vservers > vserver-Rootdir: /vservers