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

STALE5040d

Revision v1 of 3 in this series.

3 messages, 2 authors, 2012-11-02 · open the first message on its own page

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

From: Haren Myneni <hidden>
Date: 2012-10-31 06:49:40

[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 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(-)

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

From: Michael Neuling <hidden>
Date: 2012-11-01 00:44:49

Haren Myneni [off-list ref] 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
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(-)

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

From: Haren Myneni <hidden>
Date: 2012-11-02 01:20:44

On 10/31/2012 05:44 PM, Michael Neuling wrote:
Haren Myneni [off-list ref] wrote:
quoted
[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

quoted
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
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help