2.2.13aa6 (bugfix release II)
Date: Fri, 17 Dec 1999 16:34:21 +0100 (CET) From: Andrea Arcangeli andrea@suse.de To: linux-kernel@vger.rutgers.edu I released a 2.2.13aa6 mainly to include my latest fs corruption fixes. The main features of 2.2.13aa6 are: o Support for 4Gigabyte of RAM (me and Gerhard.Wichert) o Improved VM for high end machines with enough ram and doing heavy I/O under high memory pressure (me) o RAW-IO (also on bigmem) (Stephen C. Tweedie) o updated with all showstopper/necessary bugfixes discovered into the 2.2.x kernels over the time. NOTE (2.2.14pre): if you don't need the 4g support and raw-io and your machine has a workstation load (so you don't do heavy I/O) you should ignore 2.2.13aa6 and I suggest to use 2.2.14pre14 plus my block_dev-fs-corruption patch. NOTE (raid): if you want to use the latest raid patches (raid0145-19990824-2.2.11) over 2.2.13aa6 simply apply the raid patch over 2.2.13aa6 and then apply this incremental patch on the resulting kernel: ftp://ftp.*.kernel.org/pub/linux/kernel/people/andrea/patches/v2.2/2.2.14pre11/set_blocksize-1-raid0145-19990824-2.2.11.gz Then raid will work just fine. Side note: I am not including the new raid code in 2.2.x because at least raid0 is just rock solid in the stock 2.2.13 kernel and I don't want to force people to convert the on-disk format of their raid device in order to run 2.2.13aa6. People who wants to use raid can go with my incremental raid fix. Incremental description of 2.2.13aa6: ------ 2.2.13aa6 -------- diff -u --exclude version.gz 2.2.13aa5 2.2.13aa6 Only in 2.2.13aa6: block_dev-fs-corruption-1.gz block_dev-fs-corruption-1.gz -> fixes fs corruption in the blockdevice layer (me) ------ 2.2.13aa5 -------- diff -u --exclude version.gz 2.2.13aa4 2.2.13aa5 Only in 2.2.13aa4: buffer-races-2.2.10-A.gz Only in 2.2.13aa5: buffer-races-2.2.13-3.gz Only in 2.2.13aa5: ext2-1.gz buffer-races-2.2.13-3.gz -> includes the buffer-races-2.2.10-A.gz features and it also fixes fs corruption generated by hdparm or flushb on an active filesystem and a minor problem in sync_dev (me) ext2-1.gz -> fixes bugs that may lead to ext2 fs corruption or fsync errors (me) ------ 2.2.13aa5 -------- diff -u --exclude version.gz 2.2.13aa3 2.2.13aa4 Only in 2.2.13aa4: inode-recycle-fixes.gz Only in 2.2.13aa4: java-proc.gz Only in 2.2.13aa4: signal-race.gz Only in 2.2.13aa4: syncookies.gz inode-recycle-fixes.gz -> fixes an inode leakage (me) syncookies.gz -> fixed syncooky bug (without the fix at the first synflood the machine will forbid connections to all hosts, must check only the SYN/ACK/FIN bit and not the data offset and window of the incoming packet ;). (Alan Cox) signal-race.gz -> fixes a race in the send sig path (David Miller) java-proc.gz -> revertd the semantic change that make difference between /proc/00000$$ and /proc/$$, this allows backwards compatibilty of a misfeature and it _won't_ hurt security. There's no downside in reverting the 2.2.13 semantic change. ------ 2.2.13aa3 -------- diff -u --exclude version.gz 2.2.13aa2 2.2.13aa3 Only in 2.2.13aa3: dcache-hashfn.gz Only in 2.2.13aa3: fdset-fix.gz Only in 2.2.13aa2: z-bigmem-2.2.13aa2-6.gz Only in 2.2.13aa3: z-bigmem-2.2.13aa3-7.gz z-bigmem-2.2.13aa3-7.gz -> fixed a obvious silly bigmem bug that will lead to processes killed randomly. (all the credit goes to Leonard N. Zubkoff) fdset-fix.gz -> fixed a fdset bug that may lead to memory corruption and Oopses (credits goes to Savochkin Andrey Vladimirovich, I only backported the 2.3.x patch to a four liner against 2.3.13) dcache-hashfn.gz -> use only the dentry noise for randomizing the dcache hashfn (all the credit goes to David S. Miller) ------ 2.2.13aa2 -------- SMP-scheduler-2.2.11-E.gz -> rewrote of reschedule_idle. (me) buffer-hash.gz -> fixes lowmem box hash size. (me) buffer-races-2.2.10-A.gz -> fixes of race condition that may lead to bad things in invalidate_buffers() and set_blocksize(). (me) clear-backlog-2.gz -> fixes for a SMP race condition in the main network backlog handling. (me) dcache-hash.gz -> dcache hash dynamic (with my own heuristc). (started from 2.2.13ac1 but then reimplemented by me) free_page.gz -> cleanup of the __free_pages interface. (me) hashed-buffers-2.2.10.gz -> minor fix to increase the debugging information in the right place. (me) inode-leak-2.2.10-A.gz -> make sure to not leak memory by allocating lots of sockets (DoS), and let know the admin to enlarge the max-inodes if the admin really wants more unfreeable memory in the icache. (me) kupdate-sigstop-2.2.11-1.gz -> allow kupdate to be stopped via SIGSTOP (currently it must be stopped by setting interval to zero via sysctl). (me) no-swapout-2.2.10-B.gz -> avoid swapin/swapouts during heavy I/O (strictly necessary for decent performances on very I/O and MM loaded servers). (me) oom-2.2.12-I.gz -> assorted OOM fixes (deadlocks in pagein, Alpha SIGBUS fix, avoid sigkilling iopl() application send a sigterm instead, avoid init to be killed), it's the same patch merged by Alan into 2.2.14pre2. (me) pagecache-hash.gz -> pagecache hash dynamic (I think it's DaveM's work, literally I took it from 2.2.13ac1). I agree with the heuristc used. It allocates num_physpages buckets for the pagecache and this basically means all the buckets will be filled supposing a perfect hash distribution with all the memory allocated in the cache. (all credits to David S. Miller) probe-irq-2.3.14-pre2-1.gz -> avoid a pending irq to be mistaken for a spurious irq. (me) shrink_all_cache-2.2.10-A.gz -> make sure that big memory boxes will shrink the cache well enough. (me) trashing-mem-2.2.10-A.gz -> heuristic to penalize memory hogs, the system will remains responsive also during heavy swapout. (me) version.gz -> set the EXTRAVERSION to aa2 ;) wait-event-smp-races.gz -> Put the two mb() after setting the task state as blocking and before checking if the event is just happend (SMP race fix). (me) wait4-smp-race.gz -> _Critical_ SMP race fix. Without this one liner each time you run `ls` from bash, the bash is going to deadlock in wait4 if you are unlucky enough. The race is very small but there are machine under heavy fork load load that reproduced this race regularly after some day of load. The SMP race can happen only with an SMP kernel on a SMP hardware. (me) wakeup_bdflush-2.2.10-A.gz -> avoid deadlocking in wakeup_bdflush (the run_task_queue() can sleep for example while running the loop request function). (me) z-bigmem-2.2.13aa2-6.gz -> 4GB support on x86. (me and Gerhard Wichert) z-bigmem-nodebug.gz -> turn the bigmem code into production mode. z-bigmem-rawio-2.2.13aa2-1.gz -> rawio working even with bigmem memory (I started with rawio from 2.2.13ac1 and SCT's 2.3.x rawio bounce buffers, all the credits go to Stephen C. Tweedie) zmagic-all-blocksize.gz -> allow zmagic binaries to run also on 4k filesystems (it's the same that gone into 2.2.14pre2). (me) ---------------------------------------------------------------------- To go in sync with 2.2.13aa6 you can: mkdir 2.2.13aa6 cd 2.2.13aa6 wget --retr-symlinks -A*.gz ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.2/2.2.13aa6/* cd .. and now you'll have all the interesting patches in the directory 2.2.13aa6. At this point rename the 2.2.13 sources to 2.2.13aa6: mv linux-2.2.13 linux-2.2.13aa6 cd linux-2.2.13aa6 and apply all the 2.2.13aa6 patches that you previously downloaded from the ftp site: apply-patches.sh ../2.2.13aa6 At this point your tree will be in sync with 2.2.13aa6. Just configure recompile and boot the new kernel. You can find the `apply-patches.sh` bash script I written to easily apply my kernel patches here: ftp://ftp.*.kernel.org/pub/linux/kernel/people/andrea/tools/apply-patches/apply-patches.sh.gz There is also a README on how to use it: ftp://ftp.*.kernel.org/pub/linux/kernel/people/andrea/tools/apply-patches/README.gz The 2.2.13aa6 kernel is placed here: ftp://ftp.*.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.2/2.2.13aa6/ Have fun! ;) Andrea