tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kmem-pool-uvm



yamt%mwd.biglobe.ne.jp@localhost (YAMAMOTO Takashi) wrote:
> > Yes it does, it switches to cache_line size for alignment for
> > allocations >= cache_line size and to page_size alignment for
> > allocations >= page_size.
> 
> kmem_alloc(9F) says:
> 
>       The allocated memory is at least double-word aligned, so it  can
>       hold  any  C  data  structure.  No  greater alignment can be
>       assumed.
> 
> % uname -sr
> SunOS 5.10
> 
> so i don't think it's api-wise guaranteed.
> IMO it's better to use a low-level allocator (eg. uvm_km_alloc) for
> alignment-sensitive users.

While for page-size alignment, it makes sense to use uvm_km(9) allocator,
there are quite a few allocations when it is useful to give a separate
cache-line for a structure.  I am not sure if it is desirable to sprinkle
pad & align magic each time in the caller's side, instead of adding such
support to kmem(9).  Perhaps kmem_cacheline_{alloc,free}?

-- 
Mindaugas


Home | Main Index | Thread Index | Old Index