public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* -aa VM splitup
@ 2002-03-20  3:53 Andrew Morton
  2002-03-31 12:26 ` Mike Galbraith
  0 siblings, 1 reply; 14+ messages in thread
From: Andrew Morton @ 2002-03-20  3:53 UTC (permalink / raw)
  To: lkml


I've been crunching on Andrea's 10_vm-32 patch for a number of days
with a view to getting it into the main tree.

At http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre3/aa/ are 24
separate patches - the sum of all these is basically identical to
10_vm-32.  Note that the commentary in some of those patches is not
completely accurate.

Linus reviewed those patches over the weekend.  As a result of that and
some of my own work, we're down to 16 patches.  They are at

http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre3/aa2/

I'll be feeding those 16 patches onto this mailing list for review. 
Here's a summary:

aa-010-show_stack.patch
	Sort-of provides an arch-independent show_stack() API.

aa-020-sync_buffers.patch
	writeback changes.

aa-030-writeout_scheduling.patch
	More writeback changes.

aa-040-touch_buffer.patch
	Buffer page aging changes.

aa-050-page_virtual.patch
        Linus said: "it just makes a micro-optimization to
        "page_address()" for the case where there is only one mem_map. 
        In my book, it only makes the thing more unreadable."

        Not included in aa2.

aa-060-start_aggressive_readahead.patch
        This was patch leakage from the XFS tree.  Not included in aa2

aa-070-exclusive_swap_page.patch
	Linus says this was addressed by other means.  Not included.

aa-080-async_swap_speedup.patch
        Linus said "The other part (that allows async swapins)
        was dangerous in my testing (it's originally from me): it
        allows a process that has a big dirty footprint to keep on to
        its pages without ever waiting for their dirty writeback.  I
        ended up reverting it because it allowed hoggers to make for
        worse interactive behaviour, but it definitely improves
        throughput."

        Not included.

aa-090-zone_watermarks.patch
        "I think the same problem got fixed with a simple
        one-liner in my 2.4.17 or something: make the "pages_low"
        requirement add up over all zones you go through."

        Not included.

aa-093-vm_tunables.patch
        Adds /proc tunables

aa-096-swap_out.patch
        Changes to the swap_out logic.  With this patch the VM
        becomes *totally* unusable.  It needs the changes in aa-110 as
        well.

aa-100-local_pages.patch
        This was some code which added a memclass check to the
        local_pages logic.  After examination I decided that there was
        tons more code in there than we actually needed, so I stripped
        this down to just a single process-local page.  Which is
        basically all that the code ever did.

aa-110-zone_accounting.patch
        Adds all the instrumentation which aa-096 needs.  'fraid I got those patches
        backwards.

        Andrea had implemented this as lots of macros in
        swap.h.  Linus' said "but should be cleaned up to use real
        functions instead of those macros from hell.  So I did that.

aa-120-try_to_free_pages_nozone.patch
        Support function needed by buffer.c

aa-140-misc_junk.patch
        Random little stuff

aa-150-read_write_tweaks.patch
        Little changes to pagefault and write(2) code.

aa-160-lru_release_check.patch
        Hugh's famous BUG() check in free_pages.

aa-170-drain_cpu_caches.patch
        microoptimisation

aa-180-activate_page_cleanup.patch
        Code cleanup

aa-190-block_flushpage_check.patch
        BUG check

aa-200-active_page_swapout.patch
        Remove dead code (I think)

aa-210-tlb_flush_speedup.patch
        microoptimisation

aa-230-free_zone_bhs.patch
        Prevent ZONE_NORMAL from getting clogged with
        buffer_heads.  Everyone agrees that this is a pretty ugly hack.
         I'm not proposing it for inclusion at this time, but the diff
        is there, and it is stable.

aa-240-page_table_hash.patch
        This is the patch which changes Bill Irwin's hashing
        scheme for per-page waitqueues.  I'm not proposing it for
        merging at this time - I think that more discussion and
        evaluation is needed to justify such action.  But the patch is
        there, and is stable.


For a merging plan I'd propose that the patches be considered in three
groups.  Maybe split across three kernel releases.

writeback changes:
	aa-010-show_stack.patch
	aa-020-sync_buffers.patch
	aa-030-writeout_scheduling.patch
	aa-040-touch_buffer.patch

VM changes:
	aa-093-vm_tunables.patch
	aa-096-swap_out.patch
	aa-100-local_pages.patch
	aa-110-zone_accounting.patch
	aa-120-try_to_free_pages_nozone.patch

The rest:
	aa-140-misc_junk.patch
	aa-150-read_write_tweaks.patch
	aa-160-lru_release_check.patch
	aa-170-drain_cpu_caches.patch
	aa-180-activate_page_cleanup.patch
	aa-190-block_flushpage_check.patch
	aa-200-active_page_swapout.patch

There are still a few areas which need more work, but they're not
critical.  They're highlighted in the commentary against the individual
patches.

-

^ permalink raw reply	[flat|nested] 14+ messages in thread
* Re: -aa VM splitup
@ 2002-04-03  0:37 Andreas Möller
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Möller @ 2002-04-03  0:37 UTC (permalink / raw)
  To: linux-kernel

Hello,

    I have patched a stock 2.4.19-pre5 kernel with Andrew Morton's -aa 
VM splitup [1], Ingo Molnar's O(1) scheduler [2], Andrew Morton's read 
latency [3] and IDE lockup patches [4] and the mini low latency patch 
[5] plus fixes for it [6] (in this order). When running ps or top under 
this kernel, I get following error messages:

{vmalloc_to_page} {GPLONLY_vmalloc_to_page}
Warning: /boot/System.map does not match kernel data.

I made sure that I didn't forget to copy the new System.map. Perhaps 
some symbol needs to be exported?

        Andreas

--
[1] http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre5/aa1/
[2] 
http://people.redhat.com/~mingo/O(1)-scheduler/sched-O1-2.4.18-pre8-K3.patch
[3] 
http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre5/read-latency2.patch
[4] 
http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre5/ide-lockup.patch
[5] 
http://giga.cps.unizar.es/~magallon/linux/kernel/2.4.19-pre5-jam2/23-lowlatency-mini.gz
[6] 
http://giga.cps.unizar.es/~magallon/linux/kernel/2.4.19-pre5-jam2/24-lowlatency-fixes-5.gz


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

end of thread, other threads:[~2002-04-03  5:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-20  3:53 -aa VM splitup Andrew Morton
2002-03-31 12:26 ` Mike Galbraith
2002-04-01  1:02   ` Andrea Arcangeli
2002-04-01  1:52     ` Andrew Morton
2002-04-01  2:29       ` Andrea Arcangeli
2002-04-01 12:07     ` Mike Galbraith
2002-04-01 18:02       ` Andrea Arcangeli
2002-04-01 19:02         ` Mike Galbraith
2002-04-01 23:25           ` Marcelo Tosatti
2002-04-02  4:06             ` Mike Galbraith
2002-04-02  7:28         ` Mike Galbraith
2002-04-02 19:25           ` Andrea Arcangeli
2002-04-03  5:28             ` Mike Galbraith
  -- strict thread matches above, loose matches on Subject: below --
2002-04-03  0:37 Andreas Möller

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