[PATCH] powerpc: add support for PAGE_SIZEs greater than 4KB for
Ilya Yanok
yanok at emcraft.com
Sat Sep 27 09:43:52 EST 2008
Hello Benjamin,
Benjamin Herrenschmidt wrote:
>> [snip]
>>
>>> diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
>>> index fce2df9..4f802df 100644
>>> --- a/arch/powerpc/kernel/head_booke.h
>>> +++ b/arch/powerpc/kernel/head_booke.h
>>> @@ -20,7 +20,9 @@
>>> beq 1f; \
>>> mfspr r1,SPRN_SPRG3; /* if from user, start at top of */\
>>> lwz r1,THREAD_INFO-THREAD(r1); /* this thread's kernel stack */\
>>> - addi r1,r1,THREAD_SIZE; \
>>> + lis r11,THREAD_SIZE at h; \
>>> + ori r11,r11,THREAD_SIZE at l; \
>>> + add r1,r1,r11;
>>> \
>>>
>> It would be nice if we could avoid the extra instruction here when the
>> page sizes isn't big enough to require it.
>>
>
> As a matter of fact, I don't see why THREAD_SIZE should ever need that,
> there is no reason to change the kernel stack size.
>
Well, this was introduced because of that:
kernel/fork.c [179]:
max_threads = mempages / (8 * THREAD_SIZE / PAGE_SIZE);
With THREAD_SIZE=8K we will get mempages divided by zero if PAGE_SIZE is
bigger than 64K. (Well, another reason not to use >64K pages). Not sure
this is the right way to fix it.
Regards, Ilya.
More information about the Linuxppc-dev
mailing list