dcsimg
Linux Today: Linux News On Internet Time.




More on LinuxToday


Andrew Morton: Linux 2.6.4-mm1

Mar 11, 2004, 14:55 (0 Talkback[s])
(Other stories by Andrew Morton)

WEBINAR:
On-Demand

Re-Imagining Linux Platforms to Meet the Needs of Cloud Service Providers


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.4/2.6.4-mm1/

  • The CPU scheduler changes in -mm (sched-domains) have been hanging about for too long. I had been hoping that the people who care about SMT and NUMA performance would have some results by now but all seems to be silent.

    I do not wish to merge these up until the big-iron guys can say that they suit their requirements, with a reasonable expectation that we will not need to churn this code later in the 2.6 series.

    So. If you have been testing, please speak up. If you have not been testing, please do so.

  • Major surgery against the pagecache, radix-tree and writeback code. This work is to address the O_DIRECT-vs-buffered data exposure horrors which we've been struggling with for months.

    As a side-effect, 32 bytes are saved from struct inode and eight bytes are removed from struct page.

    This change will break any arch code which is using page->list and will also break any arch code which is using page->lru of memory which was obtained from slab.

    It seems to work OK here, but I suggest people not rush out and convert all of the corporate finance department's servers to 2.6.4-mm1.

    The basic problem which we (mainly Daniel McNeil) have been struggling with is in getting a really reliable fsync() across the page lists while other processes are performing writeback against the same file. It's like juggling four bars of wet soap with your eyes shut while someone is whacking you with a baseball bat. Daniel pretty much has the problem plugged but I suspect that's just because we don't have testcases to trigger the remaining problems. The complexity and additional locking which those patches add is worrisome.

    So the approach taken here is to remove the page lists altogether and replace the list-based writeback and wait operations with in-order radix-tree walks.

    The radix-tree code has been enhanced to support "tagging" of pages, for later searches for pages which have a particular tag set. This means that we can ask the radix tree code "find me the next 16 dirty pages starting at pagecache index N" and it will do that in O(log64(N)) time.

    This affects I/O scheduling potentially quite significantly. It is no longer the case that the kernel will submit pages for I/O in the order in which the application dirtied them. We instead submit them in file-offset order all the time.

    This is likely to be advantageous when applications are seeking all over a large file randomly writing small amounts of data. I haven't performed much benchmarking, but tiobench random write throughput seems to be< increased by 30%. Other tests appear to be unaltered. dbench may have got 10-20% quicker, but it's variable.

    There is one large file which everyone seeks all over randomly writing small amounts of data: the blockdev mapping which caches filesystem metadata. The kernel's IO submission patterns for this are now ideal.

    Because writeback and wait-for-writeback use a tree walk instead of a list walk they are no longer livelockable. This probably means that we no longer need to hold i_sem across O_SYNC writes and perhaps fsync() and fdatasync(). This may be beneficial for databases: multiple processes writing and syncing different parts of the same file at the same time can now all submit and wait upon writes to just their own little bit of the file, so we can get a lot more data into the queues.

    It is trivial to implement a part-file-fdatasync() as well, so applications can say "sync the file from byte N to byte M", and multiple applications can do this concurrently. This is easy for ext2 filesystems, but probably needs lots of work for data-journalled filesystems and XFS and it probably doesn't offer much benefit over an i_semless O_SYNC write.

  • Dropped the hotplug CPU patches: bits of them were merged into Linus's< kernel and things broke.
  • Various little fixes as usual.

Changes since 2.6.4-rc2-mm1:

bk-acpi.patch
bk-alsa.patch
bk-driver-core.patch
bk-i2c.patch
bk-input.patch
bk-netdev.patch
bk-pci.patch
bk-scsi.patch
bk-usb.patch
 Latest external trees

-export-filemap_flush.patch
-vma-corruption-fix.patch
-centaur-crypto-core-support.patch
 Merged

+bk-acpi-warning-fix.patch
 Fix a warning

+x86_64-update.patch
 Latest x86_64 code drop

+print-kernel-version-in-oops.patch
 Display the kernel version in the x86 oops message

+ppc64-iseries-virtual-console-fix.patch
 iSeries device number fix

-zap_page_range-debug.patch
 Turns out the code path which this patch was trying to detect the deadness of is in fact used.

+sched-stats-64-bit.patch
 Use 64-bit numbers for various CPU scheduler statistics

-hotplugcpu-generalise-bogolock.patch
-hotplugcpu-generalise-bogolock-fix-for-kthread-stop-using-signals.patch
-hotplugcpu-use-bogolock-in-modules.patch
-hotplugcpu-core.patch
-stop_machine-warning-fix.patch
-hotplugcpu-core-sparc64-build-fix.patch
-hotplugcpu-core-fix-for-kthread-stop-using-signals.patch
-migrate_to_cpu-dependency-fix.patch
-hotplugcpu-core-drain_local_pages-fix.patch
-hotplugcpu-rcupdate-many-cpus-fix.patch
 Dropped

-ext3-dirty-debug-patch.patch
 This debug trap never triggered

-fusion-use-min-max.patch
 Other changes broke this

+dm-map-rwlock-ng.patch
 New version of spinlocking for the device mapper map tables

+dm-remove-__dm_request.patch
 Remvoe __dm_request()

+md-array-assembly-major-fix.patch
 RAID fix

+fadvise-fixups.patch
 Fix some fadvise() boundary conditions

+validate_mm-fixes.patch
 Enhance validate_mm()

+3ware-update.patch
 3ware driver update

+3c59x-xcvr-fix.patch
 Fix 3c59x transceiver handling

+current_is_keventd-speedup.patch
 Simplify current_is_keventd()

+root-ramdisk-fix.patch
 Make "root=/dev/ram" work again

+cciss-per-device-queues.patch
 per-device queues for the cciss driver

+blkdev-fix-final-page.patch
 Fix reads of the final block of blockdevs

+wavfront-needs-syscalls_h.patch
 Warning (and possible oops) fixes

+edd-legacy-parameters-fix.patch
 EDD back-compatibility

+cciss-section-fix.patch
 __init section fix

+pte_chain-nowarns.patch
 Prevent possible-but-expected page allocator warnings

+macintosh-config-fix.patch
 Don't offer mac drivers on other platforms

+applicom-warning-fix.patch
 Fix a warning

+CONFIG_NVRAM-dependencies.patch
 Fix NVRAM dependencies

+move-job-control-stuff-tosignal_struct.patch
 Move various job control fields out of the task_struct and into the signal_struct.

+module_h-attribute_used-fix.patch
 __attribute_used__ sanity

+kobject-module-request-64-bit-fix.patch
 Fix for 64-bit machines

+sch_htb-fix.patch
 netfilter 64-bit fix

+blk-congestion-races.patch
 Conceivably fix rare races in blk_congestion_wait()

+vm-lrutopage-cleanup.patch
 Add a handy macro to tidy up vmscan.c

+radix-tree-tagging.patch
 Add search tagging to radix trees.

+irq-safe-pagecache-lock.patch
 Make mapping->page_lock irq-safe, and rename it to tree_lock to detect missed conversions.

+tag-dirty-pages.patch
 Tag dirty pages as being dirty within their radix trees.

+tag-writeback-pages.patch
 Tag writeback pages as being under writeback in their radix trees

+stop-using-dirty-pages.patch
+stop-using-io-pages.patch
+stop-using-locked-pages.patch
+stop-using-clean-pages.patch
 Wean the kernel off the four address_space page lists

+unslabify-pgds-and-pmds.patch
 We cannot use page->lru to manage slab-derived pages: slab itself wants to use it.

+slab-stop-using-page-list.patch
 Switch slab page management from page->list to page->lru.

+page_alloc-stop-using-page-list.patch
 Switch the page allocator from using page->list to using page->lru.

+hugetlb-stop-using-page-list.patch
 Switch the hugetlbpage implementations from using page->list to using page->lru.

+pageattr-stop-using-page-list.patch
 Switch the pageattr code (CONFIG_DEBUG_PAGEALLOC) from using page->list to using page->lru.

+readahead-stop-using-page-list.patch
 Switch the readpages() API from using page->list over to using page->lru.

+compound-pages-stop-using-lru.patch
 Teach the compound page management to use page fields other than page->list.

+remove-page-list.patch
 Remove the `list' field from struct page.

+remap-file-pages-prot-ia64-2.6.4-rc2-mm1-A0.patch

Implement the per-page-permissions-in-remap_file_pages for ia64. Hasn't been tested.

-4g4g-THREAD_SIZE-fixes.patch
-4g4g-handle_BUG-fix.patch
 Folded into 4g-2.6.0-test2-mm2-A5.patch

O_DIRECT-vs-buffered-fix.patch
O_DIRECT-vs-buffered-fix-pdflush-hang-fix.patch
serialise-writeback-fdatawait.patch
restore-writeback-trylock.patch
 Dropped. Hopefully we don't need these any more.

All 258 patches:

bk-acpi.patch

bk-alsa.patch

bk-driver-core.patch

bk-i2c.patch

bk-input.patch

bk-netdev.patch

bk-pci.patch

bk-scsi.patch

bk-usb.patch

mm.patch
  add -mmN to EXTRAVERSION

dma_sync_for_device-cpu.patch
  dma_sync_for_{cpu,device}()

bk-acpi-warning-fix.patch
  bk-acpi warning fixes

x86_64-update.patch
  x86-64 merge for 2.6.4

move-dma_consistent_dma_mask.patch
  move consistent_dma_mask to the generic device

move-dma_consistent_dma_mask-x86_64-fix.patch

move-dma_consistent_dma_mask-sn-fix.patch
  Fix dma_mask patch for sn platform

print-kernel-version-in-oops.patch
  print kernel version in oops messages

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)
  kgdbL warning fix
  kgdb buffer overflow fix
  kgdbL warning fix
  kgdb: CONFIG_DEBUG_INFO fix
  x86_64 fixes
  correct kgdb.txt Documentation link (against 2.6.1-rc1-mm2)

kgdb-ga-recent-gcc-fix.patch
  kgdb: fix for recent gcc

kgdboe-netpoll.patch
  kgdb-over-ethernet via netpoll

kgdboe-non-ia32-build-fix.patch

kgdb-warning-fixes.patch
  kgdb warning fixes

kgdb-x86_64-support.patch
  kgdb-x86_64-support.patch for 2.6.2-rc1-mm3

kgdb-THREAD_SIZE-fixes.patch
  THREAD_SIZE fixes for kgdb

must-fix.patch
  must fix lists update
  must fix list update
  mustfix update

must-fix-update-5.patch
  must-fix update

ppc64-iseries-virtual-console-fix.patch
  ppc64: fix iSeries virtual console devices

ppc64-reloc_hide.patch

compat-signal-noarch-2004-01-29.patch
  Generic 32-bit compat for copy_siginfo_to_user

compat-generic-ipc-emulation.patch
  generic 32 bit emulation for System-V IPC

remove-sys_ioperm-stubs.patch
  Clean up sys_ioperm stubs

readdir-cleanups.patch
  readdir() cleanups

ext3-journalled-quotas-2.patch
  ext3: journalled quota

invalidate_inodes-speedup.patch
  invalidate_inodes speedup
  more invalidate_inodes speedup fixes

cfq-4.patch
  CFQ io scheduler
  CFQ fixes

config_spinline.patch
  uninline spinlocks for profiling accuracy.

pdflush-diag.patch

get_user_pages-handle-VM_IO.patch
  fix get_user_pages() against mappings of /dev/mem

pci_set_power_state-might-sleep.patch

CONFIG_STANDALONE-default-to-n.patch
  Make CONFIG_STANDALONE default to N

extra-buffer-diags.patch

CONFIG_SYSFS.patch
  From: Pat Mochel <mochel@osdl.org>
  Subject: [PATCH] Add CONFIG_SYSFS

CONFIG_SYSFS-boot-from-disk-fix.patch

slab-leak-detector.patch
  slab leak detector
  mm/slab.c warning in cache_alloc_debugcheck_after

scale-nr_requests.patch
  scale nr_requests with TCQ depth

truncate_inode_pages-check.patch

local_bh_enable-warning-fix.patch

sched-stats-64-bit.patch
  Use 64-bit counters for scheduler stats

sched-find_busiest_node-resolution-fix.patch
  sched: improved resolution in find_busiest_node

sched-domains.patch
  sched: scheduler domain support
  sched: fix for NR_CPUS > BITS_PER_LONG
  sched: clarify find_busiest_group
  sched: find_busiest_group arithmetic fix

sched-domains-improvements.patch
  sched domains kernbench improvements

sched-clock-fixes.patch
  fix sched_clock()

sched-sibling-map-to-cpumask.patch
  sched: cpu_sibling_map to cpu_mask
  p4-clockmod sibling_map fix
  p4-clockmod: handle more than two siblings

sched-domains-i386-ht.patch
  sched: implement domains for i386 HT
  sched: Fix CONFIG_SMT oops on UP
  sched: fix SMT + NUMA bug
  Change arch_init_sched_domains to use cpu_online_map
  Fix build with NR_CPUS > BITS_PER_LONG

sched-domain-tweak.patch
  i386-sched-domain code consolidation

sched-no-drop-balance.patch
  sched: handle inter-CPU jiffies skew

sched-directed-migration.patch
  sched_balance_exec(): don't fiddle with the cpus_allowed mask

sched-domain-debugging.patch
  sched_domain debugging

sched-domain-balancing-improvements.patch
  scheduler domain balancing improvements

sched-group-power.patch
  sched-group-power
  sched-group-power warning fixes

sched-domains-use-cpu_possible_map.patch
  sched_domains: use cpu_possible_map

sched-smt-nice-handling.patch
  sched: SMT niceness handling

sched-smt-nice-optimisation.patch
  sched: SMT-ice optimisation

fa311-mac-address-fix.patch
  wrong mac address with netgear FA311 ethernet card

laptop-mode-2.patch
  laptop-mode for 2.6, version 6
  Documentation/laptop-mode.txt
  laptop-mode documentation updates
  Laptop mode documentation addition
  laptop mode simplification

pid_max-fix.patch
  Bug when setting pid_max > 32k

use-soft-float.patch
  Use -msoft-float

DRM-cvs-update.patch
  DRM cvs update

drm-include-fix.patch

process-migration-speedup.patch
  Reduce TLB flushing during process migration

nfs-31-attr.patch
  NFSv2/v3/v4: New attribute revalidation code

nfs-reconnect-fix.patch

nfs-mount-fix.patch
  Update to NFS mount....

nfs-d_drop-lowmem.patch
  NFS: handle nfs_fhget() error

nfs-avoid-i_size_write.patch
  NFS: avoid unlocked i_size_write()

nfs_unlink-oops-fix.patch
  nfs: fix "busy inodes after umount"

nfs-remove-XID-spinlock.patch
  nfs: Remove an unnecessary spinlock from XID generation...

nfs-misc-rpc-fixes.patch
  nfs: Misc RPC fixes...

nfs-improved-writeback-strategy.patch
  nfs: improve writeback caching

nfs-simplify-config-options.patch
  nfs: simplify client configuration options.

nfs-fix-msync.patch
  nfs: fix msync()

nfs-mount-return-useful-errors.patch
  nfs: make mount command return more useful errors

nfs-misc-minor-fixes.patch
  nfs: misc minor fixes

nfs-lockd-sync-01.patch
  nfs: sync lockd to 2.4.x

nfs-lockd-sync-02.patch
  nfs: sync lockd to 2.4.x

nfs-lockd-sync-03.patch
  nfs: sync lockd to 2.4.x

nfs-lockd-sync-04.patch
  nfs: sync lockd to 2.4.x

nfs-rpc-remove-redundant-memset.patch
  nfs: remove unnecessary memset() in RPC

nfs-tunable-rpc-slot-table.patch
  nfs: make the RPC slot table size a tunable value.

nfs-short-read-fix.patch
  nfs: fix an NFSv2 read bug

nfs-server-in-root_server_path.patch
  Pull NFS server address out of root_server_path

non-readable-binaries.patch
  Handle non-readable binfmt_misc executables

binfmt_misc-credentials.patch
  binfmt_misc: improve calaulation of interpreter's credentials

initramfs-search-for-init.patch
  search for /init for initramfs boots

adaptive-lazy-readahead.patch
  adaptive lazy readahead

sysfs_remove_dir-race-fix.patch
  sysfs_remove_dir-vs-dcache_readdir race fix

sysfs_remove_subdir-dentry-leak-fix.patch
  Fix dentry refcounting in sysfs_remove_group()

per-node-rss-tracking.patch
  Track per-node RSS for NUMA

aic7xxx-deadlock-fix.patch
  aic7xxx deadlock fix

futex_wait-debug.patch
  futex_wait debug

module_exit-deadlock-fix.patch
  module unload deadlock fix

selinux-inode-race-trap.patch
  Try to diagnose Bug 2153

ufs2-01.patch
  read-only support for UFS2

ide-scsi-error-handling-fixes.patch
  ide-scsi error handling fixes

ide-scsi-error-handling-update.patch
  ide-scsi error handler update

fb_console_init-fix.patch
  fb_console_init fix

poll-select-longer-timeouts.patch
  poll()/select(): support longer timeouts

poll-select-range-check-fix.patch
  poll()/select() range checking fix

poll-select-handle-large-timeouts.patch
  poll()/select(): handle long timeouts

pcmcia-debugging-rework-1.patch
  Overhaul PCMCIA debugging (1)

cs_err-compile-fix.patch
  pcmcia: workaround for gcc-2.95 bug in cs_err()

pcmcia-debugging-rework-2.patch
  Overhaul PCMCIA debugging (2)

distribute-early-allocations-across-nodes.patch
  Manfred's patch to distribute boot allocations across nodes

time-interpolator-fix.patch
  time interpolator fix

kmsg-nonblock.patch
  teach /proc/kmsg about O_NONBLOCK

mixart-build-fix.patch
  CONFIG_SND_MIXART doesn't compile

add-a-slab-for-ethernet.patch
  Add a kmalloc slab for ethernet packets

remove-__io_virt_debug.patch
  remove __io_virt_debug

genrtc-cleanups.patch
  genrtc: cleanups

piix_ide_init-can-be-__init.patch
  piix_ide_init can be __init

i386-early-memory-cleanup.patch
  i386 very early memory detection cleanup patch

modular-mce-handler.patch
  Allow X86_MCE_NONFATAL to be a module

remove-more-KERNEL_SYSCALLS.patch
  further __KERNEL_SYSCALLS__ removal
  build fix for remove-more-KERNEL_SYSCALLS.patch
  fix the build for remove-more-KERNEL_SYSCALLS

mq-01-codemove.patch
  posix message queues: code move

mq-02-syscalls.patch
  posix message queues: syscall stubs

mq-03-core.patch
  posix message queues: implementation

mq-03-core-update.patch
  posix message queues: update to core patch

mq-04-linuxext-poll.patch
  posix message queues: linux-specific poll extension

mq-05-linuxext-mount.patch
  posix message queues: made user mountable

mq-update-01.patch
  posix message queue update

mq-security-fix.patch
  security bugfix for mqueue

dm-01-endio-method.patch
  dm: endio method

dm-03-list_for_each_entry-audit.patch
  dm: list_for_each_entry audit

dm-04-default-queue-limits-fix.patch
  dm: default queue limits

dm-05-list-targets-command.patch
  dm: list targets cmd

dm-06-stripe-width-fix.patch
  dm: stripe width fix

queue-congestion-callout.patch
  Add queue congestion callout

queue-congestion-dm-implementation.patch
  Implement queue congestion callout for device mapper

dm-maplock.patch
  devicemapper: use rwlock for map alterations

dm-map-rwlock-ng.patch
  Another DM maplock implementation

dm-remove-__dm_request.patch
  dmL remove __dm_request

use-wait_task_inactive-in-kthread_bind.patch
  use wait_task_inactive() in kthread_bind()

HPFS1-hpfs2-RC4-rc1.patch

HPFS2-hpfs_namei-RC4-rc1.patch

selinux-cleanup-binary-mount-data.patch
  selinux: clean up binary mount data

udffs-update.patch
  UDF filesystem update

kbuild-redundant-CFLAGS.patch
  kbuild: Remove CFLAGS assignment in i386/mach-*/Makefile

numa-aware-zonelist-builder.patch
  NUMA-aware zonelist builder
  numa-aware zonelist builder fix
  numa-aware node builder fix #2

remove-redundant-unplug_timer-deletion.patch
  Redundant unplug_timer deletion

queue_work_on_cpu.patch
  Add queue_work_on_cpu() workqueue function

m68k-rename-sys_functions.patch
  m68k: rename sys_* functions

pdc202xx_new-update.patch
  ide: update for pdc202xx_new driver

siimage-update.patch
  ide: update for siimage driver

ide-cleanups-01.patch
  ide: IDE cleanups

ide-cleanups-02.patch
  ide: IDE cleanups

ide-cleanups-03.patch
  ide: IDE cleanups

cdromaudio-use-dma.patch
  use DMA for CDROM audio reading

sysfs-pin-kobject.patch
  sysfs: pin kobjects to fix use-after-free crashes

ATI-IXP-IDE-support.patch
  ATI IXP IDE support

ipmi-updates-3.patch
  IPMI driver updates

ipmi-socket-interface.patch
  IPMI: socket interface

md-use-schedule_timeout.patch
  md: use "shedule_timeout(2)" instead of yield()

md-array-assembly-fix.patch
  md: allow assembling of partitioned arrays at boot time.

md-array-assembly-major-fix.patch
  md array assembly major number fix

compiler_h-scope-fixes.patch
  compiler.h scoping fixes

nmi_watchdog-local-apic-fix.patch
  Fix nmi_watchdog=2 and P4 HT

nmi-1-hz.patch
  set nmi_hz to 1 with nmi_watchdog=2 and SMP

elf-mmap-fix.patch
  Fix elf mapping of the zero page

kbuild-more-cleaning.patch
  kbuild: Cause `make clean' to remove more files

LOOP_CHANGE_FD.patch
  LOOP_CHANGE_FD ioctl

loop-setup-race-fix.patch
  loop setup race fix

handle-dot-o-paths.patch
  kbuild: fix usage with directories containing '.o'

acpi-asmlinkage-fix.patch
  gcc-3.5: acpi build fix

ipc-sem-extra-sem_unlock.patch
  Remove unneeded unlock in ipc/sem.c

procfs-dangling-subdir-fix.patch
  /proc data corruption check

AMD-768MPX-bootmem-fix.patch
  Work around an AMD768MPX erratum

i810fb-on-x86_64.patch
  Enable i810 fb on x86-64

ext23-remove-acl-limits.patch
  Remove arbitrary #acl entries limits on ext[23] when reading

watchdog-moduleparam-patches.patch
  watchdog: moduleparam-patches

amd-elan-fix.patch
  AMD ELAN Kconfig fix

pcmcia-netdev-ordering-fixes.patch
  PCMCIA netdevice ordering issues

fadvise-fixups.patch
  fadvise(POSIX_FADV_DONTNEED) fixups

validate_mm-fixes.patch
  Fix and harden validate_mm

3ware-update.patch
  3ware driver update

3c59x-xcvr-fix.patch
  Fix 3c59x transceiver handling

current_is_keventd-speedup.patch
  current_is_keventd() speedup

root-ramdisk-fix.patch
  Fix rootfs on ramdisk

cciss-per-device-queues.patch
  cciss: per device queues

blkdev-fix-final-page.patch
  Fix reading the last block on a bdev

wavfront-needs-syscalls_h.patch
  wavfront.c needs syscalls.h

edd-legacy-parameters-fix.patch
  EDD: Get Legacy Parameters

cciss-section-fix.patch
  cciss: init section fix

pte_chain-nowarns.patch
  add nowarn to a few pte chain allocators

macintosh-config-fix.patch
  Disable Macintosh device drivers for all but PPC || MAC

applicom-warning-fix.patch
  Applicom warning

CONFIG_NVRAM-dependencies.patch
  Fix CONFIG_NVRAM dependencies

move-job-control-stuff-tosignal_struct.patch
  moef job control fields from task_struct to signal_struct

module_h-attribute_used-fix.patch
  module.h __attribute_used__ fix

kobject-module-request-64-bit-fix.patch
  Fix a 64bit bug in kobject module request

sch_htb-fix.patch
  net: fix sch_htb on 64-bit

instrument-highmem-page-reclaim.patch
  vm: per-zone vmscan instrumentation

blk_congestion_wait-return-remaining.patch
  return remaining jiffies from blk_congestion_wait()

blk-congestion-races.patch
  Narrow blk_congestion_wait races

vmscan-remove-priority.patch
  mm/vmscan.c: remove unused priority argument.

kswapd-throttling-fixes.patch
  kswapd throttling fixes

vm-refill_inactive-preserve-referenced.patch
  vmscan: preserve page referenced info in refill_inactive()

shrink_slab-precision-fix.patch
  shrink_slab: math precision fix

try_to_free_pages-shrink_slab-evenness.patch
  vm: shrink slab evenly in try_to_free_pages()

vmscan-total_scanned-fix.patch
  vmscan: fix calculation of number of pages scanned

shrink_slab-for-all-zones-2.patch
  vm: scan slab in response to highmem scanning

zone-balancing-fix-2.patch
  vmscan: zone balancing fix

vmscan-control-by-nr_to_scan-only.patch
  vmscan: drive everything via nr_to_scan

vmscan-balance-zone-scanning-rates.patch
  Balance inter-zone scan rates

vmscan-dont-throttle-if-zero-max_scan.patch
  vmscan: avoid bogus throttling

kswapd-avoid-higher-zones.patch
  kswapd: avoid unnecessary reclaiming from higher zones

kswapd-avoid-higher-zones-reverse-direction.patch
  kswapd: fix lumpy page reclaim

kswapd-avoid-higher-zones-reverse-direction-fix.patch
  fix the kswapd zone scanning algorithm

vmscan-throttle-later.patch
  vmscan: less throttling of page allocators and kswapd

vm-batch-inactive-scanning.patch
  vmscan: batch up inactive list scanning work

vm-batch-inactive-scanning-fix.patch
  fix vm-batch-inactive-scanning.patch

vm-balance-refill-rate.patch
  vm: balance inactive zone refill rates

vm-lrutopage-cleanup.patch
  vmscan: add lru_to_page() helper

slab-no-higher-order.patch
  slab: avoid higher-order allocations

O_DIRECT-race-fixes-rollup.patch
  O_DIRECT data exposure fixes

O_DIRECT-ll_rw_block-vs-block_write_full_page-fix.patch
  Fix race between ll_rw_block() and block_write_full_page()

blockdev-direct-io-speedup.patch
  blockdev direct-io speedups

dio-aio-fixes.patch
  direct-io AIO fixes

aio-fallback-bio_count-race-fix-2.patch
  AIO+DIO bio_count race fix

aio-direct-io-oops-fix.patch
  AIO/direct-io oops fix

radix-tree-tagging.patch
  radix-tree tags for selective lookup

irq-safe-pagecache-lock.patch
  make the pagecache lock irq-safe.

tag-dirty-pages.patch
  tag dirty pages as such in the radix tree

tag-writeback-pages.patch
  tag writeback pages as such in their radix tree

stop-using-dirty-pages.patch
  stop using the address_space dirty_pages list

stop-using-io-pages.patch
  remove address_space.io_pages

stop-using-locked-pages.patch
  Stop using address_space.locked_pages

stop-using-clean-pages.patch
  stop using address_space.clean_pages

unslabify-pgds-and-pmds.patch
  revert the slabification of i386 pgd's and pmd's

slab-stop-using-page-list.patch
  slab: stop using page.list

page_alloc-stop-using-page-list.patch
  stop using page.list in the page allocator

hugetlb-stop-using-page-list.patch
  stop using page->list in the hugetlbpage implementations

pageattr-stop-using-page-list.patch
  stop using page.list in pageattr.c

readahead-stop-using-page-list.patch
  stop using page.list in readahead

compound-pages-stop-using-lru.patch
  stop using page->lru in compound pages

remove-page-list.patch
  remove page.list

remap-file-pages-prot-2.6.4-rc1-mm1-A1.patch
  per-page protections for remap_file_pages()

remap-file-pages-prot-ia64-2.6.4-rc2-mm1-A0.patch
  remap_file_pages page-prot implementation for ia64

list_del-debug.patch
  list_del debug check

oops-dump-preceding-code.patch
  i386 oops output: dump preceding code

lockmeter.patch
  lockmeter

lockmeter-ia64-fix.patch
  ia64 CONFIG_LOCKMETER fix

4g-2.6.0-test2-mm2-A5.patch
  4G/4G split patch
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g/4g usercopy atomicity fix
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g/4g usercopy atomicity fix
  4G/4G preempt on vstack
  4G/4G: even number of kmap types
  4g4g: fix __get_user in slab
  4g4g: Remove extra .data.idt section definition
  4g/4g linker error (overlapping sections)
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g4g: show_registers() fix
  4g/4g usercopy atomicity fix
  4g4g: debug flags fix
  4g4g: Fix wrong asm-offsets entry
  cyclone time fixmap fix
  4G/4G preempt on vstack
  4G/4G: even number of kmap types
  4g4g: fix __get_user in slab
  4g4g: Remove extra .data.idt section definition
  4g/4g linker error (overlapping sections)
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g4g: show_registers() fix
  4g/4g usercopy atomicity fix
  4g4g: debug flags fix
  4g4g: Fix wrong asm-offsets entry
  cyclone time fixmap fix
  use direct_copy_{to,from}_user for kernel access in mm/usercopy.c
  4G/4G might_sleep warning fix
  4g/4g pagetable accounting fix
  Fix 4G/4G and WP test lockup
  4G/4G KERNEL_DS usercopy again
  Fix 4G/4G X11/vm86 oops
  Fix 4G/4G athlon triplefault
  4g4g SEP fix
  Fix 4G/4G split fix for pre-pentiumII machines
  4g/4g PAE ACPI low mappings fix
  zap_low_mappings() cannot be __init
  4g/4g: remove printk at boot
  4g4g: fix handle_BUG()
  4g4g: acpi sleep fixes

4g4g-locked-userspace-copy.patch
  Do a locked user-space copy for 4g/4g

ia32-4k-stacks.patch
  ia32: 4Kb stacks (and irqstacks) patch

ia32-4k-stacks-build-fix.patch
  4k stacks build fix

4k-stacks-in-modversions-magic.patch
  Add 4k stacks to module version magic

ppc-fixes.patch
  make mm4 compile on ppc

ppc-fixes-dependency-fix.patch
  ppc-fixes dependency fix