提交 43a54ced 编写于 作者: N Nitesh Konkar 提交者: John Ferlan

perf: add page_faults_maj software perf event support

This patch adds support and documentation
for the page_faults_maj perf event.
Signed-off-by: NNitesh Konkar <nitkon12@linux.vnet.ibm.com>
上级 d216e9ad
......@@ -1953,6 +1953,7 @@
&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;event name='page_faults_maj' enabled='no'/&gt;
&lt;/perf&gt;
...
</pre>
......@@ -2073,6 +2074,14 @@
applications running on the platform</td>
<td><code>perf.page_faults_min</code></td>
</tr>
<tr>
<td><code>page_faults_maj</code></td>
<td>the count of major page faults, that is, where the
page was not present in the page cache, and
therefore had to be fetched from storage, by
applications running on the platform</td>
<td><code>perf.page_faults_maj</code></td>
</tr>
</table>
<h3><a name="elementsDevices">Devices</a></h3>
......
......@@ -439,6 +439,7 @@
<value>context_switches</value>
<value>cpu_migrations</value>
<value>page_faults_min</value>
<value>page_faults_maj</value>
</choice>
</attribute>
<attribute name="enabled">
......
......@@ -2250,6 +2250,16 @@ void virDomainStatsRecordListFree(virDomainStatsRecordPtr *stats);
*/
# define VIR_PERF_PARAM_PAGE_FAULTS_MIN "page_faults_min"
/**
* VIR_PERF_PARAM_PAGE_FAULTS_MAJ:
*
* Macro for typed parameter name that represents page_faults_maj
* perf event which can be used to measure the count of major page
* faults by applications running on the platform. It corresponds
* to the "perf.page_faults_maj" field in the *Stats APIs.
*/
# define VIR_PERF_PARAM_PAGE_FAULTS_MAJ "page_faults_maj"
int virDomainGetPerfEvents(virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
......
......@@ -11266,6 +11266,9 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
* "perf.page_faults_min" - The count of minor page faults as unsigned
* long long. It is produced by the
* page_faults_min perf event.
* "perf.page_faults_maj" - The count of major page faults as unsigned
* long long. It is produced by the
* page_faults_maj 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
......
......@@ -9573,6 +9573,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom,
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,
VIR_PERF_PARAM_PAGE_FAULTS_MAJ, VIR_TYPED_PARAM_BOOLEAN,
NULL) < 0)
return -1;
......
......@@ -46,7 +46,7 @@ VIR_ENUM_IMPL(virPerfEvent, VIR_PERF_EVENT_LAST,
"stalled_cycles_backend", "ref_cpu_cycles",
"cpu_clock", "task_clock", "page_faults",
"context_switches", "cpu_migrations",
"page_faults_min");
"page_faults_min", "page_faults_maj");
struct virPerfEvent {
int type;
......@@ -133,6 +133,9 @@ static struct virPerfEventAttr attrs[] = {
{.type = VIR_PERF_EVENT_PAGE_FAULTS_MIN,
.attrType = PERF_TYPE_SOFTWARE,
.attrConfig = PERF_COUNT_SW_PAGE_FAULTS_MIN},
{.type = VIR_PERF_EVENT_PAGE_FAULTS_MAJ,
.attrType = PERF_TYPE_SOFTWARE,
.attrConfig = PERF_COUNT_SW_PAGE_FAULTS_MAJ},
};
typedef struct virPerfEventAttr *virPerfEventAttrPtr;
......
......@@ -53,6 +53,7 @@ typedef enum {
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_PAGE_FAULTS_MAJ, /* Count of major page faults */
VIR_PERF_EVENT_LAST
} virPerfEventType;
......
......@@ -32,6 +32,7 @@
<event name='context_switches' enabled='yes'/>
<event name='cpu_migrations' enabled='yes'/>
<event name='page_faults_min' enabled='yes'/>
<event name='page_faults_maj' enabled='yes'/>
</perf>
<devices>
</devices>
......
......@@ -970,6 +970,7 @@ I<--perf> returns the statistics of all enabled perf events:
"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
"perf.page_faults_maj" - the count of major page faults
See the B<perf> command for more details about each event.
......@@ -2351,6 +2352,8 @@ B<Valid perf event names>
applications running on the platform.
page_faults_min - Provides the count minor page faults
by applications running on the platform.
page_faults_maj - Provides the count major 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.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册