Re: [PATCH 0/7] [RFC] Sizing zones and holes in an architecture independent manner V2



On (13/04/06 10:19), Luck, Tony didst pronounce:
On Thu, Apr 13, 2006 at 10:52:08AM +0100, Mel Gorman wrote:
I didn't look at the test program output carefully enough! There was a
double counting of some holes because of a missing "if" - obvious in the
morning. Fix is this (applies on top of the debugging patch)

Back to not booting with tiger_defconfig on Intel Tiger box :-(

There are no lines like:

On node 0 totalpages: 260725
DMA zone: 129700 pages, LIFO batch:7
Normal zone: 131025 pages, LIFO batch:7

in the log ... which might explain the OOM later.

Whole console log appended (The "Kill process 2" messages repeat
forever).

-Tony


<SNIP>
Dumping sorted node map
entry 0: 0 1024 -> 130688
entry 1: 0 130984 -> 131020
entry 2: 0 393216 -> 524164
entry 3: 0 524192 -> 524269
Hole found index 1: 130688 -> 130984
Hole found index 2: 131020 -> 262144
Hole found index 2: 131020 -> 393216

Double counted a hole here, then went downhill. Does the following fix
it?


diff -rup -X /usr/src/patchset-0.5/bin//dontdiff linux-2.6.17-rc1-zonesizing-v6/mm/mem_init.c linux-2.6.17-rc1-107-debug/mm/mem_init.c
--- linux-2.6.17-rc1-zonesizing-v6/mm/mem_init.c 2006-04-13 10:30:50.000000000 +0100
+++ linux-2.6.17-rc1-107-debug/mm/mem_init.c 2006-04-13 18:00:39.000000000 +0100
@@ -753,17 +753,21 @@ unsigned long __init zone_absent_pages_i
start_pfn = early_node_map[i].start_pfn;
if (start_pfn > arch_zone_highest_possible_pfn[zone_type])
start_pfn = arch_zone_highest_possible_pfn[zone_type];
- if (prev_end_pfn > start_pfn) {
- printk("prev_end > start_pfn : %lu > %lu\n",
- prev_end_pfn,
- start_pfn);
- BUG();
- }
+ if (prev_end_pfn < arch_zone_lowest_possible_pfn[zone_type])
+ prev_end_pfn = arch_zone_lowest_possible_pfn[zone_type];

/* Update the hole size cound and move on */
- hole_pages += start_pfn - prev_end_pfn;
- printk("Hole found index %d: %lu -> %lu\n",
- i, prev_end_pfn, start_pfn);
+ if (start_pfn > arch_zone_lowest_possible_pfn[zone_type]) {
+ if (prev_end_pfn > start_pfn) {
+ printk("prev_end > start_pfn : %lu > %lu\n",
+ prev_end_pfn,
+ start_pfn);
+ BUG();
+ }
+ hole_pages += start_pfn - prev_end_pfn;
+ printk("Hole found index %d: %lu -> %lu\n",
+ i, prev_end_pfn, start_pfn);
+ }
prev_end_pfn = early_node_map[i].end_pfn;
}



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: How can this be?
    ... Apple found some bugs and holes and fixed them. ... looks like the patch to fix the patch to fix the patch needs a patch ...
    (comp.sys.mac.advocacy)
  • Re: WTB: PinBot Playfield
    ... No worries shouldn't be too hard to fix either way! ... Playfield underside is painted silver, ... Three misaligned holes for the short "left wall" of the shooter lane. ...
    (rec.games.pinball)
  • Re: My son trashed our house on Thanksgiving
    ... I'd like to help out with the house repairs at least. ... There are holes in the ... But I still got to fix the damages. ... The cabinets will need new hinges but otherwise should be fairly easy. ...
    (alt.home.repair)
  • Re: Oil change - under truck inspection - Warmen Solution versus DIY
    ... using a special locating jig and a "stopped" auger bit..... ... of someone drilling holes willy-nilly.... ... This fix has had engineers involved.... ... dents in the oil pan for things to be right. ...
    (rec.autos.makers.ford.explorer)
  • Re: How can this be?
    ... Let the spin begin. ... Apple found some bugs and holes and fixed them. ... A computer system that gets patched to fix problems as ... that the manufacturer is taking responsibility for their mistakes and ...
    (comp.sys.mac.advocacy)