actually it's worse than that in my current implementation: static int panic_coreonpanic(struct notifier_block *self, unsigned long unused1, void *unused2) { if ( uml_coreonpanic ) { /* cleanup so we have less to cleanup [linux] on the host */ /* could panic in uml_cleanup though so we need a check */ if ( uml_exitcode++ < 1 ) { uml_cleanup(); } /* to prevent keyboard from causing terminal to spew during dump */ block_signals(); abort(); } return(0); } Gerd Knorr wrote: >>I liked this too. Here's a pass at it if you like (attached). >> >> > >Sorry for the delay, going over this while being busy updating my >patches right now ... > > > >>+static int panic_coreonpanic(struct notifier_block *self, unsigned long unused1, >>+ void *unused2) >>+{ >>+ if(uml_coreonpanic){ >>+ uml_cleanup(); >>+ block_signals(); >>+ abort(); >> >> > >What is the point of doing that? I'd just let it dump core without any >cleanups, to get the state of the uml kernel dumped to the disk with few >modifications as possible. Any changes might make the analysis of the >crash harder or even impossible. > > Gerd > > > -- db