arca-1-against-pre-2.1.127-3

Andrea Arcangeli (andrea@e-mind.com)
Sat, 31 Oct 1998 03:34:51 +0100 (CET)


I' ve done a diff from my tree (with my new code) against pre-2.1.127-3.

This my diff includes:

o My fully jiffy wrap compliant schedule_timeout() and
interruptible_sleep_on_timeout(). My drivers are all uptodate
with these new functions, other drivers can not compile. I had
not the time to update other hardare too. Notify me if something
doesn't compile and I' ll sent you an incremental patch ASAP.

o Tons of time_*() jiffies updates. Also some fix for some timer
that it' s been set to `0' in order to run ASAP. When a timer
has to be run ASAP should be set with expires = jiffies instead.

o My latest (>oom-22) memory management OOM fix. With this code
kswapd is really a daemon an run in background and schedule as a
normal process but with dynamic priority. I also tried to shutdown
kswapd (incidentally btw ;-) and all my evil process didn' t
segfaulted. kswapd is useful to improve things but with this patch
__get_free_pages/try_to_free_pages() are able to handle the
swapping just fine without need kswapd (and this is a must
for RT tasks). As just said kswapd improve a _lot_ (because
async) the time needed for the swapout. The new FP_IMPOSSIBLE
flag make __get_free_pages() able to detect when to OOM fine.
Also swapoff -a works just fine. You could get some warning
message from the swap code but I have verifyed that it' s not
a race, but it' s a normal allowed and safe case when while
swapoff is swapping-in, also the process has swapped in the
page before swapoff had the time to swap_duplicate().

o mmap sync fix. This patch allow to share an mmapped region and
to update the shared mappings at sync/release time for all process
that are sharing such memory region. This improve things a lot.
I don' t know if it' s enough generic (because I handle only
the filemap case), but it' s been rock so far and looks clean.

o proc/sysctl #ifdef fix. This will allow you to compile
your kernel without /proc and/or sysctl support.

o little vmalloc fix.

o swap_cache_find_success/total now say something.

I hope to have not missed something ;->.

Everything in the patch worked fine here so far.

Note that when you' ll boot your new kernel you' ll run in the past for 1
hour (run uptime and you' ll see), so you' ll have exactly 1 hour to
stress test the kernel to eventually catch some nasty timer expire bug. I
had no one problem so far also while in the past though...

arch/i386/kernel/irq.c | 2
arch/i386/kernel/mtrr.c | 3
arch/i386/kernel/time.c | 2
arch/mips/kernel/time.c | 16 ++
arch/sparc/kernel/process.c | 2
drivers/block/acsi.c | 4
drivers/block/ataflop.c | 4
drivers/block/ide-cd.c | 3
drivers/block/ide-probe.c | 2
drivers/block/ide.c | 10 -
drivers/block/ide.h | 2
drivers/block/pdc4030.c | 8 -
drivers/block/ps2esdi.c | 6
drivers/block/xd.c | 2
drivers/char/console.c | 5
drivers/char/cyclades.c | 8 -
drivers/char/esp.c | 2
drivers/char/istallion.c | 2
drivers/char/lp.c | 18 --
drivers/char/msp3400.c | 9 -
drivers/char/n_tty.c | 16 +-
drivers/char/riscom8.c | 4
drivers/char/saa5249.c | 2
drivers/char/serial.c | 6
drivers/char/specialix.c | 6
drivers/char/stallion.c | 2
drivers/char/tty_io.c | 3
drivers/char/tty_ioctl.c | 19 ---
drivers/char/tuner.c | 3
drivers/misc/parport_arc.c | 2
drivers/misc/parport_ax.c | 4
drivers/misc/parport_ieee1284.c | 3
drivers/misc/parport_init.c | 8 +
drivers/misc/parport_pc.c | 4
drivers/net/3c505.c | 54 ++++----
drivers/net/3c523.c | 2
drivers/net/atp.c | 2
drivers/net/dgrs.c | 4
drivers/net/hp100.c | 26 ++--
drivers/net/ibmtr.c | 2
drivers/net/ltpc.c | 18 +-
drivers/net/ppp.c | 1
drivers/net/rrunner.c | 4
drivers/net/sdla.c | 6
drivers/net/seeq8005.c | 8 -
drivers/net/shaper.c | 4
drivers/net/sktr.c | 4
drivers/pci/pcisyms.c | 2
drivers/scsi/53c7,8xx.c | 6
drivers/scsi/53c7xx.c | 6
drivers/scsi/NCR5380.c | 24 +--
drivers/scsi/NCR53c406a.c | 8 -
drivers/scsi/aha152x.c | 4
drivers/scsi/aic7xxx.c | 4
drivers/scsi/atari_NCR5380.c | 8 -
drivers/scsi/atari_scsi.c | 2
drivers/scsi/eata_dma.c | 4
drivers/scsi/eata_pio.c | 2
drivers/scsi/imm.c | 4
drivers/scsi/mac_NCR5380.c | 8 -
drivers/scsi/mac_scsi.c | 2
drivers/scsi/ncr53c8xx.c | 2
drivers/scsi/pci2000.c | 2
drivers/scsi/pci2220i.c | 4
drivers/scsi/ppa.c | 4
drivers/scsi/psi240i.c | 4
drivers/scsi/qlogicfas.c | 8 -
drivers/scsi/scsi.c | 4
drivers/scsi/scsi_obsolete.c | 3
drivers/scsi/sd.c | 12 +
drivers/scsi/seagate.c | 8 -
drivers/scsi/wd7000.c | 8 -
drivers/sound/dmabuf.c | 55 ++++-----
drivers/sound/midibuf.c | 15 --
drivers/sound/sequencer.c | 33 +----
fs/lockd/clntlock.c | 6
fs/lockd/clntproc.c | 14 --
fs/lockd/svc.c | 9 -
fs/nfs/inode.c | 6
fs/proc/array.c | 2
fs/select.c | 49 +++-----
include/linux/arcdevice.h | 2
include/linux/mm.h | 8 +
include/linux/poll.h | 2
include/linux/sched.h | 12 +
include/linux/sunrpc/svcsock.h | 2
include/linux/sysctl.h | 1
include/linux/timer.h | 10 +
include/linux/tty.h | 2
include/net/sock.h | 2
include/net/tcp.h | 2
ipc/shm.c | 10 -
kernel/itimer.c | 13 --
kernel/ksyms.c | 2
kernel/sched.c | 179 ++++++++++++++++++++---------
kernel/signal.c | 19 +--
kernel/sysctl.c | 27 +---
mm/filemap.c | 123 +++++++++++++++++---
mm/mmap.c | 6
mm/page_alloc.c | 25 +++-
mm/swap_state.c | 18 ++
mm/vmalloc.c | 3
mm/vmscan.c | 241 +++++++++++++++++++++++++---------------
net/ipv4/af_inet.c | 15 +-
net/ipv4/ip_masq.c | 16 +-
net/ipv4/ip_masq_autofw.c | 2
net/ipv4/ipconfig.c | 2
net/ipv4/tcp.c | 10 -
net/ipv4/tcp_output.c | 2
net/sunrpc/sched.c | 14 --
net/sunrpc/svcsock.c | 6
111 files changed, 846 insertions, 589 deletions

ftp://e-mind.com/pub/linux/kernel-patches/arca-1-against-pre-2.1.127-3.diff.gz

Linus tell me if you are interested on something, in such case I'll
extract it from my tree.

Andrea Arcangeli

-
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/