Home | Back
[Note: newer entries are at the bottom]

Early prehistory:

- Fix some warnings
- Add const to global variables and prototypes
- Document numa_warn
- Add numa_distance() support to read topology
- remove internal alias from numa_{warn,error} to allow overwriting
  again
- Various bug fixes
- add -f option to memhog to map file
- more bugfixes
- replace forward backward with STREAM test in numademo

0.6.1

- make headers C++ clean

0.6.2

- use more accurate buffer length for cpumask
- add --cpubind to test suite

0.6.3

- fix cpumask parser for large number of cpus.
Note that you need a kernel patch (as of 2.6.7-pre) for that too
if the cpumask is longer than 99 characters.

0.6.4

- Add Coppyright headers

0.6.5

- Reduce unneeded DSO relocations (Arjan van de Ven)
- Add -r option to memhog (repeat walk)
- some manpage fixes
- Use syscall numbers from asm/unistd.h if possible
- Add numa_node_size64 to handle large nodes on 32bit architectures
- Fix numactl to use it (report from Rajan Ravindran)
- Use ln -sf in make install (Rajan Ravindran)
- Add syscall numbers for ppc/ppc64
- Add private syscall6 for i386 since the glibc version is broken
- Remove STUB
- Change numactl --show to use cpubind instead of nodebind for CPU affinity.
- Fix make install into examples directory
- Work around broken sched_set_affinity API. This adds a 32768 CPUs limit.
- Fix segfault with /sys not mounted.
- Clean up Makefile
- Make numactl --show more clever

0.7-pre1

- add test/regress2 and some fixes to test programs
- Fix DSO relocation patch for global variables
- Change nodeset sizes back to be binary compatible with SLES9
- Cosmetic changes to manpages (pointed out by Eric S. Raymond)
- Make numa_run_on_node etc. act on current thread only even on NPTL systems
  (Dinakar Guniguntala)
- Make numa_no_nodes / numa_all_nodes const (Werner Almesberger)
- Fix up the warnings caused by above change
- Add numa_distance() on systems with ACPI
- remove some obsolete code
- add rdtsc for ppc64
- fix unsigned/unsigned long confusion in cpumasks (Matt Dobson)
- fix CPU_BYTES and rename CPU_WORDS to CPU_LONGS (Matt Dobson)
- Print node distances in numactl

[0.7 skipped]

0.8
- hardend numactl command line parsing against bad arguments in some cases
- remove cpumask/nodemask confusion which has become a FAQ:
  --cpubind deprecated, added --cpunodebind and --physcpubind= options
  print both in --show, old cpumask kept for compatibility
- Fix --show problems
- various fixes for bugs noted by Mike Stroyan (thanks!)
- install set_mempolicy manpage
- various smaller fixes

0.9
- Get rid of bogus distance.o that broke compilation on !x86-64 (sorry)
- Handle CFLAGS overriding without OPT_CFLAGS (Ian Wienand)
- Fix up section of get/set_mempolicy (Ian Wienand)
- When no NUMA available fall back to one global node instead of one node
per CPU (Samuel Thibault)
- Don't rely on architecture symbols for dependency generation
- Use __powerpc__ to detect PPC/PPC64
- numastat:
  * wrap display properly with many nodes
  * display nodes in forward order
  * install manpage in `make install'.
- remove bogus numamemcpy.c
- numademo:
  * allow standalone compile, make streamlib optional
  * clean up output
  * change output unit to standard MB/s
  * compile with more optimization
  * add random pass to fool any prefetching (slow)
- make numademo compileable outside source tree
- use gettimeofday instead of time stamp counters in benchmarks
- support valgrind in testsuite
- other minor changes

0.9.1
- Make automatic selection of lib64 vs lib more robust. Now should work
even on ppc32 with a lib64 directory. Architecture lists are hardcoded now
unfortunately.

0.9.2
- Fix compilation on architectures with gcc 3.3+ but without TLS
(MIPS, Alpha, Sparc)
- Add warning against using of MPOL_F_NODE
- numa.3 improvements from Michael Kerrisk
- Support page migration (migratepages, manpages) from Christoph
Lameter. Requires 2.6.16+ kernels

0.9.3
- Some more manpage fixes
- install migratepages manpage in make install
- Build fix for Debian make from Ian Wienand

0.9.4:
- Remove syscall manpages. They're in main man-pages now.
- More migrate fixes from C.Lameter

0.9.5:
- Fix parsing of cpumap in sysfs from Doug Chapman

0.9.6:
- Fix make install again

0.9.7
- Fix cpumap parsing fix to not corrupt memory (Doug Chapman)
- Small optimization to cpumap parsing
- Create target directories for Debian (Ian Wienand)

0.9.8
- Fix cpumap parsing again (Doug Chapman)

0.9.9 (aka "Will 1.0 ever happen?")
- Fix sizing of cpu buffers for affinity syscalls
- Don't corrupt errno in numa_run_on_node_mask. This fixes
numactl cpubind issues on some systems.
- Print cpus belonging to nodes in numactl --hardware
- Rewrite cpumap parser to be simpler and hopefully finally work
in all cases
- add testcases for cpu affinity and topology discovery
- Add make test target to run regression test easier and fix up
test/README

Lots of fixes thanks to thorough testing by Noriyuki Taniuchi:
- Better command line parsing in numactl and fix various documentation bugs
- Wrong arguments to --prefered don't crash numactl anymore
- Fix --cpunodebind=all
- Auto collect short option list in numactl - a couple were missing.
- Fix documentation of numa_set_localalloc. It doesn't have a flag.
- Fix numa_run_on_node(-1)
- numa_get_run_node_mask(): Fix documentation, don't warn

0.9.10:
- Fix cpumap parsing bug when NR_CPUS < 32 (dean gaudet)  

0.9.11
- Fix usage output for --shmid (Noriyuki Taniuchi)
- Use correct syscall number for migrate_pages() on PPC

1.0
- Add sleep to regression test to work with delayed statistic
updating in newer kernels (Mel Gorman)
- Default to -O2

1.0.1
- Fix build on powerpc

1.0.2
- Fix parallel Makefile build (Andreas Herrmann)
- Fix target command argument parsing for numactl (no -- needed again anymore)
- Clarify numa_node_to_cpus() manpage

2.0.0[-rc1]

- Version 2 (symbol versioning)
- Modify libnuma to use variable-length bit masks (the bitmask structure)
- Modify numactl, migspeed, memhog, migratepages, numademo and stream_main
  to use variable-length bit masks
- Modify the test/ programs to use the libnuma that uses variable size bit masks
- Man page changes with the change to variable-length bit masks, move_pages
  migrate_pages and others
- Add the migspeed test program to test the speed of migrating pages from
  one node to another
- Support for move_pages(2) to numactl, and numa_move_pages() to libnuma
- Add the move_pages test command to exercise the move_pages(2) system call
- Add the mbind_mig_pages test command to verify the moving of a task's
  pages with move_pages(2)
- Add the migrate_pages test command to test that a task's pages can be
  moved with move_pages(2)
- Support numactl +nn syntax for cpuset_relative cpu and node numbers
- L.S. :
-   libnuma man pages -- General Cleanup
-   add numa_get_mems_allowed()
-   fix checktopology regression test
-   numa_maps man page clarifications and cleanup
-   minor cleanups of numademo.c
-   numactl - fix numastat sysfs scanning
-   numactl -  reorganize regress test script.
-   fix mempolicy regression test for assymetric platforms and memoryless nodes.
-   numactl - fix checkaffinity regression test
-   numactl - fix/cleanup libnuma local allocation behavior
- P.M. :
-   fix __NR_migrate_pages reference.
- Provide numacompat1.h for source code compatibility with version 1