2006-08-16 12:06:26

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch] s390: kernel page table allocation.

From: Heiko Carstens <[email protected]>

[S390] kernel page table allocation.

Don't waste DMA capable pages for identity mapping page tables.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---

arch/s390/mm/init.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff -urpN linux-2.6/arch/s390/mm/init.c linux-2.6-patched/arch/s390/mm/init.c
--- linux-2.6/arch/s390/mm/init.c 2006-08-16 13:35:54.000000000 +0200
+++ linux-2.6-patched/arch/s390/mm/init.c 2006-08-16 13:36:34.000000000 +0200
@@ -129,7 +129,7 @@ void __init paging_init(void)
/*
* pg_table is physical at this point
*/
- pg_table = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
+ pg_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);

pg_dir->pgd0 = (_PAGE_TABLE | __pa(pg_table));
pg_dir->pgd1 = (_PAGE_TABLE | (__pa(pg_table)+1024));
@@ -219,7 +219,7 @@ void __init paging_init(void)
continue;
}

- pm_dir = (pmd_t *) alloc_bootmem_low_pages(PAGE_SIZE*4);
+ pm_dir = (pmd_t *) alloc_bootmem_pages(PAGE_SIZE * 4);
pgd_populate(&init_mm, pg_dir, pm_dir);

for (j = 0 ; j < PTRS_PER_PMD ; j++,pm_dir++) {
@@ -228,7 +228,7 @@ void __init paging_init(void)
continue;
}

- pt_dir = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
+ pt_dir = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);
pmd_populate_kernel(&init_mm, pm_dir, pt_dir);

for (k = 0 ; k < PTRS_PER_PTE ; k++,pt_dir++) {


2006-08-16 13:11:05

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [patch] s390: kernel page table allocation.

> - pg_table = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
> + pg_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);

Again, no need to cast the alloc_bootmem_pages return value.

2006-08-17 09:23:18

by Martin Schwidefsky

[permalink] [raw]
Subject: Re: [patch] s390: kernel page table allocation.

On Wed, 2006-08-16 at 14:10 +0100, Christoph Hellwig wrote:
> > - pg_table = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
> > + pg_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);
>
> Again, no need to cast the alloc_bootmem_pages return value.

A cleanup of the s390 code in regard to unnecessary casts would make
sense I guess..

--
blue skies,
Martin.

Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH

"Reality continues to ruin my life." - Calvin.