Linux Today: Linux News On Internet Time.

Linux kernel 2.2.15aa1 released

May 05, 2000, 20:08 (0 Talkback[s])
(Other stories by Andrea Arcangeli)
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
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
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
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.
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.
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.
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

The 2.2.15aa1 patch is here:


As usual all the separate patches are in:


and they can be applyed in order to generate the 2.2.15aa1 kernel.


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: