linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Ahern <dsahern@gmail.com>
To: Andrew Davidoff <davidoff@qedmf.net>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: Getting started with perf; a couple of questions
Date: Fri, 07 Jun 2013 09:05:41 -0600	[thread overview]
Message-ID: <51B1F6C5.3060302@gmail.com> (raw)
In-Reply-To: <CAJLXCZSE=LWW8PxTAs4yPAQsmwQjVF=ehGCTKbUWF3rCDF-+7w@mail.gmail.com>

On 6/6/13 12:26 PM, Andrew Davidoff wrote:
> On Thu, Jun 6, 2013 at 8:01 AM, David Ahern <dsahern@gmail.com> wrote:
>>
>> It's a VM and not running on KVM so there is no PMU which means the -e
>> cycles is most likely falling back to -e cpu-clock. You should see this in a
>> message with the -v flag on record. perf-script should dump out the events
>> and show cpu-clock versus cycles.
>>
>> Based on that I suggest trying -e cpu-clock on your original host. If that
>> works then something is messed up with the pmu config on the host.
>
> Thanks. It wasn't clear to me if a VM had the same access to the PMU
> that a non-virtualized host would. But I guess that might explain why
> a bunch of events I'd expect samples for didn't have any (ex:
> iTLB-load-misses), even on the VM that did record some samples?
>

The hypervisor needs to expose a PMU to the guest. AFAIK KVM is the only 
one that does that. Without the PMU you do not get H/W based events.

> I re-ran the record on the VM with -v and did see the message about
> falling back to cpu-clock-ticks, but only after I added the cycles
> even to my events list. Which actually leads into a question regarding
> event sampling.

So perf record -v does not show the fallback? The default event has been 
'cycles' from the beginning I believe. Only if cycles is not supported 
does it fallback to cpu-clock. You should not have to add '-e cycles'. 
Well, at least that is the way it is for the code in Linus' tree.

>
> The documentation I have found mentions a "default sampling event"
> (cycles) but doesn't explain the concept of a sampling event in
> detail. Does each event listed with -e have its own sample period/rate
> that can be adjusted? Or do -c or -F apply to all events sampled? Even
> I don't sample cycles, is the default sampling rate still 1000Hz for
> all events sampled in the absence of -c or -F?

Unless it crept it with some changes Jiri made (I have not been using 
the fancy -e declarations) I believe there is a single -c/-F argument 
and it applies to all events. ie., all events have the same sampling 
interval.

The default is 1000 Hz (equivalent to -F 1000). -c specifies the period 
-- which is the similar to specifying -F.

     OPT_U64('c', "count", &record.opts.user_interval, "event period to 
sample"),
...
     OPT_UINTEGER('F', "freq", &record.opts.user_freq, "profile at this 
frequency"),


And then configuring the attributes for the event only 1 of the 2 is 
used with frequency taking precedent:

    if (!attr->sample_period || (opts->user_freq != UINT_MAX &&
                      opts->user_interval != ULLONG_MAX)) {
         if (opts->freq) {
             perf_evsel__set_sample_bit(evsel, PERIOD);
             attr->freq      = 1;
             attr->sample_freq   = opts->freq;
         } else {
             attr->sample_period = opts->default_interval;
         }
     }

>
> Regarding using -e cpu-clock on the original host, that doesn't appear
> to have changed the perf record behavior. Neither does using -e
> cycles. And even with -v on record, I didn't see any additional
> messaging (like fall back to cpu-clock). But I do still get sample
> data if I run with -a. *shrug*.

What command lines are you running? I seem to recall this is a 2.6.32 
kernel and basic perf record commands should work fine -- perf record -a 
or perf record -p <pid>. Perhaps something snuck in recently that broke 
compat with 2.6.32. You can determine that by running the perf command 
that comes with that version of Ubuntu and then newer ones -- 3.0, 3.4, 
3.8 would be a good distribution of versions to start with if you want 
to get to the bottom of it.

David

  reply	other threads:[~2013-06-07 15:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-31  5:26 Getting started with perf; a couple of questions Andrew Davidoff
2013-05-31  5:41 ` David Ahern
2013-05-31  7:09   ` Andrew Davidoff
2013-05-31 20:35     ` Andrew Davidoff
2013-06-06 14:01       ` David Ahern
2013-06-06 18:26         ` Andrew Davidoff
2013-06-07 15:05           ` David Ahern [this message]
2013-06-07 23:49             ` Andrew Davidoff
2013-06-08  0:08               ` David Ahern

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=51B1F6C5.3060302@gmail.com \
    --to=dsahern@gmail.com \
    --cc=davidoff@qedmf.net \
    --cc=linux-perf-users@vger.kernel.org \
    /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 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).