Date: Fri, 5 May 2000 17:44:05 +0200 (CEST) From: Andrea Arcangeli <andrea@suse.de> To: linux-kernel@vger.rutgers.edu Subject: 2.2.15aa1 The main features of 2.2.15aa1 are: o Support for 4Gigabyte of RAM on IA32 (me and Gerhard Wichert) o Support for 2T of RAM on alpha 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 SMP scheduler improvements. (me and partly from 2.3.x) o LFS (>2G file on 32bit architectures) o assorted fixes Detailed description of 2.2.15aa1: --------------------------------------------------------------------------- IO-wait2.gz -> avoid unplugging the request queue when not necesary SMP-scheduler-2.2.14-G.gz -> new reschedule_idle. (me and partly backported from 2.3.x, 2.3.x version was contributed by Ingo Molnar) alpha-IPI-1.gz -> avoids scheduling while waiting somebody else to finish send an IPI alpha-init-mm-1.gz -> export init_mm symbol on alpha (for bttv) (reported by somebody so I added it) alpha_initrd_fixes.gz -> make initrd robust against huge boot kernel allocations (me) bigmem-2.2.15-9.gz -> bigmem production code (IA32 and alpha). (me and Gerhard Wichert) bigmem-large-shm-1.gz -> change shmget to get an unsigned paramemter in the attempt to allow >2giga shm allocations on IA32. bss-IO-1.gz -> avoids binary image space waste in block device arrays. (me) buf-run_task_queue.gz -> drop a suprious run_task_queue in sync_old_buffers. (me) delack-timer-5.gz -> additional paranoid stuff in TCP delayed acks code (if somebody can still reproduce lockups under heavy TCP load, the delack-timer-5 patch can be the solution). In 2.2.15 only what it was obviously wrong is been fixed, but at the time I did delack-timer-5 I was convinced the stuff in 2.2.15 _might_ not be enough, so if you have still lockups under 2.2.15 let us know. delack-timer-5 is reported to definitely fix the TCP lockup. (me) elevator-starvation-11.gz -> rewrite of the elevator adding I/O scheduler to avoid I/O starvation. ioctl support is provided with latest interface needed by sparc64/mips64 and that is not yet been merged in 2.3.x. (me) fchown-oops-2.2.14 -> fix for VFS bug with quota. (Andi Kleen) inode-cleanup-3.gz -> minor inode stuff cleanup. (me) 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. kupdate-sigstop-2.2.11-1.gz -> allows kupdate to be stopped via SIGSTOP (currently it must be stopped by setting interval to zero via sysctl). This returns useful in the airplane where you do killall -STOP kupdate ;) (me) lp-careful-1 -> make lp to really careful when -C on is used. Avoids to eat jobs from the spool while the printer is off. (me) mremap-waste-virtual-stack-space-1.gz -> avoid mremap to grow in virtual addresses. nanosleep-4.gz -> provide nanosleep usec resolution so that a signal flood doesn't hang glibc folks that correctly trust the rem field to resume the nanosleep after a syscall interruption. (without the patch nanosleep resolution is 10msec). (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) overcommit-1.gz -> make sure to not understimate the available memory (the cache and buffers may be under the min percent). (me) probe-irq-2.3.14-pre2-1.gz -> avoid a pending irq to be mistaken for a spurious irq. (me) protected-balance-2.gz -> avoid OOM of tasks when memory is allocated in a ramdisk. All protected buffers are accounted correctly as non freeable now. (me) refill_freelist-deadlock-1.gz -> avoid deadlocking in getblk while in OOM due a page fault happened while task state was non-running. (bug spotted by Ingo Molnar in 2.3.x, 2.2.x trivial solution from me) rs6000-4.gz -> allow rs6000 to boot even if there's more than 0.7g of RAM in the system. (me) serial-proc-3 -> fix serial (and non-serial) proc mm corruption and spoofing (spotted and original fix by me, lots of replicated bugs of the same type noticed and fixed by Manfred Spraul) set_blocksize-1.gz -> some set_blocksize change to invalidate leaking entry. (me) set_rtc_mss-SMP-race-1.gz -> fix set_rtc_mss SMP race between timer irq and rtc irq. (me) shrink_all_cache-2.2.10-A.gz -> make sure that big memory boxes will shrink the cache well enough. (me) silent-stack-overflow-3.gz -> avoid stack to silenty overflow on the heap (make life easier to traq down userspace issues). Perfect approch is not possible even using special LDT for the stack segment. The approch in the patch will work 99% of the time and it enforces a GAP between heap and stack. (me) slow-gtod-SMP-race-1.gz -> fix SMP race in slow gettimeofday. (me) stod-lost_ticks-1.gz -> check lost_ticks in settimeofday to be more precise. swap-lockmap-1.gz -> fix SMP race in swap lockmap wait for I/O completation (shm still depends on the swap lockmap in 2.2.x). (me) timer_bh-deadlock-3.gz -> avoids timer code to deadlock if a timer reinsert itself with timeout <= 1. (me) tq_scheduler-cli-1.gz -> avoids tq_scheduler to run with irq disabled (for better irq latency and possibly also for the IPI timeout issue). (spotted by Manfred, reminded by Andi, current patch from me) tsc-calibration-non-compile-time-1.gz -> tsc calibration must be dynamic and not a compile time thing because gettimeofday is dynamic and depends on the tscs to be in sync. (me) version.gz -> set extraversion to aa1 z-bigmem-rawio-2.2.14aa1.gz -> SCT's rawio bigmem capable. (Stephen C. Tweedie) z-bigmem-rawio-lvm-2.2.15pre13aa1-6.gz -> LVM compatible with the 2.3.x one (Heinz Mauelshagen) z-rtclight-2.2.15pre13aa1-1.gz -> needed by alpha SMP (won't be needed anymore in 2.4.x) zz-buf-flushing-4.gz -> buffer flushing heuristic backported from 2.3.x (me) zzz-lfs-2.2.15aa1-7.gz -> LFS with new fcntl64 as asked by the glibc guys. (glibc LFS support can be based on this patch, 2.3.x still misses the fcntl64 syscall but check my ftp area and search for lfs-lock-6 to add it to 2.3.x) --------------------------------------------------------------------------- The 2.2.15aa1 patch is here: ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.2/2.2.15aa1.gz As usual all the separate patches are in: ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.2/2.2.15aa1/ and they can be applyed in order to generate the 2.2.15aa1 kernel. Andrea PS. If you'll run with more than 4giga of RAM on alpha, you'll need also to fix procps if you want to read the correct MM values with `free`, `top` and `vmstat`. procps takes all the memory information with byte granularity in `int` words (and not long words). I fixed procps this way: ftp://ftp.suse.com/pub/people/andrea/procps/procps-2.0.2-bigmem-1.gz - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/