When will ZFS become stable?

Vadim Goncharov vadim_nuclight at mail.ru
Tue Jan 8 10:59:09 PST 2008


08.01.08 @ 05:39 Robert Watson wrote:

> On Tue, 8 Jan 2008, Vadim Goncharov wrote:
>
>>> To make life slightly more complicated, small malloc allocations are  
>>> actually implemented using uma -- there are a small number of small  
>>> object size zones reserved for this purpose, and malloc just rounds up  
>>> to the next such bucket size and allocations from that bucket.  For  
>>> larger sizes, malloc goes through uma, but pretty much directly to VM  
>>> which makes pages available directly.  So when you look at "vmstat -z"  
>>> output, be aware that some of the information presented there (zones  
>>> named things like "128", "256", etc) are actually the pools from which  
>>> malloc allocations come, so there's double-counting.
>>
>> Yes, I've known it, but didn't known what column names exactly mean.  
>> Requests/Failures, I guess, is a pure statistics, Size is one element  
>> size, but why USED + FREE != LIMIT (on whose where limit is non-zero) ?
>
> Possibly we should rename the "FREE" column to "CACHE" -- the free count  
> is the number of items in the UMA cache.  These may be hung in buckets  
> off the per-CPU cache, or be spare buckets in the zone.  Either way, the  
> memory has to be reclaimed before it can be used for other purposes, and  
> generally for complex objects, it can be allocated much more quickly  
> than going back to VM for more memory.  LIMIT is an administrative limit  
> that may be configured on the zone, and is configured for some but not  
> all zones.

And every unlimited zone after growing on demand can cause  
kmem_map/kmem_size panics, or some will low-memeory panics with message  
about another map?

> I'll let someone with a bit more VM experience follow up with more  
> information about how the various maps and submaps relate to each other.

That would be good, as I still don'tany idea about exact meaning of those  
sysctls :-) Thans for explanations, though. How is our Mr. VM nowadays?..

>>> (which can be swapped out under heavy memory load), pipe buffers, and  
>>> general cached data for the buffer cache / file system, which will be  
>>> paged out or discarded when memory pressure goes up.
>>
>> Umm. I think there is no point in swapping disk cache which can be  
>> discarded, so the most actual part of kernel memory which is swappable  
>> are anonymous pipe(2) buffers?
>
> Yes, that's what I meant.  There are some other types of pageable kernel  
> memory, such as memory used for swap-backed md devices.

Hmm, I do remember messages about malloc-backed md devices panics (with  
workaround advices to switch to swap-backed md), yes...

-- 
WBR, Vadim Goncharov


More information about the freebsd-current mailing list