*BSD News Article 23451


Return to BSD News archive

Xref: sserve comp.os.386bsd.questions:6585 comp.os.386bsd.bugs:1736 comp.os.386bsd.misc:1401
Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!convex!convex!darwin.sura.net!haven.umd.edu!news.umbc.edu!eff!news.kei.com!bloom-beacon.mit.edu!ai-lab!life.ai.mit.edu!mycroft
From: mycroft@duality.gnu.ai.mit.edu (Charles Hannum)
Newsgroups: comp.os.386bsd.questions,comp.os.386bsd.bugs,comp.os.386bsd.misc
Subject: Re: [FreeBSD-1.0R] Epsilon -> Release patches - problems
Date: 08 Nov 1993 01:48:06 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 31
Message-ID: <MYCROFT.93Nov7204806@duality.gnu.ai.mit.edu>
References: <CG57or.LHL@agora.rain.com>
NNTP-Posting-Host: duality.ai.mit.edu
In-reply-to: davidg@agora.rain.com's message of 7 Nov 93 22:26:49 GMT


In article <CG57or.LHL@agora.rain.com> davidg@agora.rain.com (David
Greenman) writes:

      The above paragraph is assuming that you allocate more buffer
      headers than pages; if not, then it hardly matters, because you
      could just assign a page to each buffer header statically.

   Yeah, well, we don't! ...and this makes all of the rest of your
   analysis false.

You are (again) incorrect.  It simply means that assuming the worst
possible memory fragmentation you can still allocate a 4k buffers.
That's fine if you only care about 4k file systems.  Given 8k file
systems, it is still not that difficult to get enough fragmentation to
cause noticable performance degradation--the most likely case being if
you also try to use 4k file systems at the same time (say, on a floppy
disk).

The worst case would obviously be alternating allocations of 4k and 8k
blocks; it is easy to see why this would cause many unfillable 4k
fragments in the address space.  Assuming less adversarial timing, the
fragmentation will build up over the life of the system, but it will
still, in *fact*, occur.


And you have not justified the position that the buffer cache is
`dynamic'.  In this context the word means (and always has) that it
responds to other needs for memory in the system--primarily user
processes.