Dear Alfred,
I have tried to add several asserts to verify its interrupt mask, however,
the abnormal behaviour disappered if I did that. That's really rediculous and
I don't know why? I would continue to find out what's the reason, and feedback
if something new.
Anyway, I really appreciate your help and kindness. Further question, what
kind of books, or news, information I can get to study about pc's interrupt
handling and architecture.
Thanks,
-- Rex Luo
Alfred Perlstein <[EMAIL PROTECTED]> said:
> * Rex Luo <[EMAIL PROTECTED]> [010821 04:14] wrote:
> > 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.
>
> That makes no sense. All you need to do is find the where the splbio()
> is that doesn't have a corresponding splx(). You can use the SPLASSERT
> functions to do that.
>
> --
> -Alfred Perlstein [[EMAIL PROTECTED]]
> Ok, who wrote this damn function called '??'?
> And why do my programs keep crashing in it?
>
--
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