On Thu, 7 May 2015 15:33:53 +0200 (CEST) Jiri Kosina <jkosina@xxxxxxx> wrote: > On Mon, 4 May 2015, Oleg Nesterov wrote: > > > > All the calls in md.c are in a kernel thread so safe, but I'd rather have an > > > explicit "uninterruptible, but no load-average" wait.... > > > > Could you please explain why md_thread() does allow_signal(SIGKILL) ? > > > > I am just curious. It looks as if we want to allow user-space to "call" > > thread->run(), and this looks strange. > > One would think that this is because md wants to be notified when system > is going to be halted/rebooted, and userspace init (whatever that is) > decides to do 'kill -9 -1' to perform the final shutdown of md (the > question is why it really should be needed, becasue all filesystems should > be R/O by that time anyway). > Something like that. It is historical strangeness that might have seemed like a good idea at the time, but is hard to justify. There is an alt-sysrq that will remount filesystems read-only, but no alt-sysrq to switch RAID arrays to "idle/clean". So I leverages alt-sysrq-K, which does "kill -9 -1" (I think). Since md gained the ability to switch to idle/clean after a short timeout, and also the ability to use a write-intent-bitmap so only little bits of the array are ever non idle/clean, this all became much less interesting. NeilBrown
Attachment:
pgpjo8pQK2F64.pgp
Description: OpenPGP digital signature