[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 02/17] trace: convert code to use event itera
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] [PATCH v4 02/17] trace: convert code to use event iterators |
Date: |
Thu, 22 Sep 2016 13:45:30 +0100 |
User-agent: |
Mutt/1.7.0 (2016-08-17) |
On Thu, Sep 22, 2016 at 02:20:26PM +0200, Lluís Vilanova wrote:
> Daniel P Berrange writes:
>
> > This converts the HMP/QMP monitor API implementations
> > and some internal trace control methods to use the new
> > trace event iterator APIs.
>
> > Reviewed-by: Stefan Hajnoczi <address@hidden>
> > Signed-off-by: Daniel P. Berrange <address@hidden>
> > ---
> > monitor.c | 26 ++++++++++--------
> > trace/control.c | 85
> > +++++++++++++++++++++++++++++++--------------------------
> > trace/qmp.c | 16 +++++++----
> > 3 files changed, 70 insertions(+), 57 deletions(-)
> > diff --git a/trace/qmp.c b/trace/qmp.c
> > index 11d2564..88a907b 100644
> > --- a/trace/qmp.c
> > +++ b/trace/qmp.c
> > @@ -52,8 +52,10 @@ static bool check_events(bool has_vcpu, bool
> > ignore_unavailable, bool is_pattern
> > return true;
> > } else {
> > /* error for unavailable events */
> > - TraceEvent *ev = NULL;
> > - while ((ev = trace_event_pattern(name, ev)) != NULL) {
> > + TraceEventIter iter;
> > + TraceEvent *ev;
> > + trace_event_iter_init(&iter, name);
> > + while ((ev = trace_event_iter_next(&iter)) != NULL) {
> > if (!ignore_unavailable && !trace_event_get_state_static(ev)) {
> > error_setg(errp, "event \"%s\" is disabled",
> > trace_event_get_name(ev));
> > return false;
> > @@ -69,6 +71,7 @@ TraceEventInfoList *qmp_trace_event_get_state(const char
> > *name,
> > {
> > Error *err = NULL;
> > TraceEventInfoList *events = NULL;
> > + TraceEventIter iter;
> > TraceEvent *ev;
> > bool is_pattern = trace_event_is_pattern(name);
> > CPUState *cpu;
> > @@ -86,8 +89,8 @@ TraceEventInfoList *qmp_trace_event_get_state(const char
> > *name,
> > }
>
> > /* Get states (all errors checked above) */
> > - ev = NULL;
> > - while ((ev = trace_event_pattern(name, ev)) != NULL) {
> > + trace_event_iter_init(&iter, is_pattern ? name : NULL);
>
> I think you should always pass name, otherwise a non-pattern name (when the
> user
> wants an exact name match) will return the state of all events.
Hm, yes, don't know why i did that - its clearly wrong.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
- [Qemu-devel] [PATCH v4 00/17] Refactor trace to allow modular build, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 01/17] trace: add trace event iterator APIs, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 02/17] trace: convert code to use event iterators, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 03/17] trace: remove some now unused functions, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 06/17] trace: break circular dependency in event-internal.h, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 05/17] trace: remove duplicate control.h includes in generated-tracers.h, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 04/17] trace: remove global 'uint16 dstate[]' array, Daniel P. Berrange, 2016/09/22
- [Qemu-devel] [PATCH v4 07/17] trace: give each trace event a named TraceEvent struct, Daniel P. Berrange, 2016/09/22