X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=ChangeLog;h=817582c2c7fa31002ee49367c3cbee32bef30801;hp=e355ee8a78de56a1c1962e942c7272baada8fb41;hb=19d0e7ef8f7998fb256017ba2da414d78b3cb91b;hpb=bc727dc3413af8a5a53167df248a51c6ee2f5cb7 diff --git a/ChangeLog b/ChangeLog index e355ee8..817582c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,404 @@ +2013-09-06 Userspace RCU 0.8.0 + * Fix: hash table growth (for small tables) should be limited + * Fix: doc/examples cross-build + * Introduce URCU_INLINE_SMALL_FUNCTIONS + * Add missing tests/common/Makefile.am + * README: document make check/regtest/bench + * tests: split in check, regtest and bench targets + * Cleanup: doc/examples makefile + * Fix: doc/examples VPATH build + * doc/examples: Move the LIBS after the OBJECTS in the Makefile + * Document build work-around on MacOS X + * Fix tests: use of uninitialized variables + * test_urcu_hash*: initialize TLS seeds + * doc/examples: cds_lfht_for_each_entry_duplicate + * doc/examples: cds_lfht_lookup + * doc/examples: cds_lfht_destroy + * doc/examples: cds_lfht_add_replace + * doc/examples: cds_lfht_add_unique + * doc/examples: cds_lfht_add/cds_lfht_del + * doc/examples: add rculfqueue example + * doc/examples: add synchronize_rcu() + * doc/examples: add bp flavor + * doc/examples: add dist toplevel makefile + * doc/examples: add membarrier flavor + * doc/examples: document call_rcu() + * doc/examples: update qsbr example + * urcu signal: remove assertion on exit + * doc/examples: signal flavor + * doc/examples: add mb flavor + * doc/examples: update qsbr + * doc/examples: introduce urcu-flavors examples directory + * doc/examples: enhance rcu-flavor-qsbr example + * doc/examples: rename qsbr-minimal to rcu-flavor-qsbr + * doc/examples: automake stop on error + * doc/examples: hlist + * hlist/rcuhlist update + * doc/examples: fix typo in list example + * rcuhlist: make pointer stores atomic + * hlist, rcuhlist: cleanup coding style + * doc/examples: lfstack + * doc/examples: update cds_wfs_pop_all_blocking + * doc/examples: cds_wfs_pop_all_blocking + * doc/examples: cds_wfs_pop + * doc/examples: add missing Makefile + * doc/examples: cds_wfs_push + * doc/wfcqueue: cds_wfcq_splice + * doc/examples: add cds_wfcq_dequeue + * doc/examples: wfcq needs to link against urcu-common + * doc/examples: update queue comment + * doc/examples: fix make clean + * gitignore: add qsbr-minimal + * doc/examples: cds_wfcq_enqueue + * doc/examples: Move LIBS to each makefile + * doc/examples: cds_list_for_each_rcu + * doc/examples: cds_list_for_each_entry_rcu + * doc/examples: cds_list_replace_rcu + * doc/examples: cds_list_add_tail_rcu + * doc/examples: cds_list_del_rcu + * doc/examples: cds_list_add_rcu + * rculist: ensure atomic updates of next pointers + * rculist: implement cds_list_add_tail_rcu + * rculist.h and list.h style cleanup + * example makefile: add missing cd .. + * Update gitignore + * Fix: examples Makefile on FreeBSD + * hash table test: don't redefine CACHE_LINE_SIZE + * tests: use thread-id.h wrapper + * Implement thread-id.h wrapper + * tests: add missing unsigned long casts to pthread_self() + * Fix: don't build examples in static builds + * Add QSBR minimal example + * compiler.h: implement CAA_ARRAY_SIZE() + * document rcu barrier + * rcu barrier: handle OOM die urcu_die + * Implement rcu_barrier() + * rculfhash: document destroy context limitations + * Add MIPS to README + * Update README + * Update README testing info about FreeBSD + * test: fix api.h missing if brackets + * tests: fix incorrect counter + * Fix: membarrier fallback symbol conflict + * Fix: Use a filled signal mask to disable all signals + * urcu-bp: introduce struct urcu_gp + * Fix: struct urcu_gp broke multiflavor + * Cleanup test usage printout + * wfstack tests: use pop "last" state info + * wfstack: return whether pop is popping the last element + * wfcqueue tests: use dequeue empty state + * wfcqueue: return whether dequeue is dequeuing last element + * urcu: avoid false sharing for rcu_gp_ctr + * urcu: make the code of urcu-qsbr as normal urcu + * rculfhash: detect if resize/destroy are called within RCU read-side C.S. + * Documentation: rculfhash: cds_lfht_resize not within read-side C.S. + * fix: rculfhash don't change qsbr online state + * Add rcu_read_ongoing() API to each urcu flavor + * Add "sparc" host cpu to configure.ac + * futex: include syscall.h instead of sys/syscall.h + * Add tab to output in order to allow easy nesting of tables. + * Remove urcu-api-list.sh from dist tarball + * Add urcu-api-list.sh script + * list: implement cds_list_for_each_safe() + * Fix: tests/api.h use cpuset.h + * Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional + * Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t + * Test for CPU_SET + * Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF + * README: document that Clang 3.0 (based on LLVM 3.0) is supported + * clang: silence "unused expression result" warning + * rculfhash: add assertions on node alignment + * Spelling cleanups within comments and documentation + * Fix configure checks for Tile + * uatomic: style fix + * doc/cds-api.txt: expand documentation + * README: document each API file + * README: reorganize + * Add compilation support for the TileGX architecture + * wfstack: add nonblocking to _LGPL_SOURCE API + * Discourage use of pthread_atfork() for call_rcu handlers + * Fix call_rcu fork handling + * test: fork handling + * rculfhash: add cds_lfht_replace to the write operations in the comments + * urcu: fix comments for cds_list_for_each_prev() + * documentation: fix rcu-api.txt duplicates + * test wfcq: remove unneeded urcu.h include + * test wfs: remove unneeded urcu.h include + * urcu: declare test_urcu_multiflavor functions + * urcu: remove the wrong comma + * wfstack: implement nonblocking pop and next + * wfcqueue: document first/next return values + * wfstack: update comments about cds_wfs_empty/first being wait-free + * wfstack API: rename cds_wfs_first_blocking to cds_wfs_first + * wfstack test: test if number of push to empty vs pop_all match + * wfstack: document first/next return values + * test wfstack: enforce external mutex if needed by default + * test wfcqueue: enforce external mutex if needed by default + * urcu-mb/signal/membarrier: batch concurrent synchronize_rcu() + * urcu-wait: move queue management code into urcu-wait.h + * urcu-wait: move wait code into separate file + * urcu-qsbr: batch concurrent synchronize_rcu() + * tests: use standard malloc/free for synchronize_rcu() + * urcu-bp: move quiescent threads to separate list + * urcu-mb/signal/membarrier: move quiescent threads to separate list + * urcu-qsbr: move offline threads to separate list + * urcu-bp: improve 2-phase wait scheme + * urcu-mb/signal/membarrier: improve 2-phase wait scheme + * urcu-qsbr: improve 2-phase wait scheme + * wfcqueue: implement mutex-free splice + * wfcqueue: document empty criterion + * urcu-call-rcu: use wait-free splice return value + * test wfcqueue: add tests for queue state return value + * wfcqueue: enqueue and splice return queue state + * Fix: wfcqueue nonblocking dequeue + * wfcqueue: Fix lock and unlock functions + * runtests: Make path of time binary configurable + * urcu-qsbr: skip Q.S. reporting if already reported + * Fix TLS detection: test with linker, add --disable-compiler-tls + * Cleanup: cast pthread_self() return value to unsigned long + * Fallback mechanism not working on platform where TLS is unsupported + * Revert "Fix: cross-build: configure.ac should use --target, not --host" + * Fix: cross-build: configure.ac should use --target, not --host + * test_urcu_wfcq: add splice and nosync tests + * test_urcu_wfs: cleanup + * test_urcu_lfs: cleanup + * Fix static linking: add missing static for _defer_rcu + * tests: report error value for make check + * Add multiflavor test program + * Fix static linking: fix symbol name namespaces + * Fix static linking: add missing static to thr_defer + * Fix static linking: add missing static + * deprecation: fix build with gcc < 4.5 + * wfstack.c: update copyright notice + * Update wfstack copyright notice + * Comment fix: update associated LGPL header name + * Update cds-api.txt following API deprecations + * Deprecate wfqueue + * Deprecate rculfstack + * wfcqueue: introduce nonblocking API + * lfstack: test pop_all and pop + * lfstack: implement empty, pop_all and iterators, document API + * lfstack: implement test + * lfstack: implement lock-free stack + * wfstack: implement pop_all and iteration tests + * wfstack: implement cds_wfs_pop_all and iterators, document API + * rculfhash test: fix trivial memleak and return node leak and errors + * rculfhash: add missing extern + * Cleanup: fix cppcheck errors + * wfcqueue: remove ancient comment + * test_urcu_lfq: remove rcu_defer_register_thread() from test_urcu_lfq + * test_urcu_lfq: test for the proper pointer + * test_urcu_lfs: remove rcu_defer_register_thread() from test_urcu_lfs + * test_urcu_lfs: test for the proper pointer + * wfcqueue: clarify locking usage + * Document APIs in README + * Test cleanup: replace "l" parameter by "loops" + * Add wfcqueue header to cds.h + * Fix: urcu-bp, urcu, urcu-qsbr should include wfcqueue + * Fix: call_rcu list corruption on teardown (documentation) + * call_rcu: remove head field alignement, explain wfcqueue motivation + * wfcqueue: update credits in patch documentation + * wfcqueue documentation: hint at for_each iterators + * Fix urcu-call-rcu-impl.h: false-sharing + * call_rcu: use wfcqueue, eliminate false-sharing + * wfcqueue test + * wfcqueue: implement concurrency-efficient queue + * Ensure that read-side functions meet 10-line LGPL criterion + * tls-compat.h: document sigaltstack(2) limitation + * urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe + * Document sigaltstack(2) limitation + * Documentation: update LICENSE file + +2012-08-27 Userspace RCU 0.7.4 + * rculfhash API documentation: document destroy RCU read-lock constraint + * Fix: rculfhash should be offline while waiting for resize to complete + * Add missing entry to gitignore + * urcu: move busy-wait code and name it ___cds_wfq_node_sync_next() + * urcu: fix compat_futex_noasync() + * urcu: add hint to DEFINE_URCU_TLS() for compound types + * Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO + * Add MIPS support + * Compatibility: remove bash-ismsm from test scripts + * Fix inappropriate lib behavior: don't call exit() + * Fix: re-enable compatibility with autoconf < 2.64 + * Fix c99 compatibility: use __asm__ and __volatile__ in public headers + * Fix c99 compatibility: use __typeof__ instead of typeof in public headers + * warning fix: tests urcutorture for NetBSD 5 + +2012-06-01 Userspace RCU 0.7.3 + * Fix tests: make dist lib dependency + * Update README for OS supported, tests dependency + * Add CodingStyle to tarball + * Add coding style document + * Test fix: test_perthreadlock uninitialized mutex + * tests: support FreeBSD short "time" args + * freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility + +2012-05-24 Userspace RCU 0.7.2 + * Fix library compatibility + +2012-05-24 Userspace RCU 0.7.1 + * fix: uatomic_set return value compile fix for non-x86 arch. + +2012-05-21 Userspace RCU 0.7.0 + * Cleanup: header comments coding style + * Document uatomic operations + * Update return value of "set" operations + * Fix mremap wrapper for NetBSD 5 + * Use urcu/tls-compat.h + * Implement urcu/tls-compat.h + * Add TLS detection m4 macro + * document concurrent data structures + * documentation: refer to rcu-api.txt + * Move API.txt to doc/rcu-api.txt, install in system doc/ + * rculfhash: document implied memory barriers + * rculfhash: Ensure future-proof memory barrier semantic consistency + * API cleanup: use "uatomic_*" in cmm_smp_mb__ API + * uatomic: add memory barrier API for and/or/add/sub/inc/sub + * rculfhash: add runhash.sh test script + * rculfhash tests: add missing check + * rculfhash: fix: race between replace and del operations + * rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED + * rculfhash: use do {} while (0) for dbg_printf() + * rculfhash: cleanup typo + * rculfhash: update API comments + * rculfhash: update comments in implementation + * rculfhash tests: add long hash chains tests + * rculfhash tests: add uniqueness test + * rculfhash test: print test name + * rculfhash: stress requirement in documentation + * rculfhash: fix typo + * rculfhash tests: use array of callbacks to modularize + * rculfhash tests: modularize tests + * rculfhash: document ordering guarantees + * rculfhash: document linearizability guarantees + * rculfhash: update removal comment + * Add missing files to .gitignore + * Fix out-of-tree build + * rculfhash: check malloc NULL pointer + * Fix uatomic sign cast + * Remove unused jhash.h file + * Fix: use known license text, fix incorrect FSF address + * Fix: add missing sched.h include in rculfhash.c + * Allow tests to run on architectures without per-cpu call_rcu support + * Hash table test: FreeBSD compatibility fix + * tests: define _GNU_SOURCE instead of __USE_GNU + * RCU lock-free hash table: implement cds_lfht_is_node_deleted() + * Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc + * Install ChangeLog and README into system's doc + * Fix AC_LANG_SOURCE usage: only takes one parameter + * Fix autoconf futex check + * configure.ac: Use AC_LANG_SOURCE for if else macros + * Refresh autoconf files + * Update gitignore + * rculfhash: add comment about hash seed randomness within test program + * readme: state correct GCC dependency for ARM + * rculfhash: remove an invocation of bit_reverse_ulong() when adding + * rculfhash: remove unneeded conversion + * rculfhash: remove unneeded clear_flag() + * cds_lfht_replace: add checks for old/new node hash/value match + * rculfhash: use node instead of iter argument for deletion + * rculfhash: number of logically removed nodes should not appear in API + * Document that flags could be represented on 2 bits + * Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment + * _cds_lfht_del is not used for buckets anymore, remove parameter + * rculfhash: Relax atomicity guarantees required by removal operation + * remove unneeded "return;" + * simplify the deletion for bucket node + * Remove unneeded code + * Cleanup DEFINE_RCU_FLAVOR() + * Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32 + * Merge RCU Lock-Free Resizable Hash Table + +2011-12-12 Userspace RCU 0.6.7 + * Add compat file for test urcu wfs + * Add missing compat file for wfq test + * hlist.h: Add missing stddef.h include for NULL + * call_rcu: Add missing call_rcu_before_fork and + call_rcu_after_fork_parent declarations + * Describe autotools/libtool/automake version dependency + * Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated) + * Support older autotools + * Apply autoupdate to configure.ac + * Fix build for amd64 environment (for FreeBSD 8.2) + * Add missing rcu_dereference_sym_bp + * Install test scripts in the dist tarball + +2011-11-03 Userspace RCU 0.6.6 + * qsbr vs call_rcu : remove exit assertion + * Rename likely/unlikely to caa_likely/caa_unlikely + * Reinsert missing test_urcu_*.c files (missing in rename) + * rename test_qsbr to test_urcu_qsbr + * urcu-pointer: fix rcu_set_pointer unset return value + * Enhance API.txt documentation, add to Makefile as EXTRA_DIST + +2011-09-29 Userspace RCU 0.6.5 + * call_rcu: Document call_rcu requirements + * call_rcu: fix error handling of malloc error + * urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data + * urcu,call_rcu: Cleanup call_rcu_data pointers before use in child + * urcu,call_rcu: avoid create call_rcu_data for child when unneed + * urcu,defer_rcu: Make defer_rcu encoding more compact for marker + * urcu_defer: Use cancellation flag instead of pthread_cancel() + * urcu,call_rcu: protects call_rcu_data_list when remove node + * Create default call rcu data upon per-cpu call-rcu teardown + * powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode + * cmm: provide lightweight smp_rmb/smp_wmb on PPC + * atomic: provide seq_cst semantics on powerpc + * avoid leaking crdp for failed path + * Return -EEXIST when the old cpu call_rcu_data has not been removed + * protect writing to per_cpu_call_rcu_data[*] + * wake up default call_rcu thread after we move the leftover callbacks + * avoid memory leak in call_rcu_data_free() + * urcu call_rcu: fix use after free() + * use get_cpu_call_rcu_data() for get_call_rcu_data() + * init maxcpus before use + * call_rcu implementation: add missing static + * Document QSBR interaction with mutexes + * urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h + * urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them + * Pair all_cpu call_rcu create with free + * QSBR: add missing wakeups in synchronize_rcu code + * cmm: do not generate code for smp_rmb/smp_wmb on x86_64 + * cmm: let per-arch files provide cmm_smp_* barriers + * Optimize caa_get_cycles() for PowerPC64 + * lfq/lfs tests: use call_rcu + * list: Add cds_list_first_entry + * rculfstack/queue: define _LGPL_SOURCE around static header include + * Add __rcu annotation (unimplemented) + * Fix incorrect fsf address in header files + * wfstack: push returns prior stack emptiness state + * Make lf stack push return if the stack was empty + * Document caa_container_of + * urcu-bp: do not call munmap for NULL registry at exit + * urcu libraries can directly use the _LGPL_SOURCE wfqueue + * rculfstack: document "push" + * Add runall.sh to tarball + * Fix build order of liburcu-cds-common + * Fix missing check for SYS_membarrier in map header + * urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods + * api: reimplement BUILD_BUG_ON in compiler.h + * test api cleanup: remove unused primitives + * put thread offline while waiting for the init flag + * urcu: move private definitions to .c file + * urcu-bp: move private definitions to .c file + * urcu-qsbr: move private definitions to .c file + * rcutorture: fix rcutorture-qsbr + * wfqueue: fix type-incorrect assignment + * Fix tests Makefile EXTRA_DIST to use api.h + * Fix choice of default flavour in urcu/map/urcu.h + * api: remove list/hlist + * api: remove arch-specific files + * api: make api_gcc.h a superset of the other headers + * tests api: remove atomics + * put thread offline while waiting for the init flag + * urcu: move private definitions to .c file + * urcu-bp: move private definitions to .c file + * urcu-qsbr: move private definitions to .c file + * rcutorture: fix rcutorture-qsbr + * wfqueue: fix type-incorrect assignment + * Use caa_ prefix for min() and max() + 2011-07-21 Userspace RCU 0.6.4 * uatomic: Fix ARM build errors in uatomic. * urcu tests: hold mutex across use of custom allocator.