From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Kumar Gala <galak@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH v3 2/4] powerpc: Fixes for CONFIG_PTE_64BIT for SMP support
Date: Thu, 04 Sep 2008 13:12:50 +1000 [thread overview]
Message-ID: <1220497970.4879.36.camel@pasglop> (raw)
In-Reply-To: <1220465344-16753-2-git-send-email-galak@kernel.crashing.org>
On Wed, 2008-09-03 at 13:09 -0500, Kumar Gala wrote:
> There are some minor issues with support 64-bit PTEs on a 32-bit processor
> when dealing with SMP.
>
> * We need to order the stores in set_pte_at to make sure the flag word
> is set second.
> * Change pte_clear to use pte_update so only the flag word is cleared
>
> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> ---
>
> Fixed pte_clear to not break on 6xx.
Thanks :-)
> static inline unsigned long long pte_update(pte_t *p,
> unsigned long clr,
> unsigned long set)
> @@ -658,8 +656,17 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
> #if _PAGE_HASHPTE != 0
> pte_update(ptep, ~_PAGE_HASHPTE, pte_val(pte) & ~_PAGE_HASHPTE);
> #else
> +#if defined(CONFIG_PTE_64BIT) && defined(CONFIG_SMP)
Minor nit, but there's #elif :-)
> + __asm__ __volatile__("\
> + stw%U0%X0 %2,%0\n\
> + eieio\n\
> + stw%U0%X0 %L2,%1"
> + : "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
> + : "r" (pte) : "memory");
Any reason why it has to be in assembly ? Can gcc re-order stores around
eieio() if written in C ? I would hope not but heh ... it's gcc :-)
I also wonder if you should first ensure that the PTE is invalid and
if not, clear it and flush the TLB page ... Or at least add a
WARN_ON(pte_valid()) in case we get that wrong ...
> +#else
> *ptep = pte;
> #endif
> +#endif
> }
>
> /*
next prev parent reply other threads:[~2008-09-04 3:12 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-03 18:09 [PATCH v3 1/4] powerpc: Introduce local (non-broadcast) forms of tlb invalidates Kumar Gala
2008-09-03 18:09 ` [PATCH v3 2/4] powerpc: Fixes for CONFIG_PTE_64BIT for SMP support Kumar Gala
2008-09-03 18:09 ` [PATCH v3 3/4] powerpc/fsl-booke: Fixup 64-bit PTE reading " Kumar Gala
2008-09-03 18:09 ` [PATCH v3 4/4] powerpc/mm: Implement _PAGE_SPECIAL & pte_special() for 32-bit Kumar Gala
2008-09-04 3:15 ` Benjamin Herrenschmidt
2008-09-04 3:14 ` [PATCH v3 3/4] powerpc/fsl-booke: Fixup 64-bit PTE reading for SMP support Benjamin Herrenschmidt
2008-09-04 3:12 ` Benjamin Herrenschmidt [this message]
2008-09-05 19:44 ` [PATCH v3 2/4] powerpc: Fixes for CONFIG_PTE_64BIT " Kumar Gala
2008-09-05 22:38 ` Benjamin Herrenschmidt
2008-09-06 15:32 ` Kumar Gala
2008-09-04 19:17 ` [PATCH v3 1/4] powerpc: Introduce local (non-broadcast) forms of tlb invalidates Rafal Jaworowski
2008-09-04 21:30 ` Benjamin Herrenschmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1220497970.4879.36.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=galak@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.