linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* 2.5.33-mm2
@ 2002-09-04  9:06 Andrew Morton
  2002-09-04  9:32 ` 2.5.33-mm2 Andrew Morton
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Andrew Morton @ 2002-09-04  9:06 UTC (permalink / raw)
  To: lkml, linux-mm

- Linus has merged ia32 NUMA discontigmem support

+ Added a little cleanup patch from various folks.


Threw in the kichen sink:

+writeback-control.patch

  Infrastructure for richer communication between the block layer
  and the VM.

+queue-congestion.patch

  Infrastructure for non-blocking writeout in the block layer.

+nonblocking-pdflush.patch

  Non-blocking background writeback

+nonblocking-vm.patch

  Non-blocking page reclaim.

This is all about reducing latency when the machine is performing heavy
writeback, which has been a significant performance problem for ever.
The code also happens to provide improved scalability in many-spindle
pagecache writeback.

The code is stable, but by no means complete.  Under some loads it will
chew tons of CPU in page reclaim.

But with mem=512m and four instances of `dbench 100' each against a
different disk the machine was 100% responsive and ran a `make -j6
bzImage' in three minutes.  Without these patches the kernel took over
five minutes just to unpack the kernel tarball.



linus.patch
  cset-1.575-to-1.600.txt.gz

scsi_hack.patch
  Fix block-highmem for scsi

ext3-htree.patch
  Indexed directories for ext3

zone-pages-reporting.patch
  Fix the boot-time reporting of each zone's available pages

enospc-recovery-fix.patch
  Fix the __block_write_full_page() error path.

fix-faults.patch
  Back out the initial work for atomic copy_*_user()

spin-lock-check.patch
  spinlock/rwlock checking infrastructure

refill-rate.patch
  refill the inactive list more quickly

copy_user_atomic.patch

kmap_atomic_reads.patch
  Use kmap_atomic() for generic_file_read()

kmap_atomic_writes.patch
  Use kmap_atomic() for generic_file_write()

throttling-fix.patch
  Fix throttling of heavy write()rs.

dirty-state-accounting.patch
  Make the global dirty memory accounting more accurate

rd-cleanup.patch
  Cleanup and fix the ramdisk driver (doesn't work right yet)

discontig-cleanup-1.patch
  i386 discontigmem coding cleanups

discontig-cleanup-2.patch
  i386 discontigmem cleanups

writeback-thresholds.patch
  Downward adjustments to the default dirtymemory thresholds

buffer-strip.patch
  Limit the consumption of ZONE_NORMAL by buffer_heads

rmap-speedup.patch
  rmap pte_chain space and CPU reductions

wli-highpte.patch
  Resurrect CONFIG_HIGHPTE - ia32 pagetables in highmem

readv-writev.patch
  O_DIRECT support for readv/writev

slablru.patch
  age slab pages on the LRU

slablru-speedup.patch
  slablru optimisations

llzpr.patch
  Reduce scheduling latency across zap_page_range

buffermem.patch
  Resurrect buffermem accounting

config-PAGE_OFFSET.patch
  Configurable kenrel/user memory split

lpp.patch
  ia32 huge tlb pages

ext3-sb.patch
  u.ext3_sb -> generic_sbp

oom-fix.patch
  Fix an OOM condition on big highmem machines

tlb-cleanup.patch
  Clean up the tlb gather code

dump-stack.patch
  arch-neutral dump_stack() function

wli-cleanup.patch
  random cleanups

madvise-move.patch
  move mdavise implementation into mm/madvise.c

split-vma.patch
  VMA splitting patch

buffer-ops-move.patch
  Move submit_bh() and ll_rw_block() into fs/buffer.c

writeback-control.patch
  Cleanup and extension of the writeback paths

queue-congestion.patch
  Infrastructure for communicating request queue congestion to the VM

nonblocking-pdflush.patch
  non-blocking writeback infrastructure, use it for pdflush

nonblocking-vm.patch
  Non-blocking page reclaim
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

^ permalink raw reply	[flat|nested] 19+ messages in thread
* Re: 2.5.33-mm1
@ 2002-09-04  2:51 Ed Tomlinson
  2002-09-04  3:33 ` 2.5.33-mm1 Andrew Morton
  0 siblings, 1 reply; 19+ messages in thread
From: Ed Tomlinson @ 2002-09-04  2:51 UTC (permalink / raw)
  To: William Lee Irwin III; +Cc: lkml, linux-mm

On September 3, 2002 09:13 pm, Andrew Morton wrote:
> ext3_inode_cache     959   2430    448  264  270    1
>
> That's 264 pages in use, 270 total.  If there's a persistent gap between
> these then there is a problem - could well be that slablru is not locating
> the pages which were liberated by the pruning sufficiently quickly.

Sufficiently quickly is a relative thing.  It could also be that by the time
the pages are reclaimed another <n> have been cleaned.  IMO its no worst
than have freeable pages on lru from any other source.  If we get close to
oom we will call kmem_cache_reap, otherwise we let the lru find the pages.

> Calling kmem_cache_reap() after running the pruners will fix that up.

more specificly kmem_cache_reap will clean the one cache with the most
free pages...

>What on earth is going on with kmem_cache_reap?  Am I missing
>something, or is that thing 700% overdesigned?  Why not just
>free the darn pages in kmem_cache_free_one()?  Maybe hang onto
>a few pages for cache warmth, but heck.

This might be as simple as we can see the free pages in slabs.  We
cannot see other freeable pages in the lru.  This makes slabs seem
like a problem - just because we can see it.

On the other hand we could setup to call __kmem_cache_shrink_locked
after pruning a cache - as it is now this will use page_cache_release
to free the pages...  Need to be careful coding this though.

Andrew, you stated that we need to consider dcache and icache pages
as very important ones.  I submit that this is what slablru is doing.
It is keeping more of these objects around than the previous design,
which is what you wanted to see happen.

Still working on a good reply to your design suggestion/questions?

Ed

-------------------------------------------------------

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

^ permalink raw reply	[flat|nested] 19+ messages in thread
* 2.5.33-mm1
@ 2002-09-03  4:16 Andrew Morton
  2002-09-04  0:40 ` 2.5.33-mm1 William Lee Irwin III
  0 siblings, 1 reply; 19+ messages in thread
From: Andrew Morton @ 2002-09-03  4:16 UTC (permalink / raw)
  To: lkml, linux-mm


Seven new patches - mostly just code cleanups.

+slablru-speedup.patch

  A patch to improve slablru cpu efficiency.  Ed is
  redoing this.

+oom-fix.patch

  Fix an OOM-killing episode on large highmem machines.

+tlb-cleanup.patch

  Remove debug code from the tlb_gather rework, tidy up a couple of
  things.

+dump-stack.patch

  Arch-independent stack-dumping debug function

+madvise-move.patch

  Move the madvise implementation out of filemap.c into madvise.c

+split-vma.patch

  Rationalise lots of the VMA-manipulation code.

+buffer-ops-move.patch

  Move the buffer_head IO functions out of ll_rw_blk.c, into buffer.c




scsi_hack.patch
  Fix block-highmem for scsi

ext3-htree.patch
  Indexed directories for ext3

rmap-locking-move.patch
  move rmap locking inlines into their own header file.

discontig-paddr_to_pfn.patch
  Convert page pointers into pfns for i386 NUMA

discontig-setup_arch.patch
  Rework setup_arch() for i386 NUMA

discontig-mem_init.patch
  Restructure mem_init for i386 NUMA

discontig-i386-numa.patch
  discontigmem support for i386 NUMA

cleanup-mem_map-1.patch
  Clean up lots of open-coded uese of mem_map[].  For ia32 NUMA

zone-pages-reporting.patch
  Fix the boot-time reporting of each zone's available pages

enospc-recovery-fix.patch
  Fix the __block_write_full_page() error path.

fix-faults.patch
  Back out the initial work for atomic copy_*_user()

spin-lock-check.patch
  spinlock/rwlock checking infrastructure

refill-rate.patch
  refill the inactive list more quickly

copy_user_atomic.patch

kmap_atomic_reads.patch
  Use kmap_atomic() for generic_file_read()

kmap_atomic_writes.patch
  Use kmap_atomic() for generic_file_write()

throttling-fix.patch
  Fix throttling of heavy write()rs.

dirty-state-accounting.patch
  Make the global dirty memory accounting more accurate

rd-cleanup.patch
  Cleanup and fix the ramdisk driver (doesn't work right yet)

discontig-cleanup-1.patch
  i386 discontigmem coding cleanups

discontig-cleanup-2.patch
  i386 discontigmem cleanups

writeback-thresholds.patch
  Downward adjustments to the default dirtymemory thresholds

buffer-strip.patch
  Limit the consumption of ZONE_NORMAL by buffer_heads

rmap-speedup.patch
  rmap pte_chain space and CPU reductions

wli-highpte.patch
  Resurrect CONFIG_HIGHPTE - ia32 pagetables in highmem

readv-writev.patch
  O_DIRECT support for readv/writev

slablru.patch
  age slab pages on the LRU

slablru-speedup.patch
  slablru optimisations

llzpr.patch
  Reduce scheduling latency across zap_page_range

buffermem.patch
  Resurrect buffermem accounting

config-PAGE_OFFSET.patch
  Configurable kenrel/user memory split

lpp.patch
  ia32 huge tlb pages

ext3-sb.patch
  u.ext3_sb -> generic_sbp

oom-fix.patch
  Fix an OOM condition on big highmem machines

tlb-cleanup.patch
  Clean up the tlb gather code

dump-stack.patch
  arch-neutral dump_stack() function

madvise-move.patch
  move mdavise implementation into mm/madvise.c

split-vma.patch
  VMA splitting patch

buffer-ops-move.patch
  Move submit_bh() and ll_rw_block() into fs/buffer.c
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2002-09-04 20:18 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-04  9:06 2.5.33-mm2 Andrew Morton
2002-09-04  9:32 ` 2.5.33-mm2 Andrew Morton
2002-09-04  9:29   ` 2.5.33-mm2 Stephen C. Tweedie
2002-09-04 15:48 ` 2.5.33-mm2 Adam Kropelin
2002-09-04 17:16 ` 2.5.33-mm1 Paul Larson
2002-09-04 18:02   ` 2.5.33-mm1 Andrew Morton
2002-09-04 20:07     ` 2.5.33-mm1 Paul Larson
  -- strict thread matches above, loose matches on Subject: below --
2002-09-04  2:51 2.5.33-mm1 Ed Tomlinson
2002-09-04  3:33 ` 2.5.33-mm1 Andrew Morton
2002-09-04 19:25   ` 2.5.33-mm1 Stephen C. Tweedie
2002-09-04 20:18     ` 2.5.33-mm1 Andrew Morton
2002-09-03  4:16 2.5.33-mm1 Andrew Morton
2002-09-04  0:40 ` 2.5.33-mm1 William Lee Irwin III
2002-09-04  0:53   ` 2.5.33-mm1 Rik van Riel
2002-09-04  1:13   ` 2.5.33-mm1 Andrew Morton
2002-09-04  1:15     ` 2.5.33-mm1 William Lee Irwin III
2002-09-04  1:37       ` 2.5.33-mm1 Andrew Morton
2002-09-04  2:55       ` 2.5.33-mm1 Ed Tomlinson
2002-09-04  2:54         ` 2.5.33-mm1 William Lee Irwin III

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox