Re: [PATCH 1/3] perf: add context field to perf_event

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/12/2011 12:07 AM, Will Deacon wrote:
On Mon, Jul 04, 2011 at 03:36:57PM +0100, Frederic Weisbecker wrote:
>  On Mon, Jul 04, 2011 at 05:10:20PM +0300, Avi Kivity wrote:
>  >  On 07/04/2011 04:58 PM, Frederic Weisbecker wrote:
>  >  >Another thing I would like to do in the even longer term is to not use perf anymore
>  >  >for ptrace breakpoints, because that involves a heavy dependency and few people are
>  >  >happy with that. Instead we should just have a generic hook into the sched_switch()
>  >  >and handle pure ptrace breakpoints there. The central breakpoint API would still be
>  >  >there to reserve/schedule breakpoint resources between ptrace and perf.
>  >  >
>  >
>  >  'struct preempt_notifier' may be the hook you're looking for.
>
>  Yeah looks like a perfect fit as it's per task.

I had a quick look at this and I think the preempt_notifier stuff needs
slightly extending so that we can register a notifier for a task other than
current [e.g. the child of current on which we are installing breakpoints].

If the task in question is running, it looks like this will introduce a race
condition between notifier registration and rescheduling. For the purposes
of ptrace this shouldn't be a problem as the child will be stopped, but
others might also want to make use of the new functionality.

Any ideas on how this could be achieved, or am I better off just restricting
this to children that are being traced?

Maybe we need a generic "run this function in this task's context" mechanism instead. Like an IPI, but targeting tasks instead of cpus.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux