[SRU,Artful,PULL] rfi-flush: Switch to new linear fallback flush

Message ID c6dcffc36846e5b766689689892e3c5f666bc77f.1525774574.git.juergh@canonical.com
State New
Headers show
Series
  • [SRU,Artful,PULL] rfi-flush: Switch to new linear fallback flush
Related show

Pull-request

git://git.launchpad.net/~juergh/+git/artful-linux lp1744173

Message

Juerg Haefliger May 8, 2018, 10:17 a.m.
BugLink: https://bugs.launchpad.net/bugs/1744173

[Impact]
Change flush from congruence-first with dependencies to linear with
no dependencies, which increases flush performance by 8x on P8, and
3x on P9 (as measured with null syscall loop, which will have the
flush area in the L2).

The flush also becomes simpler and more adaptable to different cache
geometries.

[Test Case]
TBD.

[Regression Potential]
The risk is deemed low since the changes are confined to POWER only and the provided test kernels have been tested by IBM.

Signed-off-by: Juerg Haefliger <juergh@canonical.com>
---
The following changes since commit 4b552a65f2cd5f8a4660072330c0cba67a30f647:

  UBUNTU: Ubuntu-4.13.0-40.45 (2018-04-25 02:44:49 +0000)

are available in the Git repository at:

  git://git.launchpad.net/~juergh/+git/artful-linux lp1744173

for you to fetch changes up to c6dcffc36846e5b766689689892e3c5f666bc77f:

  UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush (2018-05-08 12:12:05 +0200)

----------------------------------------------------------------
Michael Ellerman (7):
      UBUNTU: SAUCE: rfi-flush: Factor out init_fallback_flush()
      UBUNTU: SAUCE: rfi-flush: Make setup_rfi_flush() not __init
      UBUNTU: SAUCE: rfi-flush: Move the logic to avoid a redo into the sysfs code
      UBUNTU: SAUCE: rfi-flush: Make it possible to call setup_rfi_flush() again
      UBUNTU: SAUCE: rfi-flush: Call setup_rfi_flush() after LPM migration
      UBUNTU: SAUCE: rfi-flush: Move rfi_flush_fallback_area to end of paca
      UBUNTU: SAUCE: rfi-flush: Mark DEBUG_RFI as BROKEN

Nicholas Piggin (1):
      UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush

 arch/powerpc/Kconfig.debug                |  2 +-
 arch/powerpc/include/asm/paca.h           |  6 +--
 arch/powerpc/include/asm/setup.h          |  2 +-
 arch/powerpc/kernel/asm-offsets.c         |  3 +-
 arch/powerpc/kernel/exceptions-64s.S      | 76 +++++++++++++++----------------
 arch/powerpc/kernel/setup_64.c            | 73 +++++++++++++++--------------
 arch/powerpc/kernel/sysfs.c               |  9 +++-
 arch/powerpc/platforms/pseries/mobility.c |  3 ++
 arch/powerpc/platforms/pseries/pseries.h  |  2 +
 arch/powerpc/platforms/pseries/setup.c    |  4 +-
 10 files changed, 95 insertions(+), 85 deletions(-)

Comments

Kleber Souza May 16, 2018, 10:29 a.m. | #1
On 05/08/18 12:17, Juerg Haefliger wrote:
> BugLink: https://bugs.launchpad.net/bugs/1744173
> 
> [Impact]
> Change flush from congruence-first with dependencies to linear with
> no dependencies, which increases flush performance by 8x on P8, and
> 3x on P9 (as measured with null syscall loop, which will have the
> flush area in the L2).
> 
> The flush also becomes simpler and more adaptable to different cache
> geometries.
> 
> [Test Case]
> TBD.
> 
> [Regression Potential]
> The risk is deemed low since the changes are confined to POWER only and the provided test kernels have been tested by IBM.
> 
> Signed-off-by: Juerg Haefliger <juergh@canonical.com>
> ---
> The following changes since commit 4b552a65f2cd5f8a4660072330c0cba67a30f647:
> 
>   UBUNTU: Ubuntu-4.13.0-40.45 (2018-04-25 02:44:49 +0000)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~juergh/+git/artful-linux lp1744173
> 
> for you to fetch changes up to c6dcffc36846e5b766689689892e3c5f666bc77f:
> 
>   UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush (2018-05-08 12:12:05 +0200)

Limited to specific arch, tested by the vendor.

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

> 
> ----------------------------------------------------------------
> Michael Ellerman (7):
>       UBUNTU: SAUCE: rfi-flush: Factor out init_fallback_flush()
>       UBUNTU: SAUCE: rfi-flush: Make setup_rfi_flush() not __init
>       UBUNTU: SAUCE: rfi-flush: Move the logic to avoid a redo into the sysfs code
>       UBUNTU: SAUCE: rfi-flush: Make it possible to call setup_rfi_flush() again
>       UBUNTU: SAUCE: rfi-flush: Call setup_rfi_flush() after LPM migration
>       UBUNTU: SAUCE: rfi-flush: Move rfi_flush_fallback_area to end of paca
>       UBUNTU: SAUCE: rfi-flush: Mark DEBUG_RFI as BROKEN
> 
> Nicholas Piggin (1):
>       UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush
> 
>  arch/powerpc/Kconfig.debug                |  2 +-
>  arch/powerpc/include/asm/paca.h           |  6 +--
>  arch/powerpc/include/asm/setup.h          |  2 +-
>  arch/powerpc/kernel/asm-offsets.c         |  3 +-
>  arch/powerpc/kernel/exceptions-64s.S      | 76 +++++++++++++++----------------
>  arch/powerpc/kernel/setup_64.c            | 73 +++++++++++++++--------------
>  arch/powerpc/kernel/sysfs.c               |  9 +++-
>  arch/powerpc/platforms/pseries/mobility.c |  3 ++
>  arch/powerpc/platforms/pseries/pseries.h  |  2 +
>  arch/powerpc/platforms/pseries/setup.c    |  4 +-
>  10 files changed, 95 insertions(+), 85 deletions(-)
>
Stefan Bader May 23, 2018, 1:38 p.m. | #2
On 08.05.2018 12:17, Juerg Haefliger wrote:
> BugLink: https://bugs.launchpad.net/bugs/1744173
> 
> [Impact]
> Change flush from congruence-first with dependencies to linear with
> no dependencies, which increases flush performance by 8x on P8, and
> 3x on P9 (as measured with null syscall loop, which will have the
> flush area in the L2).

Does the explanation also exist in English (simplified)?

> 
> The flush also becomes simpler and more adaptable to different cache
> geometries.
> 
> [Test Case]
> TBD.
> 
> [Regression Potential]
> The risk is deemed low since the changes are confined to POWER only and the provided test kernels have been tested by IBM.
> 
> Signed-off-by: Juerg Haefliger <juergh@canonical.com>
> ---
> The following changes since commit 4b552a65f2cd5f8a4660072330c0cba67a30f647:
> 
>   UBUNTU: Ubuntu-4.13.0-40.45 (2018-04-25 02:44:49 +0000)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~juergh/+git/artful-linux lp1744173
> 
> for you to fetch changes up to c6dcffc36846e5b766689689892e3c5f666bc77f:
> 
>   UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush (2018-05-08 12:12:05 +0200)
> 
> ----------------------------------------------------------------
> Michael Ellerman (7):
>       UBUNTU: SAUCE: rfi-flush: Factor out init_fallback_flush()
>       UBUNTU: SAUCE: rfi-flush: Make setup_rfi_flush() not __init
>       UBUNTU: SAUCE: rfi-flush: Move the logic to avoid a redo into the sysfs code
>       UBUNTU: SAUCE: rfi-flush: Make it possible to call setup_rfi_flush() again
>       UBUNTU: SAUCE: rfi-flush: Call setup_rfi_flush() after LPM migration
>       UBUNTU: SAUCE: rfi-flush: Move rfi_flush_fallback_area to end of paca
>       UBUNTU: SAUCE: rfi-flush: Mark DEBUG_RFI as BROKEN
> 
> Nicholas Piggin (1):
>       UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush
> 
>  arch/powerpc/Kconfig.debug                |  2 +-
>  arch/powerpc/include/asm/paca.h           |  6 +--
>  arch/powerpc/include/asm/setup.h          |  2 +-
>  arch/powerpc/kernel/asm-offsets.c         |  3 +-
>  arch/powerpc/kernel/exceptions-64s.S      | 76 +++++++++++++++----------------
>  arch/powerpc/kernel/setup_64.c            | 73 +++++++++++++++--------------
>  arch/powerpc/kernel/sysfs.c               |  9 +++-
>  arch/powerpc/platforms/pseries/mobility.c |  3 ++
>  arch/powerpc/platforms/pseries/pseries.h  |  2 +
>  arch/powerpc/platforms/pseries/setup.c    |  4 +-
>  10 files changed, 95 insertions(+), 85 deletions(-)
>
Juerg Haefliger May 25, 2018, 6:03 a.m. | #3
On 05/23/2018 03:38 PM, Stefan Bader wrote:
> On 08.05.2018 12:17, Juerg Haefliger wrote:
>> BugLink: https://bugs.launchpad.net/bugs/1744173
>>
>> [Impact]
>> Change flush from congruence-first with dependencies to linear with
>> no dependencies, which increases flush performance by 8x on P8, and
>> 3x on P9 (as measured with null syscall loop, which will have the
>> flush area in the L2).
> 
> Does the explanation also exist in English (simplified)?

This is IBM's wording. I massaged it a little to make it clearer, hopefully:

Change flush method from "congruence-first with dependencies" to "linear
with no dependencies", which increases flush performance by 8x on P8,
and 3x on P9. Measured with null syscall loop, which will have the flush
area in the L2 cache.

...Juerg

>>
>> The flush also becomes simpler and more adaptable to different cache
>> geometries.
>>
>> [Test Case]
>> TBD.
>>
>> [Regression Potential]
>> The risk is deemed low since the changes are confined to POWER only and the provided test kernels have been tested by IBM.
>>
>> Signed-off-by: Juerg Haefliger <juergh@canonical.com>
>> ---
>> The following changes since commit 4b552a65f2cd5f8a4660072330c0cba67a30f647:
>>
>>   UBUNTU: Ubuntu-4.13.0-40.45 (2018-04-25 02:44:49 +0000)
>>
>> are available in the Git repository at:
>>
>>   git://git.launchpad.net/~juergh/+git/artful-linux lp1744173
>>
>> for you to fetch changes up to c6dcffc36846e5b766689689892e3c5f666bc77f:
>>
>>   UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush (2018-05-08 12:12:05 +0200)
>>
>> ----------------------------------------------------------------
>> Michael Ellerman (7):
>>       UBUNTU: SAUCE: rfi-flush: Factor out init_fallback_flush()
>>       UBUNTU: SAUCE: rfi-flush: Make setup_rfi_flush() not __init
>>       UBUNTU: SAUCE: rfi-flush: Move the logic to avoid a redo into the sysfs code
>>       UBUNTU: SAUCE: rfi-flush: Make it possible to call setup_rfi_flush() again
>>       UBUNTU: SAUCE: rfi-flush: Call setup_rfi_flush() after LPM migration
>>       UBUNTU: SAUCE: rfi-flush: Move rfi_flush_fallback_area to end of paca
>>       UBUNTU: SAUCE: rfi-flush: Mark DEBUG_RFI as BROKEN
>>
>> Nicholas Piggin (1):
>>       UBUNTU: SAUCE: rfi-flush: Switch to new linear fallback flush
>>
>>  arch/powerpc/Kconfig.debug                |  2 +-
>>  arch/powerpc/include/asm/paca.h           |  6 +--
>>  arch/powerpc/include/asm/setup.h          |  2 +-
>>  arch/powerpc/kernel/asm-offsets.c         |  3 +-
>>  arch/powerpc/kernel/exceptions-64s.S      | 76 +++++++++++++++----------------
>>  arch/powerpc/kernel/setup_64.c            | 73 +++++++++++++++--------------
>>  arch/powerpc/kernel/sysfs.c               |  9 +++-
>>  arch/powerpc/platforms/pseries/mobility.c |  3 ++
>>  arch/powerpc/platforms/pseries/pseries.h  |  2 +
>>  arch/powerpc/platforms/pseries/setup.c    |  4 +-
>>  10 files changed, 95 insertions(+), 85 deletions(-)
>>
> 
>