linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] breakpoint: Rework arch validation v4
@ 2018-06-26  2:58 Frederic Weisbecker
  2018-06-26  2:58 ` [PATCH 01/12] perf/breakpoint: Split attribute parse and commit Frederic Weisbecker
                   ` (12 more replies)
  0 siblings, 13 replies; 28+ messages in thread
From: Frederic Weisbecker @ 2018-06-26  2:58 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: LKML, Frederic Weisbecker, Jiri Olsa, Namhyung Kim,
	Joel Fernandes, Peter Zijlstra, Linus Torvalds, Yoshinori Sato,
	Benjamin Herrenschmidt, Catalin Marinas, Chris Zankel,
	Paul Mackerras, Thomas Gleixner, Will Deacon, Michael Ellerman,
	Rich Felker, Mark Rutland, Alexander Shishkin, Andy Lutomirski,
	Arnaldo Carvalho de Melo, Max Filippov

Ingo,

Please pull the perf/breakpoint-v4 branch that can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
	perf/breakpoint-v4

HEAD: ba25ee9c7b3ef1543c2a24a7ca6a621433803ee4

Only change since v3 is a rebase against latest tip:perf/core

---
When we modify a hardware breakpoint, the architecture code fills up
the architecture data as the validation of generic attributes progresses.
If something goes wrong in the middle, the architecture data changes
aren't rolled back and we are left with a halfway fiddled breakpoint.

This set fixes the various misdesigns that back this bad behaviour.

Thanks,
	Frederic
---

Frederic Weisbecker (12):
      perf/breakpoint: Split attribute parse and commit
      perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace()
      x86: Implement hw_breakpoint_arch_parse()
      powerpc: Implement hw_breakpoint_arch_parse()
      arm: Implement hw_breakpoint_arch_parse()
      arm64: Implement hw_breakpoint_arch_parse()
      sh: Remove "struct arch_hw_breakpoint::name" unused field
      sh: Implement hw_breakpoint_arch_parse()
      xtensa: Implement hw_breakpoint_arch_parse()
      perf/breakpoint: Remove default hw_breakpoint_arch_parse()
      perf/breakpoint: Pass new breakpoint type to modify_breakpoint_slot()
      perf/breakpoint: Clean up and consolidate modify_user_hw_breakpoint_check()


 arch/arm/include/asm/hw_breakpoint.h     |   7 +-
 arch/arm/kernel/hw_breakpoint.c          |  78 +++++++++---------
 arch/arm64/include/asm/hw_breakpoint.h   |   7 +-
 arch/arm64/kernel/hw_breakpoint.c        |  86 ++++++++++----------
 arch/powerpc/include/asm/hw_breakpoint.h |   7 +-
 arch/powerpc/kernel/hw_breakpoint.c      |  47 ++++++-----
 arch/sh/include/asm/hw_breakpoint.h      |   8 +-
 arch/sh/kernel/hw_breakpoint.c           |  53 ++++++-------
 arch/x86/include/asm/hw_breakpoint.h     |   7 +-
 arch/x86/kernel/hw_breakpoint.c          | 131 ++++++++++++++++---------------
 arch/xtensa/include/asm/hw_breakpoint.h  |   7 +-
 arch/xtensa/kernel/hw_breakpoint.c       |  40 ++++------
 kernel/events/hw_breakpoint.c            |  92 +++++++++++++---------
 13 files changed, 294 insertions(+), 276 deletions(-)

^ permalink raw reply	[flat|nested] 28+ messages in thread
* [GIT PULL] breakpoint: Rework arch validation v3
@ 2018-06-01 14:31 Frederic Weisbecker
  2018-06-01 14:31 ` [PATCH 02/12] perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace() Frederic Weisbecker
  0 siblings, 1 reply; 28+ messages in thread
From: Frederic Weisbecker @ 2018-06-01 14:31 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: LKML, Frederic Weisbecker, Jiri Olsa, Namhyung Kim,
	Joel Fernandes, Peter Zijlstra, Linus Torvalds, Yoshinori Sato,
	Benjamin Herrenschmidt, Catalin Marinas, Chris Zankel,
	Paul Mackerras, Thomas Gleixner, Will Deacon, Michael Ellerman,
	Rich Felker, Mark Rutland, Alexander Shishkin, Andy Lutomirski,
	Arnaldo Carvalho de Melo, Max Filippov

Ingo,

Please pull the perf/breakpoint-v3 branch that can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
	perf/breakpoint-v3

HEAD: 3c0681cc01b39e7fac6eb810e82380165c9b56f1

Changes since v2:

* Constify the struct perf_event_attr passed in hw_breakpoint_parse()
* Add acks
	
---
When we modify a hardware breakpoint, the architecture code fills up
the architecture data as the validation of generic attributes progresses.
If something goes wrong in the middle, the architecture data changes
aren't rolled back and we are left with a halfway fiddled breakpoint.

This set fixes the various misdesigns that back this bad behaviour.

Thanks,
	Frederic
---

Frederic Weisbecker (12):
      perf/breakpoint: Split attribute parse and commit
      perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace()
      x86: Implement hw_breakpoint_arch_parse()
      powerpc: Implement hw_breakpoint_arch_parse()
      arm: Implement hw_breakpoint_arch_parse()
      arm64: Implement hw_breakpoint_arch_parse()
      sh: Remove "struct arch_hw_breakpoint::name" unused field
      sh: Implement hw_breakpoint_arch_parse()
      xtensa: Implement hw_breakpoint_arch_parse()
      perf/breakpoint: Remove default hw_breakpoint_arch_parse()
      perf/breakpoint: Pass new breakpoint type to modify_breakpoint_slot()
      perf/breakpoint: Clean up and consolidate modify_user_hw_breakpoint_check()


 arch/arm/include/asm/hw_breakpoint.h     |   7 +-
 arch/arm/kernel/hw_breakpoint.c          |  78 +++++++++---------
 arch/arm64/include/asm/hw_breakpoint.h   |   7 +-
 arch/arm64/kernel/hw_breakpoint.c        |  86 ++++++++++----------
 arch/powerpc/include/asm/hw_breakpoint.h |   7 +-
 arch/powerpc/kernel/hw_breakpoint.c      |  47 ++++++-----
 arch/sh/include/asm/hw_breakpoint.h      |   8 +-
 arch/sh/kernel/hw_breakpoint.c           |  53 ++++++-------
 arch/x86/include/asm/hw_breakpoint.h     |   7 +-
 arch/x86/kernel/hw_breakpoint.c          | 131 ++++++++++++++++---------------
 arch/xtensa/include/asm/hw_breakpoint.h  |   7 +-
 arch/xtensa/kernel/hw_breakpoint.c       |  40 ++++------
 kernel/events/hw_breakpoint.c            |  92 +++++++++++++---------
 13 files changed, 294 insertions(+), 276 deletions(-)

^ permalink raw reply	[flat|nested] 28+ messages in thread
* [PATCH 00/12] breakpoint: Rework arch validation v2
@ 2018-05-19  2:45 Frederic Weisbecker
  2018-05-19  2:45 ` [PATCH 02/12] perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace() Frederic Weisbecker
  0 siblings, 1 reply; 28+ messages in thread
From: Frederic Weisbecker @ 2018-05-19  2:45 UTC (permalink / raw)
  To: LKML
  Cc: Frederic Weisbecker, Jiri Olsa, Namhyung Kim, Joel Fernandes,
	Peter Zijlstra, Linus Torvalds, Yoshinori Sato,
	Benjamin Herrenschmidt, Catalin Marinas, Chris Zankel,
	Paul Mackerras, Thomas Gleixner, Will Deacon, Michael Ellerman,
	Rich Felker, Ingo Molnar, Mark Rutland, Alexander Shishkin,
	Andy Lutomirski, Arnaldo Carvalho de Melo, Max Filippov


Changes since v1:

- Avoid arch code duplication between check and commit. Use a temporary
  struct arch_hw_breakpoint to fill up arch data on the fly
  (Mark Rutland)

- Start with a default weak version of hw_breakpoint_arch_parse() that
  architectures override one by one (Peter Zijlstra, Andy Lutomirski)

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
	perf/breakpoint-v2

HEAD: a350174ed8f7240b91ae46933bfe2274d3d03806

--- Summary ---

When we modify a hardware breakpoint, the architecture code fills up
the architecture data as the validation of generic attributes progresses.
If something goes wrong in the middle, the architecture data changes
aren't rolled back and we are left with a halfway fiddled breakpoint.

This set fixes the various misdesigns that back this bad behaviour.

Thanks,
	Frederic
---

Frederic Weisbecker (12):
      perf/breakpoint: Split attribute parse and commit
      perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace()
      x86: Implement hw_breakpoint_arch_parse()
      powerpc: Implement hw_breakpoint_arch_parse()
      arm: Implement hw_breakpoint_arch_parse()
      arm64: Implement hw_breakpoint_arch_parse()
      sh: Remove "struct arch_hw_breakpoint::name" unused field
      sh: Implement hw_breakpoint_arch_parse()
      xtensa: Implement hw_breakpoint_arch_parse()
      perf/breakpoint: Remove default hw_breakpoint_arch_parse()
      perf/breakpoint: Pass new breakpoint type to modify_breakpoint_slot()
      perf/breakpoint: Clean up and consolidate modify_user_hw_breakpoint_check()


 arch/arm/include/asm/hw_breakpoint.h     |   7 +-
 arch/arm/kernel/hw_breakpoint.c          |  78 +++++++++---------
 arch/arm64/include/asm/hw_breakpoint.h   |   7 +-
 arch/arm64/kernel/hw_breakpoint.c        |  86 ++++++++++----------
 arch/powerpc/include/asm/hw_breakpoint.h |   7 +-
 arch/powerpc/kernel/hw_breakpoint.c      |  47 ++++++-----
 arch/sh/include/asm/hw_breakpoint.h      |   8 +-
 arch/sh/kernel/hw_breakpoint.c           |  53 ++++++-------
 arch/x86/include/asm/hw_breakpoint.h     |   7 +-
 arch/x86/kernel/hw_breakpoint.c          | 131 ++++++++++++++++---------------
 arch/xtensa/include/asm/hw_breakpoint.h  |   7 +-
 arch/xtensa/kernel/hw_breakpoint.c       |  40 ++++------
 kernel/events/hw_breakpoint.c            |  92 +++++++++++++---------
 13 files changed, 294 insertions(+), 276 deletions(-)

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2018-06-26 10:33 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-26  2:58 [GIT PULL] breakpoint: Rework arch validation v4 Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 01/12] perf/breakpoint: Split attribute parse and commit Frederic Weisbecker
2018-06-26 10:25   ` [tip:perf/core] perf/hw_breakpoint: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 02/12] perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace() Frederic Weisbecker
2018-06-26 10:26   ` [tip:perf/core] perf/hw_breakpoint: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 03/12] x86: Implement hw_breakpoint_arch_parse() Frederic Weisbecker
2018-06-26 10:26   ` [tip:perf/core] perf/arch/x86: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 04/12] powerpc: " Frederic Weisbecker
2018-06-26 10:27   ` [tip:perf/core] perf/arch/powerpc: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 05/12] arm: " Frederic Weisbecker
2018-06-26 10:27   ` [tip:perf/core] perf/arch/arm: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 06/12] arm64: " Frederic Weisbecker
2018-06-26 10:28   ` [tip:perf/core] perf/arch/arm64: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 07/12] sh: Remove "struct arch_hw_breakpoint::name" unused field Frederic Weisbecker
2018-06-26 10:28   ` [tip:perf/core] perf/arch/sh: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 08/12] sh: Implement hw_breakpoint_arch_parse() Frederic Weisbecker
2018-06-26 10:29   ` [tip:perf/core] perf/arch/sh: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 09/12] xtensa: " Frederic Weisbecker
2018-06-26 10:30   ` [tip:perf/core] perf/arch/xtensa: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 10/12] perf/breakpoint: Remove default hw_breakpoint_arch_parse() Frederic Weisbecker
2018-06-26 10:30   ` [tip:perf/core] perf/hw_breakpoint: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 11/12] perf/breakpoint: Pass new breakpoint type to modify_breakpoint_slot() Frederic Weisbecker
2018-06-26 10:31   ` [tip:perf/core] perf/hw_breakpoint: " tip-bot for Frederic Weisbecker
2018-06-26  2:58 ` [PATCH 12/12] perf/breakpoint: Clean up and consolidate modify_user_hw_breakpoint_check() Frederic Weisbecker
2018-06-26 10:31   ` [tip:perf/core] perf/hw_breakpoint: " tip-bot for Frederic Weisbecker
2018-06-26  7:09 ` [GIT PULL] breakpoint: Rework arch validation v4 Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2018-06-01 14:31 [GIT PULL] breakpoint: Rework arch validation v3 Frederic Weisbecker
2018-06-01 14:31 ` [PATCH 02/12] perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace() Frederic Weisbecker
2018-05-19  2:45 [PATCH 00/12] breakpoint: Rework arch validation v2 Frederic Weisbecker
2018-05-19  2:45 ` [PATCH 02/12] perf/breakpoint: Pass arch breakpoint struct to arch_check_bp_in_kernelspace() Frederic Weisbecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).