Messages in this thread | | | Date | Fri, 8 May 2015 08:37:00 +1000 | From | NeilBrown <> | Subject | Re: [PATCH] signals: Generate warning when flush_signals() is called from non-kthread context |
| |
On Thu, 7 May 2015 15:33:53 +0200 (CEST) Jiri Kosina <jkosina@suse.cz> 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 [unhandled content-type:application/pgp-signature] | |