[lkml]   [2011]   [Dec]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: memblock and bootmem problems if start + size = 4GB
    Hello, Michal.

    On Mon, Dec 19, 2011 at 02:58:13PM +0100, Michal Simek wrote:
    > I have reached some problems with memblock and bootmem code for some configurations.
    > We can completely setup the whole system and all addresses in it.
    > The problem happens if we place main memory to the end of address space when
    > mem_start + size reach 4GB limit.
    > For example:
    > mem_start 0xF000 0000
    > mem_size 0x1000 0000 (or better lowmem size)
    > mem_end 0xFFFF FFFF
    > start + size 0x1 0000 0000 (u32 limit reached).
    > I have done some patches which completely remove start + size values from architecture specific
    > code but I have found some problem in generic code too.
    > For example in bootmem code where are three places where physaddr + size is used.
    > I would prefer to retype it to u64 because baseaddr and size don't need to be 2^n.
    > Is it correct solution? If yes, I will create proper patch.

    Yeah, that's an inherent problem in using [) ranges but I think
    chopping off the last page probably is simpler and more robust
    solution. Currently, memblock_add_region() would simply ignore if
    address range overflows but making it just ignore the last page is
    several lines of addition. Wouldn't that be effective enough while
    staying very simple?



     \ /
      Last update: 2011-12-19 17:31    [W:0.020 / U:6.536 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site