linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* pte_offset_map for ppc assumes HIGHPTE
@ 2007-07-25 22:16 Satya
  2007-07-25 23:10 ` Benjamin Herrenschmidt
  2007-07-25 23:18 ` Andreas Schwab
  0 siblings, 2 replies; 6+ messages in thread
From: Satya @ 2007-07-25 22:16 UTC (permalink / raw)
  To: linuxppc-dev, linux-mm, linux-kernel

hello,
The implementation of pte_offset_map() for ppc assumes that PTEs are
kept in highmem (CONFIG_HIGHPTE). There is only one implmentation of
pte_offset_map() as follows (include/asm-ppc/pgtable.h):

#define pte_offset_map(dir, addr)               \
         ((pte_t *) kmap_atomic(pmd_page(*(dir)), KM_PTE0) + pte_index(addr))

Shouldn't this be made conditional according to CONFIG_HIGHPTE is
defined or not (as implemented in include/asm-i386/pgtable.h) ?

the same goes for pte_offset_map_nested and the corresponding unmap functions.

thanks,
Satya Popuri

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pte_offset_map for ppc assumes HIGHPTE
  2007-07-25 22:16 pte_offset_map for ppc assumes HIGHPTE Satya
@ 2007-07-25 23:10 ` Benjamin Herrenschmidt
  2007-07-25 23:18 ` Andreas Schwab
  1 sibling, 0 replies; 6+ messages in thread
From: Benjamin Herrenschmidt @ 2007-07-25 23:10 UTC (permalink / raw)
  To: Satya; +Cc: linuxppc-dev, linux-kernel, linux-mm

On Wed, 2007-07-25 at 17:16 -0500, Satya wrote:
> hello,
> The implementation of pte_offset_map() for ppc assumes that PTEs are
> kept in highmem (CONFIG_HIGHPTE). There is only one implmentation of
> pte_offset_map() as follows (include/asm-ppc/pgtable.h):
> 
> #define pte_offset_map(dir, addr)               \
>          ((pte_t *) kmap_atomic(pmd_page(*(dir)), KM_PTE0) + pte_index(addr))
> 
> Shouldn't this be made conditional according to CONFIG_HIGHPTE is
> defined or not (as implemented in include/asm-i386/pgtable.h) ?
> 
> the same goes for pte_offset_map_nested and the corresponding unmap functions.

Do we have CONFIG_HIGHMEM without CONFIG_HIGHPTE ? If yes, then indeed,
we should change that. Though I'm not sure I see the point of splitting
those 2 options.

Ben.
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pte_offset_map for ppc assumes HIGHPTE
  2007-07-25 22:16 pte_offset_map for ppc assumes HIGHPTE Satya
  2007-07-25 23:10 ` Benjamin Herrenschmidt
@ 2007-07-25 23:18 ` Andreas Schwab
  2007-07-25 23:22   ` Benjamin Herrenschmidt
  1 sibling, 1 reply; 6+ messages in thread
From: Andreas Schwab @ 2007-07-25 23:18 UTC (permalink / raw)
  To: Satya; +Cc: linuxppc-dev, linux-kernel, linux-mm

Satya <satyakiran@gmail.com> writes:

> hello,
> The implementation of pte_offset_map() for ppc assumes that PTEs are
> kept in highmem (CONFIG_HIGHPTE). There is only one implmentation of
> pte_offset_map() as follows (include/asm-ppc/pgtable.h):
>
> #define pte_offset_map(dir, addr)               \
>          ((pte_t *) kmap_atomic(pmd_page(*(dir)), KM_PTE0) + pte_index(addr))
>
> Shouldn't this be made conditional according to CONFIG_HIGHPTE is
> defined or not

kmap_atomic is always defined with or without CONFIG_HIGHPTE.

> (as implemented in include/asm-i386/pgtable.h) ?

I don't think that needs it either.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pte_offset_map for ppc assumes HIGHPTE
  2007-07-25 23:18 ` Andreas Schwab
@ 2007-07-25 23:22   ` Benjamin Herrenschmidt
  2007-07-25 23:30     ` Dave McCracken
  0 siblings, 1 reply; 6+ messages in thread
From: Benjamin Herrenschmidt @ 2007-07-25 23:22 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: linuxppc-dev, linux-kernel, linux-mm

On Thu, 2007-07-26 at 01:18 +0200, Andreas Schwab wrote:
> Satya <satyakiran@gmail.com> writes:
> 
> > hello,
> > The implementation of pte_offset_map() for ppc assumes that PTEs are
> > kept in highmem (CONFIG_HIGHPTE). There is only one implmentation of
> > pte_offset_map() as follows (include/asm-ppc/pgtable.h):
> >
> > #define pte_offset_map(dir, addr)               \
> >          ((pte_t *) kmap_atomic(pmd_page(*(dir)), KM_PTE0) + pte_index(addr))
> >
> > Shouldn't this be made conditional according to CONFIG_HIGHPTE is
> > defined or not
> 
> kmap_atomic is always defined with or without CONFIG_HIGHPTE.
> 
> > (as implemented in include/asm-i386/pgtable.h) ?
> 
> I don't think that needs it either.

Depends... if you have CONFIG_HIGHMEM and not CONFIG_HIGHPTE, you are wasting
time going through kmap_atomic unnecessarily no ? it will probably not do anything
because the PTE page is in lowmem but still...

Ben.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pte_offset_map for ppc assumes HIGHPTE
  2007-07-25 23:22   ` Benjamin Herrenschmidt
@ 2007-07-25 23:30     ` Dave McCracken
  2007-07-26  0:18       ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 6+ messages in thread
From: Dave McCracken @ 2007-07-25 23:30 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linux-mm, linux-kernel, linuxppc-dev

On Wednesday 25 July 2007, Benjamin Herrenschmidt wrote:
> Depends... if you have CONFIG_HIGHMEM and not CONFIG_HIGHPTE, you are
> wasting time going through kmap_atomic unnecessarily no ? it will probably
> not do anything because the PTE page is in lowmem but still...

Probably not much time.  You still need to do the page to virtual translation, 
which kmap_atomic does for you.

Dave McCracken

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pte_offset_map for ppc assumes HIGHPTE
  2007-07-25 23:30     ` Dave McCracken
@ 2007-07-26  0:18       ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 6+ messages in thread
From: Benjamin Herrenschmidt @ 2007-07-26  0:18 UTC (permalink / raw)
  To: Dave McCracken; +Cc: linux-mm, linux-kernel, linuxppc-dev

On Wed, 2007-07-25 at 18:30 -0500, Dave McCracken wrote:
> On Wednesday 25 July 2007, Benjamin Herrenschmidt wrote:
> > Depends... if you have CONFIG_HIGHMEM and not CONFIG_HIGHPTE, you are
> > wasting time going through kmap_atomic unnecessarily no ? it will probably
> > not do anything because the PTE page is in lowmem but still...
> 
> Probably not much time.  You still need to do the page to virtual translation, 
> which kmap_atomic does for you.

Fair enough.

Ben.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-07-26  0:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-25 22:16 pte_offset_map for ppc assumes HIGHPTE Satya
2007-07-25 23:10 ` Benjamin Herrenschmidt
2007-07-25 23:18 ` Andreas Schwab
2007-07-25 23:22   ` Benjamin Herrenschmidt
2007-07-25 23:30     ` Dave McCracken
2007-07-26  0:18       ` Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).