Re: [Linux-ia64] kernel update (relative to 2.4.18)

David Mosberger
2002-07-08T22:14:08Z

>>>>> On Mon, 08 Jul 2002 15:08:17 -0700, Kimio Suganuma <k-suganuma@mvj.biglobe.ne.jp> said:

>> - Fix bootmem so machine boots much faster if there are large
>> holes in the physical memory map.

Kimio> This change seemed to cause a problem on my machine. When a
Kimio> system has physical memory >4G, IO TLB is allocated above 4G
Kimio> like this;

Kimio> Placing software IO TLB between 0xe00000010222c000 -
Kimio> 0xe00000010242c000

Kimio> and then swiotlb_map_single() caused PANIC.

Kimio> IO TLB is allocated by alloc_bootmem_low_pages(), and this is
Kimio> just a macro calling __alloc_bootmem().

Kimio> #define alloc_bootmem_low_pages(x) \ __alloc_bootmem((x),
Kimio> PAGE_SIZE, 0)

Kimio> Once alloc_bootmem() is called, "last_success" is set to >
Kimio> 4G. And then alloc_bootmem_low_pages() becomes to allocates
Kimio> memory > 4G. :-( alloc_bootmem_low_page() doesn't ensure to
Kimio> allocate memory < 4G, but swiotlb expects to it allocates
Kimio> very low address memory.

Kimio> Here is a patch for mm/bootmem.c to fix the problem. Any
Kimio> comment?

Good catch. Thanks for the fix!

--david