Alfred Perlstein wrote: > Hmm, well the GENERIC default is some mathematical operation on > maxusers. We really ought to make this scale as a default relative > to the amount of ram in the system, rather than some low hardcoded > value. NetBSD has some stuff for this in their buffercache sizing > algorithm in netbsd-stable. It might be worth checking out, the > formula is quite smart such that it has a decent size when system > ram is low, then for each meg above X it increases it by some > percentage. I find it to be too low, but whatever. :)
This is an arbitrarily hard problem to solve correctly. The problem boils down to the inability to do allocations at interrupt, unless there is a prereserved mapping backing store already in place. This works for systems where the memory size << KVA space, but when you stick 4G in a machine, the code in the kernel is way, way off (the machdep.c calculations for swap page mappings and others go off the scale, unfortunately). I think that what needs to happen is a reconsideration of the memory allocation system, almost entirely. THe seperation needs to be into swap path and non-swap path, rather than into allocable at interrupt time, and not. I hate to suggest it, but... perhaps a move away from type stable memory would not be a bad thing. -- Terry To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message

