Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!sol.ctr.columbia.edu!news.kei.com!news.byu.edu!cwis.isu.edu!u.cc.utah.edu!cs.weber.edu!terry From: terry@cs.weber.edu (A Wizard of Earth C) Newsgroups: comp.os.386bsd.bugs Subject: Re: Mixing 4k and 8k filesystems Date: 17 Nov 1993 03:13:17 GMT Organization: Weber State University, Ogden, UT Lines: 50 Message-ID: <2cc4sd$6s6@u.cc.utah.edu> References: <2c7nn4$3g5@cleese.apana.org.au> <35346@ksr.com> NNTP-Posting-Host: cs.weber.edu In article <35346@ksr.com> jfw@ksr.com (John F. Woods) writes: > >I run NetBSD-current. I have 8K filesystems on most partitions, but a 4K >filesystem on /usr/spool/news (which is on the same disk as another 8K >partition, /usr/src). All the partitions get regular exercise; I've never >seen any kind of random filesystem curdling > > except > >when running the machine with the motherboard external cache enabled. It is >said that some motherboards have faulty cache logic that doesn't do DMA >watchdogging right, and sure enough, disabling my external cache is correlated >with seeing no filesystem curdling. (It's also much less of a performance >hit than I would have expected.) You might try this if your problems recur, >but I haven't seen anyone say that mixing 4K and 8K filesystems doesn't work. I've seen the "mixing 4k and 8k filesystems doesn't work" more than once, but it is simply not true; the supposed problem is fragging of the cache buffer allocation pool so that there aren't any buffers left for 8k use. NetBSD does not have this problem because they have unified the VM and buffer cache (at least on current). FreeBSD doesn't have this problem because of the way page reclamation is done (at least on current). A combination of both approaches would be "a good thing" (tm). The set of problems that "go away when your external cache is disabled" is a result of the BINVD instruction not being honored on the external cache. This is a side effect of BINVD being used at all. The use of BINVD is a hack to get around the "non-cacheable" bit not being set for the page descriptors for the buffers that can be DMA'ed to without updating the cache (ie: bus mastering DMA by a card). The correct soloution is to *remove* the BINVD and *add* the "non-cacheable" bits as need (per a bounce buffer DMA alloc). Disabling the cache is an acceptable workaround for now, but it is not something you want to do (give up hardware performance for software foibles). Terry Lambert terry@cs.weber.edu --- Any opinions in this posting are my own and not those of my present or previous employers.