query related to create_slbe

Olof Johansson olof at austin.ibm.com
Fri Apr 15 23:05:49 EST 2005

On Fri, Apr 15, 2005 at 06:12:29PM +0530, R Sharada wrote:

> => we seem to be creatig slb entries for kernelbase and vmallocbase (2 entries)
> however in mmu.h
> #define SLB_NUM_BOLTED          3
> => seems to indicate we are bolting 3 entries. Perhaps I am missing something?  

Yes, there might be three:

* Kernelbase (slot 0)
* vmallocbase (slot 1)
* kernel stack (slot 2)   --> IF and only if it's not the same as kernelbase

We always set aside those slots since it's easier to do it that way than
to have to deal with it sometimes being two, sometimes three. 

> 2) Relating to the same code above, create_slbe seems to take the vsid as an
> argument, but never seems to be using it, as seen in the code below:
> static inline void create_slbe(unsigned long ea, unsigned long vsid,
>                                unsigned long flags, unsigned long entry)
> {
>         asm volatile("slbmte  %0,%1" :
>                      : "r" (mk_vsid_data(ea, flags)),
>                        "r" (mk_esid_data(ea, entry))
>                      : "memory" );
> }
> => again, am I missing something?

Nope, your right. It looks like that argument is a leftover from earlier
implementation.  I'll submit a patch to remove it. Thanks for spotting it!


More information about the Linuxppc64-dev mailing list