Subject: New features in NetBSD 2.0
To: None <netbsd-docs@netbsd.org>
From: SODA Noriyuki <soda@netbsd.org>
List: netbsd-docs
Date: 10/12/2004 23:39:58
[because I'm not subscribing netbsd-docs, please Cc: to me,
 if you have any comments to this post]

I have some comments about the following page:
http://www.netbsd.org/guide/en/chap-whatsnew.html
(Chapter,A (B2.,A (BNew features in NetBSD 2.0)

> 2.1.1.,A (BNative threads
> multiple threads within the same process can run concurrently on
> different CPUs

It's worth mentioning that one needs to set $PTHREAD_CONCURRENCY
environment to the number of CPUs to make it actually run on multiple
CPUs on NetBSD 2.0. Especially because there is no existing common
practice about this environment variable on other OS, and this may be
a temporary measure.
(If our implementation is mature enough, the pthread library
 must set $PTHREAD_CONCURRENCY to the number of CPUs by default.)

Also, there are some other topics which are worth mentioning.
e.g.

1. old buffer cache, which is used to cache filesystem metadata
  (e.g. directories, i-nodes), are now dynamically allocated.

  The old buffer cache now can use up to 15% of phyisical memory
  by default.
  On machines which only have really small memory, it may be
  better to limit this upper bound by e.g. "sysctl -w vm.bufcache=5".
  
2. Many enhancements about user visible library functions.
  e.g. native iconv(3), utmpx, SA_SIGINFO, POSIX 1003.1b semaphores, ...

3. Many scalability improvements. e.g. rbtree vmmap, splay tree
  pvtree on i386 pmap, O(C) data insertion into socket buffers, etc...
  (c.f. http://bulk.fefe.de/scalability/)
--
soda