From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xavier Bru Date: Fri, 03 Oct 2003 16:50:37 +0000 Subject: Re: [PATCH] more discontig stuff Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linux-ia64@vger.kernel.org Jesse Barnes writes: > Here's the latest. >=20 > 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 >=20 > 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 =3D 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=7F= 000, map=E000000004b48000 count>645 free_all_bootmem_core: pgdat=E000001000050000 page=A0007fffd6c00000, idx@00= 0, map=E000001000000000 count?ae4 free_all_bootmem_core: pgdat=E000002000060000 page=A0007fffeac00000, idx@00= 0, map=E000002000000000 count?ae5 free_all_bootmem_core: pgdat=E000003000070000 page=A0007ffffec00000, idx@00= 0, map=E000003000000000 count?ab5 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 0x0 0xa0000001000e1580 0x0 0xa0000001000e1d60 __get_free_pages+0xc0 args (0xd0, 0x0, 0xa0000001000e9700, 0x50d) kernel 0x0 0xa0000001000e1ca0 0x0 0xa0000001000e9700 cache_grow+0x220 [0]kdb> md 0xe000000004A42700 0xe000000004a42700 04a40d00 e0000000 04a40000 e0000000 ..=A4....=E0..=A4.= ...=E0 0xe000000004a42710 00050d00 e0000010 00060d00 e0000020 .......=E0.... ..= =E0 0xe000000004a42720 00070d00 e0000030 00000000 00000000 ....0..=E0........ 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 ..........=A4....= =E0 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 ........=D4=E9....= .. 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 0x0 0xa0000001000e1580 0x0 0xa0000001000e1d60 __get_free_pages+0xc0 args (0x21, 0x0, 0xa000000100305c40, 0x309) kernel 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 ................ --=20 Sinc=E8res salutations. _____________________________________________________________________ =20 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 _____________________________________________________________________