Re: [GIT PULL] perf changes for v3.8

From: Ingo Molnar
Date: Thu Dec 13 2012 - 12:30:55 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Thu, Dec 13, 2012 at 8:59 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >
> > * Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> >>
> >> It's not a regression since THAT CODE NEVER WORKED, for
> >> chissake! The case of people actually profiling into virtual
> >> machines crashes the running VMs, as you say. There's no way
> >> in hell we can call it a regression to say "you now have to
> >> use a flag if you profile a load with virtualization", since
> >> there wasn't any working case to begin with.
> >
> > Correct.
> >
> > ::include_guest looks like the more logical flag direction to
> > use in any case.
>
> See the email I just sent. The *non*-precise case presumably used to
> work (and included the virtualized environment). No?
>
> So the default shouldn't necessarily be "include guest". The default
> should presumably be "the user didn't say", and then the kernel does
> whatever works best.
>
> If the user actually explicitly says one or the other, we should try
> to honor that (and then EOPNOTSUPP may be a "sorry, I really cannot do
> that particular combination that you explicitly asked for").
>
> That should make everybody happy. Doing a non-PEBS virtualized perf
> run should still work with the old binary.
>
> So there should be two bits: "include guest" (V in the event specifier
> unless you already used that for something else) and "host only" (H),
> and they should both default to off. Then the kernel can see the three
> actual cases.
>
> (Or four cases, if you really want to: you may or may not want to make
> the "both V and H set means both, and _only_ V set means 'no host at
> all, _only_ virtual environment'. So then ":ppV" would mean
> "cycle-accurate for virtual box _only_", while ":ppVH" would mean
> "cycle-accurate for both the host and the virtual box". Of course,
> considering the PEBS interface, right now neither of those can
> actually work, but plain ":V" and ":HV" could work).
>
> The important thing, I think, is that if the user doesn't know
> or care about the VM case (because he's not running any!) and
> doesn't specify, then the kernel should not say EOPNOTSUPP,
> and should do whatever works for that cpu.

Agreed.

David, wanna send a patch for this?

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/