Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Aug 2001 10:52:40 +0800
From:      Rex Luo <rexluo@synology.com>
To:        Alfred Perlstein <bright@mu.org>, Rex Luo <rexluo@synology.com>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: unpaired splbio() and splx() in vfs_unmountall()
Message-ID:  <200108220252.KAA07814@synology.com>

next in thread | raw e-mail | index | archive | help

  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 <bright@mu.org> said: 
> * Rex Luo <rexluo@synology.com> [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 [alfred@freebsd.org]
> 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 : rexluo@synology.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200108220252.KAA07814>