tech-kern archive

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

Re: kcpuset(9) interface



yamt%mwd.biglobe.ne.jp@localhost (YAMAMOTO Takashi) wrote:
> > Here is a reworked dynamic CPU set implementation for kernel (shared
> > cpuset.c in src/common will be moved to libc) - a kcpuset(9) interface:
> > 
> > http://www.netbsd.org/~rmind/kcpuset_ng.diff
> > 
> > It supports early use while the system is cold through a fix up
> > mechanism, see kcpuset_sysinit().  That would enable us to use kcpuset
> > (9) in MD code, such as pmap(9).  The intention of interface is to:  1)
> > replace hard-coded parts (e.g. limited to uint32_t or MAXCPUS constant)
> > with a more dynamic mechanism  2) replace and unify duplicated CPU
> > bitset code (e.g. in MIPS, PowerPC, sparc64, which have own copies).
> 
> thanks for working on this.
> and sorry for commenting only on a minor point.

Your comments are always welcome. :)

> why did you change kcpuset_t to a pointer from a structure?
> i always feel awkward to compare an opaque type with NULL.

The reason is that kcpuset_t now points directly to the bit field rather
than opaque struct kcpuset_impl.  Do you prefer wrapping, e.g. like this:

struct kcpuset { uint32_t bitfield[0]; };

Except this is not C99..

-- 
Mindaugas


Home | Main Index | Thread Index | Old Index