- 2006-02-12  Paul Jackson  <pj@sgi.com>

    * Republished as Open Source under LGPL license

- 2005-09-22  Paul Jackson  <pj@sgi.com>

    * Added "Using Cpusets with Hyper-Threads" section
    * Added to "System Error Numbers"
    * Various minor formatting changes

- 2005-04-05  Paul Jackson  <pj@sgi.com>
    
    * Added "Identifying Cpuset Support" section
    * Added "System Error Numbers" section
    * Added cpuset_mountpoint() method
    * Note kernel GFP_ATOMIC allocations can go outside cpuset
    * Refine overview on various ways to manipulate cpusets
    * Example creation of a cpuset and running a shell in it
    * The cpuset_c_{rel_to_sys,sys_to_rel}_{cpu,mem} routines
      accept NULL to mean the current cpuset
    * Cpuset text representations with empty bitmasks can be imported
    * Failed cpuset_modify and cpuset_create calls no longer leave
      half finished changes around
    * The cpuset --family command has a new option, --exclude, that
      excludes any CPUs already used by child cpusets from the new
      family of cpusets being created
    
- 2005-03-24  Paul Jackson  <pj@sgi.com>
    
    * Added cpuset_addr2node to map virtual address to node holding that page
    
- 2005-01-14  Paul Jackson  <pj@sgi.com>
    
    * Added cpuset --map option (useful side affect: rebuilds cpunodemap)
    * Added init script to build /var/run/cpunodemap at boot
    * Change libcpuset to ensure it makes /var/run/cpunodemap world readable
    * Explain /dev/cpuset file system permission model in more detail
    * Document page and slab cache special /dev/cpuset files
    
- 2004-11-24  Paul Jackson  <pj@sgi.com>
    
    * No longer need to link with -pthread, still thread safe if do
    * Standardized format of cpuset Text Representation
    * No longer need both CPU and MEM in Text Representation; if just one
      of them, the other defaults to the equivalent local resources
    * New cpuset command options --size, --family to make it easy to create
      a set of sized and named non-overlapping child cpusets
    * /sbin/cpuset_release_agent added - setting notify_on_release will now
      cause abandoned cpusets to be removed automatically
    * Fix crash in cpuset_mems_weight
    * Cpuset_pin memory placement changed - allows entire cpuset, not just
      the one node local to the pinned cpuset.
    * Removed rest of runon source code from ProPack 4 source tree - use taskset
    * Cpuset pathname evaluation changed in libcpuset - if cpuset path doesn't
      start with slash '/', then is relative to current task cpuset, not /dev/cpuset
    * Fix libcpuset memory leak in cpuset_reattach().
    
- 2004-11-10  Paul Jackson  <pj@sgi.com>
    
    * Change return of cpuset_localcpus(), cpuset_localmems() and
      cpuset_unpin() from 'void' to 'int', so can indicate success/failure
    * Added wide spread usage of errno's ENOSYS, ENODEV if cpusets not
      supported by kernel, or /dev/cpuset not mounted.
    
- 2004-11-09  Paul Jackson  <pj@sgi.com>
    
    * Rework -i, -I options substantially.
    
- 2004-11-07  Paul Jackson  <pj@sgi.com>
    
    * Added cpuset_cpu2node() mapping cpu to nearest memory node.
    * Note demise of /dev/hw hardware graph (had been in SGI 2.4 kernels)
    * Added Basic cpuset functions, marked existing functions Advanced
      The basic functions are: cpuset_pin, cpuset_size, cpuset_where, cpuset_unpin.
    
- 2004-11-07  Paul Jackson  <pj@sgi.com>
    
    * Reorganize cpuset_function usage and [optional] tag discussion
    
- 2004-11-07  Paul Jackson  <pj@sgi.com>
    
    * More notes comparing cpumemsets for 2.4 Linux with cpusets
    
- 2004-11-07  Paul Jackson  <pj@sgi.com>
    
    * First published as proprietary code by Silicon Graphics, Inc.
