@samitouri / QOSamiQemu / commits / f091e8abd8

qom: add trace events for user creatable create/delete APIs

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260706135824.2623960-32-berrange@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Daniel P. Berrangé committed Jul 6, 2026 at 14:58 UTC f091e8abd87157a634152489b0f580504a06d2cc
2 files changed +14 -2
qom/object_interfaces.c
+9 -2
@@ -20,12 +20,14 @@
20 #include "qapi/opts-visitor.h"
21 #include "qemu/config-file.h"
22 #include "qemu/keyval.h"
23 +#include "trace.h"
24
25 bool user_creatable_complete(UserCreatable *uc, Error **errp)
26 {
27 UserCreatableClass *ucc = USER_CREATABLE_GET_CLASS(uc);
28 ERRP_GUARD();
29
30 + trace_user_creatable_complete(uc, object_get_typename(OBJECT(uc)));
31 if (ucc->complete) {
32 ucc->complete(uc, errp);
33 }
@@ -35,11 +37,16 @@ bool user_creatable_complete(UserCreatable *uc, Error **errp)
37 bool user_creatable_prepare_delete(UserCreatable *uc, Error **errp)
38 {
39 UserCreatableClass *ucc = USER_CREATABLE_GET_CLASS(uc);
40 + bool ret = true;
41
42 + trace_user_creatable_prepare_delete(uc, object_get_typename(OBJECT(uc)));
43 if (ucc->prepare_delete) {
40 - return ucc->prepare_delete(uc, errp);
44 + ret = ucc->prepare_delete(uc, errp);
45 }
42 - return true;
46 + trace_user_creatable_prepare_delete_result(
47 + uc, object_get_typename(OBJECT(uc)),
48 + *errp ? error_get_pretty(*errp) : NULL);
49 + return ret;
50 }
51
52 void user_creatable_add_qapi(ObjectOptions *options, Error **errp)
qom/trace-events
+5
@@ -11,3 +11,8 @@ object_property_del_child(void *obj, const char *type, void *child, const char *
11 object_property_parse(void *obj, const char *type, const char *name, const char *value) "obj=%p type=%s prop=%s value=%s"
12 object_class_dynamic_cast_assert(const char *type, const char *target, const char *file, int line, const char *func) "type=%s->%s (%s:%d:%s)"
13 object_class_property_add(const char *type, const char *name, void *value) "type=%s name=%s value=%p"
14 +
15 +# object_interfaces.c
16 +user_creatable_complete(void *obj, const char *type) "obj=%p type=%s"
17 +user_creatable_prepare_delete(void *obj, const char *type) "obj=%p type=%s"
18 +user_creatable_prepare_delete_result(void *obj, const char *type, const char *msg) "obj=%p type=%s msg=%s"