Update ChangeLog for 3.1.0.
diff --git a/ChangeLog b/ChangeLog
index 66f1d69..0ae4f11 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,20 +6,31 @@
     http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git
     git://canonware.com/jemalloc.git
 
-* 3.x.x (XXX not yet released)
+* 3.1.0 (October 16, 2012)
 
   New features:
   - Auto-detect whether running inside Valgrind, thus removing the need to
     manually specify MALLOC_CONF=valgrind:true.
+  - Add the "arenas.extend" mallctl, which allows applications to create
+    manually managed arenas.
+  - Add the ALLOCM_ARENA() flag for {,r,d}allocm().
+  - Add the "opt.dss", "arena.<i>.dss", and "stats.arenas.<i>.dss" mallctls,
+    which provide control over dss/mmap precedence.
+  - Add the "arena.<i>.purge" mallctl, which obsoletes "arenas.purge".
+  - Define LG_QUANTUM for hppa.
 
   Incompatible changes:
   - Disable tcache by default if running inside Valgrind, in order to avoid
     making unallocated objects appear reachable to Valgrind.
+  - Drop const from malloc_usable_size() argument on Linux.
 
   Bug fixes:
   - Fix heap profiling crash if sampled object is freed via realloc(p, 0).
   - Remove const from __*_hook variable declarations, so that glibc can modify
     them during process forking.
+  - Fix mlockall(2)/madvise(2) interaction.
+  - Fix fork(2)-related deadlocks.
+  - Fix error return value for "thread.tcache.enabled" mallctl.
 
 * 3.0.0 (May 11, 2012)