Dear,
I modifid kernel to write to disk directly after unmount all mounted
filesystem in boot() kern/kern_shutdown.c. However, I found that my IO requests
wouldn't have callback from device interrupt routine. I traced the codes and use
gdb to find something out. The interesting is after execute
vfs_unmountall() -> dounmount() -> ffs_unmount() -> ffs_flushfiles() ->
vflush()-> ??? the interrupt mask is set by splbio() without splx(),
therefore, all my following requests cannot return.
Notice that, the situation only happens after heavy IO, for example: cp 30 files
at the same time.
I use spl0() to solve the prolbem, but I think it's not the right way to do
that. Can anyone provide some clues or suggestions.
Thanks
--
Rex Luo
Tel : 886-2-25521814 Ext. 824
Fax : 886-2-25521824
e-mail : [EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message