Linux MIPS Architecture development
 help / color / mirror / Atom feed
* mips64 pgd_current
@ 2001-03-16 20:55 Justin Carlson
  2001-03-16 22:09 ` Justin Carlson
  0 siblings, 1 reply; 2+ messages in thread
From: Justin Carlson @ 2001-03-16 20:55 UTC (permalink / raw)
  To: linux-mips


Doing some more code trolling here; am looking at the MP 
parts of the TLB refill code in the mips64 tree, and I'm a bit
confused.

It looks to me like pgd_current[] is indexed by CP0_CONTEXT
and the resulting pointer is supposed to be the base of the
page tables for that particular process.  This makes sense.

However, I see this in mmu_context.h:

#define TLBMISS_HANDLER_SETUP_PGD(pgd) \
	pgd_current[smp_processor_id()] = (unsigned long)(pgd)
#define TLBMISS_HANDLER_SETUP() \
	set_context((unsigned long) smp_processor_id() << (23 + 3)); \
	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
extern unsigned long pgd_current[];

so pgd_current[smp_processor_id()] is hard coded to be set to
swapper_pg_dir, which, insofar as I can tell, is not a per-cpu structure.  

It looks to me like this will end up with pgd_current[] being an
array of NR_CPUS pointers all of which point to the same pgd table.  

I know I must be misunderstanding this code.  Any suggestions as to what I'm
missing?

Thanks,
  Justin

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

* Re: mips64 pgd_current
  2001-03-16 20:55 mips64 pgd_current Justin Carlson
@ 2001-03-16 22:09 ` Justin Carlson
  0 siblings, 0 replies; 2+ messages in thread
From: Justin Carlson @ 2001-03-16 22:09 UTC (permalink / raw)
  To: linux-mips


As is often the case, I answered my own question my being figuring out how to
state it; everything happens as I described, but on context switch, the
pgd_current stuff is reset appropriately.

Sorry for the noise.

-Justin

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

end of thread, other threads:[~2001-03-16 22:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-16 20:55 mips64 pgd_current Justin Carlson
2001-03-16 22:09 ` Justin Carlson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox