perf: add page_faults_min software perf event support

This patch adds support and documentation
for the page_faults_min perf event.

Signed-off-by: Nitesh Konkar <nitkon12@linux.vnet.ibm.com>
This commit is contained in:
Nitesh Konkar 2017-02-23 20:25:35 +05:30 committed by John Ferlan
parent 8110c6a567
commit d216e9ad77
9 changed files with 34 additions and 1 deletions

View File

@ -1952,6 +1952,7 @@
&lt;event name='page_faults' enabled='no'/&gt;
&lt;event name='context_switches' enabled='no'/&gt;
&lt;event name='cpu_migrations' enabled='no'/&gt;
&lt;event name='page_faults_min' enabled='no'/&gt;
&lt;/perf&gt;
...
</pre>
@ -2064,6 +2065,14 @@
applications running on the platform</td>
<td><code>perf.cpu_migrations</code></td>
</tr>
<tr>
<td><code>page_faults_min</code></td>
<td>the count of minor page faults, that is, where the
page was present in the page cache, and therefore
the fault avoided loading it from storage, by
applications running on the platform</td>
<td><code>perf.page_faults_min</code></td>
</tr>
</table>
<h3><a name="elementsDevices">Devices</a></h3>

View File

@ -438,6 +438,7 @@
<value>page_faults</value>
<value>context_switches</value>
<value>cpu_migrations</value>
<value>page_faults_min</value>
</choice>
</attribute>
<attribute name="enabled">

View File

@ -2240,6 +2240,16 @@ void virDomainStatsRecordListFree(virDomainStatsRecordPtr *stats);
*/
# define VIR_PERF_PARAM_CPU_MIGRATIONS "cpu_migrations"
/**
* VIR_PERF_PARAM_PAGE_FAULTS_MIN:
*
* Macro for typed parameter name that represents page_faults_min
* perf event which can be used to measure the count of minor page
* faults by applications running on the platform. It corresponds
* to the "perf.page_faults_min" field in the *Stats APIs.
*/
# define VIR_PERF_PARAM_PAGE_FAULTS_MIN "page_faults_min"
int virDomainGetPerfEvents(virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,

View File

@ -11263,6 +11263,9 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
* processor to another, as unsigned long
* long. It is produced by the cpu_migrations
* perf event.
* "perf.page_faults_min" - The count of minor page faults as unsigned
* long long. It is produced by the
* page_faults_min perf event.
*
* Note that entire stats groups or individual stat fields may be missing from
* the output in case they are not supported by the given hypervisor, are not

View File

@ -9572,6 +9572,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom,
VIR_PERF_PARAM_PAGE_FAULTS, VIR_TYPED_PARAM_BOOLEAN,
VIR_PERF_PARAM_CONTEXT_SWITCHES, VIR_TYPED_PARAM_BOOLEAN,
VIR_PERF_PARAM_CPU_MIGRATIONS, VIR_TYPED_PARAM_BOOLEAN,
VIR_PERF_PARAM_PAGE_FAULTS_MIN, VIR_TYPED_PARAM_BOOLEAN,
NULL) < 0)
return -1;

View File

@ -45,7 +45,8 @@ VIR_ENUM_IMPL(virPerfEvent, VIR_PERF_EVENT_LAST,
"bus_cycles", "stalled_cycles_frontend",
"stalled_cycles_backend", "ref_cpu_cycles",
"cpu_clock", "task_clock", "page_faults",
"context_switches", "cpu_migrations");
"context_switches", "cpu_migrations",
"page_faults_min");
struct virPerfEvent {
int type;
@ -129,6 +130,9 @@ static struct virPerfEventAttr attrs[] = {
{.type = VIR_PERF_EVENT_CPU_MIGRATIONS,
.attrType = PERF_TYPE_SOFTWARE,
.attrConfig = PERF_COUNT_SW_CPU_MIGRATIONS},
{.type = VIR_PERF_EVENT_PAGE_FAULTS_MIN,
.attrType = PERF_TYPE_SOFTWARE,
.attrConfig = PERF_COUNT_SW_PAGE_FAULTS_MIN},
};
typedef struct virPerfEventAttr *virPerfEventAttrPtr;

View File

@ -52,6 +52,7 @@ typedef enum {
VIR_PERF_EVENT_PAGE_FAULTS, /* Count of total page faults */
VIR_PERF_EVENT_CONTEXT_SWITCHES, /* Count of context switches */
VIR_PERF_EVENT_CPU_MIGRATIONS, /* Count of cpu migrations */
VIR_PERF_EVENT_PAGE_FAULTS_MIN, /* Count of minor page faults */
VIR_PERF_EVENT_LAST
} virPerfEventType;

View File

@ -31,6 +31,7 @@
<event name='page_faults' enabled='yes'/>
<event name='context_switches' enabled='yes'/>
<event name='cpu_migrations' enabled='yes'/>
<event name='page_faults_min' enabled='yes'/>
</perf>
<devices>
</devices>

View File

@ -969,6 +969,7 @@ I<--perf> returns the statistics of all enabled perf events:
"perf.page_faults" - the count of page faults
"perf.context_switches" - the count of context switches
"perf.cpu_migrations" - the count of cpu migrations
"perf.page_faults_min" - the count of minor page faults
See the B<perf> command for more details about each event.
@ -2348,6 +2349,8 @@ B<Valid perf event names>
by applications running on the platform.
cpu_migrations - Provides the count cpu migrations by
applications running on the platform.
page_faults_min - Provides the count minor page faults
by applications running on the platform.
B<Note>: The statistics can be retrieved using the B<domstats> command using
the I<--perf> flag.