[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 1.0.2.1 - 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 - 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 - Version 2 (symbol versioning) - Man page changes with the change to variable-length bit masks, move_pages migrate_pages and others