diff mbox

[PATCHv2] trace-cmd: add kvm_mmu_prepare_zap_page even and fix kvm_mmu_get_page event output in kvm plugin

Message ID 20121227113415.GO17584@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Gleb Natapov Dec. 27, 2012, 11:34 a.m. UTC
kvm_mmu_zap_page event was renamed to kvm_mmu_prepare_zap_page. Add new
even, but leave the old one to parse older traces.  Print out "created"
field for kvm_mmu_get_page event.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Gleb Natapov Jan. 28, 2013, 11:12 a.m. UTC | #1
Ping.

On Thu, Dec 27, 2012 at 01:34:15PM +0200, Gleb Natapov wrote:
> kvm_mmu_zap_page event was renamed to kvm_mmu_prepare_zap_page. Add new
> even, but leave the old one to parse older traces.  Print out "created"
> field for kvm_mmu_get_page event.
> 
> Signed-off-by: Gleb Natapov <gleb@redhat.com>
> diff --git a/plugin_kvm.c b/plugin_kvm.c
> index 55812ef..9b376d8 100644
> --- a/plugin_kvm.c
> +++ b/plugin_kvm.c
> @@ -382,7 +382,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record,
>  	} else
>  		trace_seq_printf(s, "WORD: %08x", role.word);
>  
> -	pevent_print_num_field(s, " root %u",  event,
> +	pevent_print_num_field(s, " root %u ",  event,
>  			       "root_count", record, 1);
>  
>  	if (pevent_get_field_val(s, event, "unsync", record, &val, 1) < 0)
> @@ -397,6 +397,11 @@ static int kvm_mmu_get_page_handler(struct trace_seq *s, struct pevent_record *r
>  {
>  	unsigned long long val;
>  
> +	if (pevent_get_field_val(s, event, "created", record, &val, 1) < 0)
> +		return -1;
> +
> +	trace_seq_printf(s, "%s ", val ? "new" : "existing");
> +
>  	if (pevent_get_field_val(s, event, "gfn", record, &val, 1) < 0)
>  		return -1;
>  
> @@ -433,5 +438,9 @@ int PEVENT_PLUGIN_LOADER(struct pevent *pevent)
>  	pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page",
>  				      kvm_mmu_print_role, NULL);
>  
> +	pevent_register_event_handler(pevent, -1, "kvmmmu",
> +			"kvm_mmu_prepare_zap_page", kvm_mmu_print_role,
> +			NULL);
> +
>  	return 0;
>  }
> --
> 			Gleb.
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steven Rostedt Jan. 28, 2013, 2:59 p.m. UTC | #2
On Mon, 2013-01-28 at 13:12 +0200, Gleb Natapov wrote:
> Ping.

Please send email (especially patches) to my rostedt@goodmis.org
account. I don't always read my RH email, except to skim it for RH
related work.

I may miss a patch in my goodmis account, but I will periodically purge
it (go through each email one by one and put them into special folders
or delete them). A patch missed will eventually be hit there. But that's
not the same for my RH account. A patch missed there, will never be seen
again.

Note, I'm still in November of my "purge" so a December patch will
probably take a week or two to see now ;-)

Anyway, I'll take a look at this patch and let you know.

Thanks,

-- Steve

> 
> On Thu, Dec 27, 2012 at 01:34:15PM +0200, Gleb Natapov wrote:
> > kvm_mmu_zap_page event was renamed to kvm_mmu_prepare_zap_page. Add new
> > even, but leave the old one to parse older traces.  Print out "created"
> > field for kvm_mmu_get_page event.
> > 
> > Signed-off-by: Gleb Natapov <gleb@redhat.com>
> > diff --git a/plugin_kvm.c b/plugin_kvm.c
> > index 55812ef..9b376d8 100644
> > --- a/plugin_kvm.c
> > +++ b/plugin_kvm.c
> > @@ -382,7 +382,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record,
> >  	} else
> >  		trace_seq_printf(s, "WORD: %08x", role.word);
> >  
> > -	pevent_print_num_field(s, " root %u",  event,
> > +	pevent_print_num_field(s, " root %u ",  event,
> >  			       "root_count", record, 1);
> >  
> >  	if (pevent_get_field_val(s, event, "unsync", record, &val, 1) < 0)
> > @@ -397,6 +397,11 @@ static int kvm_mmu_get_page_handler(struct trace_seq *s, struct pevent_record *r
> >  {
> >  	unsigned long long val;
> >  
> > +	if (pevent_get_field_val(s, event, "created", record, &val, 1) < 0)
> > +		return -1;
> > +
> > +	trace_seq_printf(s, "%s ", val ? "new" : "existing");
> > +
> >  	if (pevent_get_field_val(s, event, "gfn", record, &val, 1) < 0)
> >  		return -1;
> >  
> > @@ -433,5 +438,9 @@ int PEVENT_PLUGIN_LOADER(struct pevent *pevent)
> >  	pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page",
> >  				      kvm_mmu_print_role, NULL);
> >  
> > +	pevent_register_event_handler(pevent, -1, "kvmmmu",
> > +			"kvm_mmu_prepare_zap_page", kvm_mmu_print_role,
> > +			NULL);
> > +
> >  	return 0;
> >  }
> > --
> > 			Gleb.
> > --
> > To unsubscribe from this list: send the line "unsubscribe kvm" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> 			Gleb.


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steven Rostedt Jan. 28, 2013, 3:23 p.m. UTC | #3
On Mon, 2013-01-28 at 13:12 +0200, Gleb Natapov wrote:
> Ping.
> 
> On Thu, Dec 27, 2012 at 01:34:15PM +0200, Gleb Natapov wrote:
> > kvm_mmu_zap_page event was renamed to kvm_mmu_prepare_zap_page. Add new
> > even, but leave the old one to parse older traces.  Print out "created"
> > field for kvm_mmu_get_page event.
> > 
> > Signed-off-by: Gleb Natapov <gleb@redhat.com>
> > diff --git a/plugin_kvm.c b/plugin_kvm.c
> > index 55812ef..9b376d8 100644
> > --- a/plugin_kvm.c
> > +++ b/plugin_kvm.c
> > @@ -382,7 +382,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record,
> >  	} else
> >  		trace_seq_printf(s, "WORD: %08x", role.word);
> >  
> > -	pevent_print_num_field(s, " root %u",  event,
> > +	pevent_print_num_field(s, " root %u ",  event,
> >  			       "root_count", record, 1);
> >  
> >  	if (pevent_get_field_val(s, event, "unsync", record, &val, 1) < 0)
> > @@ -397,6 +397,11 @@ static int kvm_mmu_get_page_handler(struct trace_seq *s, struct pevent_record *r
> >  {
> >  	unsigned long long val;
> >  
> > +	if (pevent_get_field_val(s, event, "created", record, &val, 1) < 0)

Is "created" a new field? Or is it something that has always been there
but never displayed?

If it is new, then instead of returning '-1' if it's not found, could
you just ignore it. I don't want old kernels to start breaking on new
trace-cmd plugins.

Thanks,

-- Steve

> > +		return -1;
> > +
> > +	trace_seq_printf(s, "%s ", val ? "new" : "existing");
> > +
> >  	if (pevent_get_field_val(s, event, "gfn", record, &val, 1) < 0)
> >  		return -1;
> >  
> > @@ -433,5 +438,9 @@ int PEVENT_PLUGIN_LOADER(struct pevent *pevent)
> >  	pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page",
> >  				      kvm_mmu_print_role, NULL);
> >  
> > +	pevent_register_event_handler(pevent, -1, "kvmmmu",
> > +			"kvm_mmu_prepare_zap_page", kvm_mmu_print_role,
> > +			NULL);
> > +
> >  	return 0;
> >  }
> > --
> > 			Gleb.
> > --
> > To unsubscribe from this list: send the line "unsubscribe kvm" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> 			Gleb.


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Gleb Natapov Jan. 28, 2013, 5 p.m. UTC | #4
On Mon, Jan 28, 2013 at 10:23:50AM -0500, Steven Rostedt wrote:
> On Mon, 2013-01-28 at 13:12 +0200, Gleb Natapov wrote:
> > Ping.
> > 
> > On Thu, Dec 27, 2012 at 01:34:15PM +0200, Gleb Natapov wrote:
> > > kvm_mmu_zap_page event was renamed to kvm_mmu_prepare_zap_page. Add new
> > > even, but leave the old one to parse older traces.  Print out "created"
> > > field for kvm_mmu_get_page event.
> > > 
> > > Signed-off-by: Gleb Natapov <gleb@redhat.com>
> > > diff --git a/plugin_kvm.c b/plugin_kvm.c
> > > index 55812ef..9b376d8 100644
> > > --- a/plugin_kvm.c
> > > +++ b/plugin_kvm.c
> > > @@ -382,7 +382,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record,
> > >  	} else
> > >  		trace_seq_printf(s, "WORD: %08x", role.word);
> > >  
> > > -	pevent_print_num_field(s, " root %u",  event,
> > > +	pevent_print_num_field(s, " root %u ",  event,
> > >  			       "root_count", record, 1);
> > >  
> > >  	if (pevent_get_field_val(s, event, "unsync", record, &val, 1) < 0)
> > > @@ -397,6 +397,11 @@ static int kvm_mmu_get_page_handler(struct trace_seq *s, struct pevent_record *r
> > >  {
> > >  	unsigned long long val;
> > >  
> > > +	if (pevent_get_field_val(s, event, "created", record, &val, 1) < 0)
> 
> Is "created" a new field? Or is it something that has always been there
> but never displayed?
> 
Always been there, but for some reason, was not displayed.

> If it is new, then instead of returning '-1' if it's not found, could
> you just ignore it. I don't want old kernels to start breaking on new
> trace-cmd plugins.
> 
> Thanks,
> 
> -- Steve
> 
> > > +		return -1;
> > > +
> > > +	trace_seq_printf(s, "%s ", val ? "new" : "existing");
> > > +
> > >  	if (pevent_get_field_val(s, event, "gfn", record, &val, 1) < 0)
> > >  		return -1;
> > >  
> > > @@ -433,5 +438,9 @@ int PEVENT_PLUGIN_LOADER(struct pevent *pevent)
> > >  	pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page",
> > >  				      kvm_mmu_print_role, NULL);
> > >  
> > > +	pevent_register_event_handler(pevent, -1, "kvmmmu",
> > > +			"kvm_mmu_prepare_zap_page", kvm_mmu_print_role,
> > > +			NULL);
> > > +
> > >  	return 0;
> > >  }
> > > --
> > > 			Gleb.
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe kvm" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> > --
> > 			Gleb.
> 

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steven Rostedt Jan. 28, 2013, 5:22 p.m. UTC | #5
On Mon, 2013-01-28 at 19:00 +0200, Gleb Natapov wrote:

> > Is "created" a new field? Or is it something that has always been there
> > but never displayed?
> > 
> Always been there, but for some reason, was not displayed.

OK, I'll apply it then. Thanks!

-- Steve

> 
> > If it is new, then instead of returning '-1' if it's not found, could
> > you just ignore it. I don't want old kernels to start breaking on new
> > trace-cmd plugins.
> > 
> >

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/plugin_kvm.c b/plugin_kvm.c
index 55812ef..9b376d8 100644
--- a/plugin_kvm.c
+++ b/plugin_kvm.c
@@ -382,7 +382,7 @@  static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record,
 	} else
 		trace_seq_printf(s, "WORD: %08x", role.word);
 
-	pevent_print_num_field(s, " root %u",  event,
+	pevent_print_num_field(s, " root %u ",  event,
 			       "root_count", record, 1);
 
 	if (pevent_get_field_val(s, event, "unsync", record, &val, 1) < 0)
@@ -397,6 +397,11 @@  static int kvm_mmu_get_page_handler(struct trace_seq *s, struct pevent_record *r
 {
 	unsigned long long val;
 
+	if (pevent_get_field_val(s, event, "created", record, &val, 1) < 0)
+		return -1;
+
+	trace_seq_printf(s, "%s ", val ? "new" : "existing");
+
 	if (pevent_get_field_val(s, event, "gfn", record, &val, 1) < 0)
 		return -1;
 
@@ -433,5 +438,9 @@  int PEVENT_PLUGIN_LOADER(struct pevent *pevent)
 	pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page",
 				      kvm_mmu_print_role, NULL);
 
+	pevent_register_event_handler(pevent, -1, "kvmmmu",
+			"kvm_mmu_prepare_zap_page", kvm_mmu_print_role,
+			NULL);
+
 	return 0;
 }