[PATCH #4/9] 8xx-2.6 | MM tweaks

Pantelis Antoniou panto at intracom.gr
Fri May 28 16:48:06 EST 2004


Tom Rini wrote:

>On Wed, May 26, 2004 at 03:05:45PM +0300, Pantelis Antoniou wrote:
>
>
>>Hi
>>
>>The following patch consists of minor tweaks in order to get
>>the mm to work.
>>
>
>I was wondering.  The fault.c change boils down to:
>===== arch/ppc/mm/fault.c 1.26 vs edited =====
>--- 1.26/arch/ppc/mm/fault.c	2004-05-25 04:50:34 -07:00
>+++ edited/arch/ppc/mm/fault.c	2004-05-27 09:48:17 -07:00
>@@ -350,11 +350,14 @@
> 	pgd_t *dir;
> 	pmd_t *pmd;
> 	pte_t *pte;
>+	struct mm_struct *mm;
>
> 	if (address < TASK_SIZE)
>-		return NULL;
>+		mm = current->mm;
>+	else
>+		mm = &init_mm;
>
>-	dir = pgd_offset(&init_mm, address);
>+	dir = pgd_offset(mm, address & PAGE_MASK);
> 	if (dir) {
> 		pmd = pmd_offset(dir, address & PAGE_MASK);
> 		if (pmd && pmd_present(*pmd)) {
>
>Can you explain this a bit more?  Looking back at the history in
>BitKeeper, this change came from Paul, in the changeset with the
>comments of:
>PPC update for the recent changes to the pgd/pmd/pte functions.
>This implements ptes-in-highmem for PPC, removes the quicklist
>and zero-page stuff.  PTEs in highmem on SMP turned out to need
>some significant changes to avoid deadlocks on the hash_table_lock
>(now renamed to mmu_hash_lock).  The PMDs now contain the physical
>address of the PTE page rather than the virtual address.
>Anything that takes the mmu_hash_lock now operates with the DMMU
>off to avoid MMU hash-table misses.
>
>And for this file in particular:
>Do pte_unmap after get_pteptr; use pte_offset_kernel instead of
>pte_offset in a couple of places.
>
>Which you exactly reverted.  Were the changes from Paul incorrect here?
>Or is perhaps there something more needed on the 8xx side of things?
>
>
Let me tell you, I didn't know any of this stuff :).

My algorithm for the changes was simple.

1. Assume that linuxppc_2.4 is more recent that linuxppc-2.5 on 8xx.
2. Forward port any significant changes to 2.5.
3. Test.

If this didn't work, then I would try to fix anything more
complicated.

Thankfully it wasn't neccesary.

Regards

Pantelis


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list