All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Megha Dey <megha.dey@linux.intel.com>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com, andriy.shevchenko@linux.intel.com,
	kstewart@linuxfoundation.org, yu-cheng.yu@intel.com,
	len.brown@intel.com, gregkh@linuxfoundation.org,
	peterz@infradead.org, acme@kernel.org,
	alexander.shishkin@linux.intel.com, namhyung@kernel.org,
	vikas.shivappa@linux.intel.com, pombredanne@nexb.com,
	me@kylehuey.com, bp@suse.de, grzegorz.andrejczuk@intel.com,
	tony.luck@intel.com, corbet@lwn.net, ravi.v.shankar@intel.com,
	megha.dey@intel.com
Subject: Re: [PATCH V2 3/3] x86, bm: Add documentation on Intel Branch Monitoring
Date: Mon, 20 Nov 2017 15:07:46 +0100	[thread overview]
Message-ID: <20171120140746.GA23281@krava> (raw)
In-Reply-To: <1510970046-25387-4-git-send-email-megha.dey@linux.intel.com>

On Fri, Nov 17, 2017 at 05:54:06PM -0800, Megha Dey wrote:

SNIP

> +IV. User-configurable inputs
> +============================
> +
> +Several sysfs entries are provided in /sys/devices/intel_bm/ to configure
> +controls for the supported hardware heuristics.
> +
> +1. LBR freeze: /sys/devices/intel-bm/lbr_freeze
> +   possible values are 0 or 1. By default this is disabled(0). When enabled,
> +   an LBR freeze is observed on threshold trip
> +
> +2. Guest Disable: /sys/devices/intel-bm/guest_disable
> +   Possible values are 0 or 1. By default it is 0. When set to ‘1’, branch
> +   monitoring feature is disabled when operating at VMX non-root operation.
> +
> +3. Window size: /sys/devices/intel-bm/window_size
> +   By default, window size is 1023. It can take values from 0 to 1023. This
> +   represents the number of instructions to be executed before the event
> +   counters are reset.
> +
> +4. Window count select: /sys/devices/intel-bm/window_cnt_sel
> +   Possible values are:
> +   ‘00 = instructions retired
> +   ‘01 = branches retired
> +   ‘10 = returned instructions retired
> +   ‘11 = indirect branch instructions retired
> +   By default, it has a value of 0.
> +
> +5. Count and mode: /sys/devices/intel-bm/cnt_and_mode
> +   Possible values are 0 or 1. By default it is 0. When set to ‘1’, the
> +   overall event triggering condition is true only if both enabled
> +   counter’s threshold conditions are true. When ‘0’, the threshold
> +   tripping condition is true if either enabled counter’s threshold is
> +   true. If a counter is not enabled, then it does not factor into the
> +   AND’ing logic
> +
> +6. Threshold: /sys/devices/intel-bm/threshold
> +   An unsigned value of 0 to 127 is supported. The value 0 of counter
> +   threshold will result in branch monitoring event signaled after every
> +   instruction. By default, it has a value of 127.
> +
> +7. Mispredict counting behaviour: /sys/devices/intel-bm/mispred_evt_cnt
> +   Possible values are:
> +   0 = mispredict events are counted in a window
> +   1 = mispredict events are counted based on a consecutive occurrence.
> +   By default, it has a value of 0.

you use all those value to configure the event:

        event->hw.bm_ctrl = (bm_window_size << BM_WINDOW_SIZE_SHIFT) |
                            (bm_guest_disable << BM_GUEST_DISABLE_SHIFT) |
                            (bm_lbr_freeze << BM_LBR_FREEZE_SHIFT) |
                            (bm_window_cnt_sel << BM_WINDOW_CNT_SEL_SHIFT) |
                            (bm_cnt_and_mode << BM_CNT_AND_MODE_SHIFT) |
                                                                BM_ENABLE;
        event->hw.bm_counter_conf = (bm_threshold << BM_THRESHOLD_SHIFT) |
                        (bm_mispred_evt_cnt << BM_MISPRED_EVT_CNT_SHIFT) |
                        (cfg << BM_EVENT_TYPE_SHIFT) | BM_CNTR_ENABLE;

I wonder you should place this under perf_event_attr::config/config1
and define them in /sys/devices/intel_bm/format/... like we do for
cpu pmu

then you could use perf stat -e like: '-e intel_bm/call-ret,threshold=...,lbr_freeze/'

jirka

  reply	other threads:[~2017-11-20 14:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-18  1:54 [PATCH V2 0/3] perf/x86/intel: Add Branch Monitoring support Megha Dey
2017-11-18  1:54 ` [PATCH V2 1/3] x86/cpu/intel: Add Cannonlake to Intel family Megha Dey
2017-11-18  1:54 ` [PATCH V2 2/3] perf/x86/intel/bm.c: Add Intel Branch Monitoring support Megha Dey
2017-11-20 11:57   ` Peter Zijlstra
2017-12-12 21:10     ` Megha Dey
2017-12-12 22:32       ` Peter Zijlstra
2017-12-12 23:08         ` Megha Dey
2017-12-13  7:21           ` Peter Zijlstra
2017-12-20 21:23             ` Megha Dey
2018-04-04 21:33               ` Megha Dey
2018-04-04 21:33                 ` Megha Dey
2017-11-20 14:10   ` Jiri Olsa
2017-12-12 21:03     ` Megha Dey
2017-11-18  1:54 ` [PATCH V2 3/3] x86, bm: Add documentation on Intel Branch Monitoring Megha Dey
2017-11-20 14:07   ` Jiri Olsa [this message]
2017-12-12 21:05     ` Megha Dey

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=20171120140746.GA23281@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bp@suse.de \
    --cc=corbet@lwn.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=grzegorz.andrejczuk@intel.com \
    --cc=hpa@zytor.com \
    --cc=kstewart@linuxfoundation.org \
    --cc=len.brown@intel.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=me@kylehuey.com \
    --cc=megha.dey@intel.com \
    --cc=megha.dey@linux.intel.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=pombredanne@nexb.com \
    --cc=ravi.v.shankar@intel.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=vikas.shivappa@linux.intel.com \
    --cc=x86@kernel.org \
    --cc=yu-cheng.yu@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.