Bug 6490
Summary: | Overflow on 32bit archs in page_alloc.c, setup_per_zone_pages_min | ||
---|---|---|---|
Product: | Memory Management | Reporter: | ake.sandgren |
Component: | Page Allocator | Assignee: | Paolo 'Blaisorblade' Giarrusso (blaisorblade) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | mbligh |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.15 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
ake.sandgren
2006-05-04 05:39:39 UTC
I think it's actually worse than this. Surely zone->present_pages could be 2^24 on a 64GB system (OK, 63 highmem, but who's counting), which means that min_free_kbytes is limited to about 1024K to make it still work? I'd be tempted to just do tmp = pages_min * (zone->present_pages / lowmem_pages), which will lose us a little granularity, but do we really care? Worst case we could do something like: tmp = (pages_min * ((zone->present_pages << 4) / lowmem_pages)) >> 4 What's the worst case for min_free_kbytes? This should have been fixed by commit ac924c6034d9095f95ee889f7e31bbb9145da0c2 in kernel 2.6.17, this bug should then be closed. |