linux-kernel.vger.kernel.org archive mirror
 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: 15+ 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
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 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).