Re: [PATCH] more discontig stuff

From: Xavier Bru <Xavier.Bru_at_bull.net>
Date: 2003-10-04 02:50:37
Jesse Barnes writes:
 > Here's the latest.
 > 
 >   o removed changes to kernel/ksyms.c, mm/memory.c and
 >     include/linux/mm.h
 >   o created discontig specific versions of pfn_valid, page_to_pfn, and
 >     pfn_to_page (still almost identical to those in include/asm/page.h
 >     though)
 >   o added #ifdef CONFIG_DISCONTIGMEM include/asm/mmzone.h header file
 >   o other misc. fixes
 > 
 > Generic kernels work on sn2, and probably work on other NUMA platforms,
 > but fail on zx1 at the first alloc_pages() call.  Kernels configured
 > specifically for zx1 still work though.

... not too much on our DIG64 platform ;-(
But the previous one dated sept 23 looked OK :-)
The manifestation of the problem is that all pages allocation with GFP_DMA
fail:
	swapper: page allocation failure. order:0, mode:0x21

Comparing with the working (sept 23) version:
. The zone structs on first __alloc_pages all have free_pages = 0
except for last zone that is on node 3.
.  free_all_bootmem_core seems OK.
Any idea ?
Thaks in advance for your help.
Xavier

Traces --------------------------------------------------------------
Placing software IO TLB between 0xe000000004b58000 - 0xe000000004d58000
free_all_bootmem_core: pgdat=e000000004b40000 page=a0007fffc2c50000, idx=7f000, map=e000000004b48000
count=3e645
free_all_bootmem_core: pgdat=e000001000050000 page=a0007fffd6c00000, idx=40000, map=e000001000000000
count=3fae4
free_all_bootmem_core: pgdat=e000002000060000 page=a0007fffeac00000, idx=40000, map=e000002000000000
count=3fae5
free_all_bootmem_core: pgdat=e000003000070000 page=a0007ffffec00000, idx=40000, map=e000003000000000
count=3fab5
Memory: 16606656k/16695072k available (6727k code, 96848k reserved,
3185k data, 448k init)

upon first __alloc_pages (OK):
------------------------
0xa0000001000e1580 __alloc_pages
        args (0xd0, 0x0, 0xe000000004a42700)
        kernel <NULL> 0x0 0xa0000001000e1580 0x0
0xa0000001000e1d60 __get_free_pages+0xc0
        args (0xd0, 0x0, 0xa0000001000e9700, 0x50d)
        kernel <NULL> 0x0 0xa0000001000e1ca0 0x0
0xa0000001000e9700 cache_grow+0x220

[0]kdb> md 0xe000000004A42700
0xe000000004a42700 04a40d00 e0000000 04a40000 e0000000   ............
0xe000000004a42710 00050d00 e0000010 00060d00 e0000020   ........... ..
0xe000000004a42720 00070d00 e0000030 00000000 00000000   ....0..........
0xe000000004a42730 00000000 00000000 00000000 00000000   ................
0xe000000004a42740 00000000 00000000 00000000 00000000   ................
0xe000000004a42750 00000000 00000000 00000000 00000000   ................
0xe000000004a42760 00000000 00000000 00000000 00000000   ................
0xe000000004a42770 00000000 00000000 00000000 00000000   ................
[0]kdb>
0xe000000004a42780 00000000 00000000 00000000 00000000   ................
0xe000000004a42790 00000000 00000000 00000000 00000000   ................
0xe000000004a427a0 00000000 00000000 00000000 00000000   ................
0xe000000004a427b0 00000000 00000000 00000000 00000000   ................
0xe000000004a427c0 00000000 00000000 04a40000 e0000000   ..............
0xe000000004a427d0 00000000 00000000 00000000 00000000   ................
0xe000000004a427e0 00000000 00000000 00000000 00000000   ................
0xe000000004a427f0 00000000 00000000 00000000 00000000   ................
[0]kdb> md E000000004A40D00
0xe000000004a40d00 00000000 00000000 00000000 00000000
                                     XXXXXXXXXXXX
0xe000000004a40d10 00000008 00000000 00000010 00000000   ................
0xe000000004a40d20 00000018 00000000 00000000 00000000   ................
0xe000000004a40d30 00000000 00000000 00000000 00000000   ................
0xe000000004a40d40 00000000 00000000 00000000 00000000   ................
0xe000000004a40d50 00000000 00000000 00000000 00000000   ................
0xe000000004a40d60 00000000 00000000 00000000 00000000   ................
0xe000000004a40d70 00000000 00000000 00000000 00000000   ................
[0]kdb> md E000000004A40000
0xe000000004a40000 00000000 00000000 00000000 00000000   ................
0xe000000004a40010 00000007 00000000 0000000e 00000000   ................
0xe000000004a40020 00000015 00000000 00000000 00000000   ................
0xe000000004a40030 00000000 00000000 00000000 00000000   ................
0xe000000004a40040 00000000 00000000 00000000 00000000   ................
0xe000000004a40050 00000000 00000000 00000000 00000000   ................
0xe000000004a40060 00000000 00000000 00000000 00000000   ................
0xe000000004a40070 00000000 00000000 00000000 00000000   ................
[0]kdb> md E000001000050D00
0xe000001000050d00 00000000 00000000 00000000 00000000   ................
0xe000001000050d10 00000010 00000000 00000020 00000000   ........ .......
0xe000001000050d20 00000030 00000000 00000000 00000000   0...............
0xe000001000050d30 00000000 00000000 00000000 00000000   ................
0xe000001000050d40 00000000 00000000 00000000 00000000   ................
0xe000001000050d50 00000000 00000000 00000000 00000000   ................
0xe000001000050d60 00000000 00000000 00000000 00000000   ................
0xe000001000050d70 00000000 00000000 00000000 00000000   ................
[0]kdb> md E000002000060D00
0xe000002000060d00 00000000 00000000 00000000 00000000   ................
0xe000002000060d10 00000010 00000000 00000020 00000000   ........ .......
0xe000002000060d20 00000030 00000000 00000000 00000000   0...............
0xe000002000060d30 00000000 00000000 00000000 00000000   ................
0xe000002000060d40 00000000 00000000 00000000 00000000   ................
0xe000002000060d50 00000000 00000000 00000000 00000000   ................
0xe000002000060d60 00000000 00000000 00000000 00000000   ................
0xe000002000060d70 00000000 00000000 00000000 00000000   ................
[0]kdb> md E000003000070D00
0xe000003000070d00 00000000 00000000 000de9d4 00000000   ..............
					XXXXXX
0xe000003000070d10 00000010 00000000 00000020 00000000   ........ .......
0xe000003000070d20 00000030 00000000 00000000 00000000   0...............
0xe000003000070d30 00000000 00000000 00000000 00000000   ................
0xe000003000070d40 00000000 00000000 00000000 00000000   ................
0xe000003000070d50 00000000 00000000 00000000 00000000   ................
0xe000003000070d60 00000000 00000000 00000000 00000000   ................
0xe000003000070d70 00000000 00000000 00000000 00000000
................

Upon DMA __alloc_pages (FAILS)
----------------------
0xa0000001000e1580 __alloc_pages
        args (0x21, 0x0, 0xe000000004a427c8)
        kernel <NULL> 0x0 0xa0000001000e1580 0x0
0xa0000001000e1d60 __get_free_pages+0xc0
        args (0x21, 0x0, 0xa000000100305c40, 0x309)
        kernel <NULL> 0x0 0xa0000001000e1ca0 0x0
0xa000000100305c40 swiotlb_alloc_coherent+0x80

0xe000000004a427c8 04a40000 e0000000 00000000 00000000

0xe000000004a40000 00000000 00000000 00000000 00000000   ................
					XXXXXXXX free_pages
0xe000000004a40010 00000007 00000000 0000000e 00000000   ................
0xe000000004a40020 00000015 00000000 00000000 00000000   ................
0xe000000004a40030 00000000 00000000 00000000 00000000   ................

-- 

 Sincres salutations.
_____________________________________________________________________
 
Xavier BRU                 BULL ISD/R&D/INTEL office:     FREC B1-422
tel : +33 (0)4 76 29 77 45                    http://www-frec.bull.fr
fax : +33 (0)4 76 29 77 70                 mailto:Xavier.Bru@bull.net
addr: BULL, 1 rue de Provence, BP 208, 38432 Echirolles Cedex, FRANCE
_____________________________________________________________________
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Oct 3 12:53:12 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:19 EST