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