All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	David Ahern <dsahern@gmail.com>, Andi Kleen <ak@linux.intel.com>,
	Milind Chabbi <chabbi.milind@gmail.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Hari Bathini <hbathini@linux.vnet.ibm.com>,
	Jin Yao <yao.jin@linux.intel.com>,
	Kan Liang <kan.liang@intel.com>,
	Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>,
	Oleg Nesterov <onestero@redhat.com>,
	Will Deacon <will.deacon@arm.com>
Subject: Re: [PATCHv2 0/8] hw_breakpoint: Breakpoint modification fixes and new modify ioctl
Date: Mon, 12 Mar 2018 12:20:41 +0100	[thread overview]
Message-ID: <20180312112041.p6pksk7yj5nhbtju@gmail.com> (raw)
In-Reply-To: <20171129083853.28022-1-jolsa@kernel.org>


* Jiri Olsa <jolsa@kernel.org> wrote:

> hi,
> Milind Chabbi introduced new ioctl interface to change
> live breakpoint [1]. It allows to change its bp_addr,
> bp_len and bp_type throught new ioctl for perf breakpoint
> event.
> 
> We already have a kernel interface for this via 
> modify_user_hw_breakpoint function. This function however
> does not update the breakpoint slot counts.
> 
> So when the same functionality was exposed to user space
> (Milind's change), with simple test program I could put wrong
> slots count on arm server [2] and ended up with no breakpoints
> available on the system. Note it's not an issue on x86, because
> it shares slot single counter for both data and inst types
> (CONFIG_HAVE_MIXED_BREAKPOINTS_REGS).
> 
> This patchset contains my fixes for keeping breakpoint slots
> count updated. On top of it there's Milind's change for new
> _IOC_MODIFY_ATTRIBUTES ioctl interface to change a breakpoint.
> 
> As I mentioned above there're kernel users of
> modify_user_hw_breakpoint function, all ptrace related
> AFAICS, which could got broken.. so cc-ing Oleg ;-)
> 
> I ran gdb and strace tests suites and got same amount of
> skip/fail tests as when I run them on unpatched machine,
> so I assume nothing new got broken.
> 
> It's also available in here:
>   https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
>   perf/bp
> 
> v2 changes:
>   - added check for the rest of the perf_event_attr fields
>     to be the same as for kernel event
>
> Jiri Olsa (7):
>       hw_breakpoint: Pass bp_type directly as find_slot_idx argument
>       hw_breakpoint: Pass bp_type argument to __reserve_bp_slot|__release_bp_slot
>       hw_breakpoint: Add modify_bp_slot function
>       hw_breakpoint: Factor out __modify_user_hw_breakpoint function
>       hw_breakpoint: Add perf_event_attr fields check in __modify_user_hw_breakpoint
>       perf/core: Move perf_event_attr::sample_max_stack into perf_copy_attr
>       perf tests: Add breakpoint accounting/modify test
> 
> Milind Chabbi (1):
>       perf/core: fast breakpoint modification via _IOC_MODIFY_ATTRIBUTES.
> 
>  include/linux/hw_breakpoint.h         |   7 +++++
>  include/uapi/linux/perf_event.h       |   2 ++
>  kernel/events/core.c                  |  53 +++++++++++++++++++++++++++++--
>  kernel/events/hw_breakpoint.c         | 115 ++++++++++++++++++++++++++++++++++++++++++++++++-------------------
>  tools/include/uapi/linux/perf_event.h |   2 ++
>  tools/perf/tests/Build                |   1 +
>  tools/perf/tests/bp_account.c         | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  tools/perf/tests/builtin-test.c       |   4 +++
>  tools/perf/tests/tests.h              |   1 +
>  9 files changed, 344 insertions(+), 36 deletions(-)
>  create mode 100644 tools/perf/tests/bp_account.c

Sorry about the late response - I suppose we could try this feature, but the 
tooling patches don't apply anymore. Mind re-sending a merged version, on top of 
latest -tip or so?

Thanks,

	Ingo

  parent reply	other threads:[~2018-03-12 11:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-29  8:38 [PATCHv2 0/8] hw_breakpoint: Breakpoint modification fixes and new modify ioctl Jiri Olsa
2017-11-29  8:38 ` [PATCH 1/8] hw_breakpoint: Pass bp_type directly as find_slot_idx argument Jiri Olsa
2017-11-29  8:38 ` [PATCH 2/8] hw_breakpoint: Pass bp_type argument to __reserve_bp_slot|__release_bp_slot Jiri Olsa
2017-11-29  8:38 ` [PATCH 3/8] hw_breakpoint: Add modify_bp_slot function Jiri Olsa
2017-11-29  8:38 ` [PATCH 4/8] hw_breakpoint: Factor out __modify_user_hw_breakpoint function Jiri Olsa
2017-11-29  8:38 ` [PATCH 5/8] hw_breakpoint: Add perf_event_attr fields check in __modify_user_hw_breakpoint Jiri Olsa
2017-11-29  8:38 ` [PATCH 6/8] perf/core: Move perf_event_attr::sample_max_stack into perf_copy_attr Jiri Olsa
2017-11-29  8:38 ` [PATCH 7/8] perf/core: fast breakpoint modification via _IOC_MODIFY_ATTRIBUTES Jiri Olsa
2017-11-29  8:38 ` [PATCH 8/8] perf tests: Add breakpoint accounting/modify test Jiri Olsa
2018-02-05  7:15 ` [PATCHv2 0/8] hw_breakpoint: Breakpoint modification fixes and new modify ioctl Jiri Olsa
2018-03-12 11:20 ` Ingo Molnar [this message]
2018-03-12 11:24   ` Jiri Olsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180312112041.p6pksk7yj5nhbtju@gmail.com \
    --to=mingo@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=chabbi.milind@gmail.com \
    --cc=dsahern@gmail.com \
    --cc=hbathini@linux.vnet.ibm.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=namhyung@kernel.org \
    --cc=onestero@redhat.com \
    --cc=sukadev@linux.vnet.ibm.com \
    --cc=will.deacon@arm.com \
    --cc=yao.jin@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.