Subject: Re: [PATCH 0/6] powerpc: SMT priority (PPR) save and restore

From: Haren Myneni <[email-masked]>
Date: Thu, 01 Nov 2012 18:20:17 -0700

On 10/31/2012 05:44 PM, Michael Neuling wrote:
> Haren Myneni <[email-masked]> wrote:
> 
>> [PATCH 0/6] powerpc: SMT priority (PPR) save and restore
>>
>> On P7 systems, users can define SMT priority levels 2,3 and 4 for
>> processes so that some can run higher priority than the other ones.
>> In the current kernel, the default priority is set to 4 which prohibits
>> processes for using higher priority. Also the kernel boosts the priority to
>> 4 during exceptions without saving the user defined priorities when
>> the task enters the kernel. So we will be loosing the process PPR value
>> and can not be restored it back when the task exits the kernel.
>>
>> This patchset implements saving and restore the user defined PPR value
>> for all tasks.
>>
>> With null_syscall testcase (http://ozlabs.org/~anton/junkcode/null_syscall.c),
>> this feature takes around extra 10 CPU cycles on average for 25 samples. 
> 
> Haren,
> 
> This version doesn't do PPR save/restore over syscall, so is this above
> statement still true?  null_syscall shouldn't be effected at all, right?
> 
> Mikey
> 

Mikey,

Yes this version does not save/ restore for syscall entries. But we set
default priority 3 for each syscall exit -  set HMT_MEDIUM_LOW for
normal return, and set 3 in thread.ppr so that this value will be set
for fast return path.

So I was using null_syscall test case to find out the performance
overhead with this patch-set.

Thanks
Haren

>>
>> Haren Myneni (6):
>>   powerpc: Move branch instruction from ACCOUNT_CPU_USER_ENTRY to caller
>>   powerpc: Define CPU_FTR_HAS_PPR
>>   powerpc: Increase exceptions arrays in paca struct to save PPR
>>   powerpc: Define ppr in thread_struct
>>   powerpc: Macros for saving/restore PPR
>>   powerpc: Implement PPR save/restore
>>
>>  arch/powerpc/include/asm/cputable.h      |    6 ++-
>>  arch/powerpc/include/asm/exception-64s.h |   45 ++++++++++++++++++++++++++----
>>  arch/powerpc/include/asm/paca.h          |    6 ++--
>>  arch/powerpc/include/asm/ppc_asm.h       |   27 ++++++++++++++++-
>>  arch/powerpc/include/asm/processor.h     |    6 ++++
>>  arch/powerpc/include/asm/reg.h           |    1 +
>>  arch/powerpc/kernel/asm-offsets.c        |    1 +
>>  arch/powerpc/kernel/entry_64.S           |    6 +++-
>>  arch/powerpc/kernel/exceptions-64e.S     |    3 +-
>>  arch/powerpc/kernel/exceptions-64s.S     |   15 +++++----
>>  arch/powerpc/kernel/process.c            |    2 +
>>  11 files changed, 96 insertions(+), 22 deletions(-)
>>
>>
>>
> _______________________________________________
> Linuxppc-dev mailing list
> [email-masked]
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>