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"