Matthew Dillon wrote:
[..]
> :Oh, one other thing that occurred to me..  Under 4.0-current, I regularly 
> :(ie: within 30 seconds of boot) get if_de tranmitter underflows.  My 
> :console corruption was happening at the instant that de0 was being 
> :configured with ifconfig.  exmh is running to a remote display over that 
> :de0 interface.
> :
> :Under Jan 16 3.0-current, I do not get that tranmitter underflow..
> :
> :The only thin I can think of about if_de that's unusual that is VM related
> :(apart from the complexity of the code) is that it uses configmalloc().  I 
> :wonder if this is somehow setting the scene for the later failures?  It's 
> :certainly suspicious that has done strange things when being ifconfig'ed, 
> :including things like trashing the serial console on no less than a dozen 
> :occasions.
> :
> :Cheers,
> :-Peter
> 
>     Hmmm..  HMMMMMM.  contigmalloc, eh?   You might be onto something here.
>     I will investigate it.
> 
>     The problem was are having is that, somehow, a vm_page_t in the PQ_CACHE
>     is being set dirty.  
> 
>     Sinc vm_page_cache() panics if m->dirty is set, then m->dirty must be get
    ting
>     set *after* the page has been moved to the cache.
> 
>     contigmalloc() looks suspicious.

Damn, I must be loosing my mind.  if_de doesn't use contigmalloc.. it 
either did, or was going to as a result of the problem of the transmit 
descriptor array crossing a page boundary that had to be contiguous.  In 
the end there were two seperate malloc's, each less than PAGE_SIZE.

Cheers,
-Peter




To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to