* [Qemu-devel] [patch 0/3] add QMP command to reset rtc interrupt backlog (v4)
@ 2014-06-04 17:52 mtosatti
2014-06-04 17:52 ` [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command mtosatti
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: mtosatti @ 2014-06-04 17:52 UTC (permalink / raw)
To: qemu-devel; +Cc: gleb, pbonzini, armbru, mprivozn
v4: fix command name,
correct english (Eric Blake)
add object_property_add_alias (Paolo)
---
It is necessary to reset RTC interrupt backlog if guest time is
synchronized via a different mechanism, such as QGA's guest-set-time
command.
Failing to do so causes both corrections to be applied (summed),
resulting in an incorrect guest time.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command
2014-06-04 17:52 [Qemu-devel] [patch 0/3] add QMP command to reset rtc interrupt backlog (v4) mtosatti
@ 2014-06-04 17:52 ` mtosatti
2014-06-17 12:32 ` Michael S. Tsirkin
2014-06-17 13:12 ` Eric Blake
2014-06-04 17:52 ` [Qemu-devel] [patch 2/3] add object_property_add_alias mtosatti
2014-06-04 17:52 ` [Qemu-devel] [patch 3/3] mc146818rtc: add "rtc" link to "/machine" mtosatti
2 siblings, 2 replies; 7+ messages in thread
From: mtosatti @ 2014-06-04 17:52 UTC (permalink / raw)
To: qemu-devel; +Cc: gleb, mprivozn, Marcelo Tosatti, armbru, pbonzini
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: rtc-reset --]
[-- Type: text/plain, Size: 3171 bytes --]
It is necessary to reset RTC interrupt reinjection backlog if
guest time is synchronized via a different mechanism, such as
QGA's guest-set-time command.
Failing to do so causes both corrections to be applied (summed),
resulting in an incorrect guest time.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
hw/timer/mc146818rtc.c | 22 ++++++++++++++++++++++
qapi-schema.json | 12 ++++++++++++
qmp-commands.hx | 23 +++++++++++++++++++++++
3 files changed, 57 insertions(+)
Index: qemu/hw/timer/mc146818rtc.c
===================================================================
--- qemu.orig/hw/timer/mc146818rtc.c 2014-06-02 23:14:09.570443599 -0300
+++ qemu/hw/timer/mc146818rtc.c 2014-06-02 23:14:11.707436729 -0300
@@ -26,6 +26,7 @@
#include "sysemu/sysemu.h"
#include "hw/timer/mc146818rtc.h"
#include "qapi/visitor.h"
+#include "qmp-commands.h"
#ifdef TARGET_I386
#include "hw/i386/apic.h"
@@ -84,6 +85,9 @@
Notifier clock_reset_notifier;
LostTickPolicy lost_tick_policy;
Notifier suspend_notifier;
+#ifdef TARGET_I386
+ QLIST_ENTRY(RTCState) link;
+#endif
} RTCState;
static void rtc_set_time(RTCState *s);
@@ -522,6 +526,20 @@
rtc_from_bcd(s, s->cmos_data[RTC_CENTURY]) * 100 - 1900;
}
+#ifdef TARGET_I386
+static QLIST_HEAD(, RTCState) rtc_devices =
+ QLIST_HEAD_INITIALIZER(rtc_devices);
+
+void qmp_rtc_reset_reinjection(Error **errp)
+{
+ RTCState *s;
+
+ QLIST_FOREACH(s, &rtc_devices, link) {
+ s->irq_coalesced = 0;
+ }
+}
+#endif
+
static void rtc_set_time(RTCState *s)
{
struct tm tm;
@@ -911,6 +929,10 @@
} else {
isa_init_irq(isadev, &s->irq, RTC_ISA_IRQ);
}
+#ifdef TARGET_I386
+ QLIST_INSERT_HEAD(&rtc_devices, s, link);
+#endif
+
return isadev;
}
Index: qemu/qapi-schema.json
===================================================================
--- qemu.orig/qapi-schema.json 2014-06-02 23:14:09.570443599 -0300
+++ qemu/qapi-schema.json 2014-06-02 23:14:11.709436722 -0300
@@ -4722,3 +4722,15 @@
'btn' : 'InputBtnEvent',
'rel' : 'InputMoveEvent',
'abs' : 'InputMoveEvent' } }
+
+##
+# @rtc-reset-reinjection
+#
+# This command will reset the RTC interrupt reinjection backlog.
+# Can be used if another mechanism to synchronize guest time
+# is in effect, for example QEMU guest agent's guest-set-time
+# command.
+#
+# Since: 2.1
+##
+{ 'command': 'rtc-reset-reinjection' }
Index: qemu/qmp-commands.hx
===================================================================
--- qemu.orig/qmp-commands.hx 2014-06-02 23:14:09.570443599 -0300
+++ qemu/qmp-commands.hx 2014-06-02 23:14:11.710436719 -0300
@@ -3572,3 +3572,26 @@
} } ] }
EQMP
+
+#if defined (TARGET_I386)
+ {
+ .name = "rtc-reset-reinjection",
+ .args_type = "",
+ .mhandler.cmd_new = qmp_marshal_input_rtc_reset_reinjection,
+ },
+#endif
+
+SQMP
+rtc-reset-reinjection
+---------------------
+
+Reset the RTC interrupt reinjection backlog.
+
+Arguments: None.
+
+Example:
+
+-> { "execute": "rtc-reset-reinjection" }
+<- { "return": {} }
+
+EQMP
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [patch 2/3] add object_property_add_alias
2014-06-04 17:52 [Qemu-devel] [patch 0/3] add QMP command to reset rtc interrupt backlog (v4) mtosatti
2014-06-04 17:52 ` [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command mtosatti
@ 2014-06-04 17:52 ` mtosatti
2014-06-05 11:09 ` Paolo Bonzini
2014-06-04 17:52 ` [Qemu-devel] [patch 3/3] mc146818rtc: add "rtc" link to "/machine" mtosatti
2 siblings, 1 reply; 7+ messages in thread
From: mtosatti @ 2014-06-04 17:52 UTC (permalink / raw)
To: qemu-devel; +Cc: gleb, mprivozn, Marcelo Tosatti, armbru, pbonzini
[-- Attachment #1: qom-add-alias --]
[-- Type: text/plain, Size: 4655 bytes --]
Allowing addition of a link without keeping pointer-to-pointer.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
include/qom/object.h | 13 +++++++++
qom/object.c | 73 +++++++++++++++++++++++++++++++++++++++++----------
2 files changed, 72 insertions(+), 14 deletions(-)
Index: qemu/include/qom/object.h
===================================================================
--- qemu.orig/include/qom/object.h 2014-06-02 23:12:51.875693325 -0300
+++ qemu/include/qom/object.h 2014-06-02 23:14:13.045432426 -0300
@@ -1073,6 +1073,19 @@
} ObjectPropertyLinkFlags;
/**
+ * object_property_add_alias:
+ * @obj: the object to add a property to
+ * @name: the name of the property
+ * @alias: the alias object
+ * @errp: if an error occurs, a pointer to an area to store the area
+ *
+ * Add a link under obj, named name, pointing to alias.
+ *
+ */
+void object_property_add_alias(Object *obj, const char *name,
+ Object *alias, Error **errp);
+
+/**
* object_property_allow_set_link:
*
* The default implementation of the object_property_add_link() check()
Index: qemu/qom/object.c
===================================================================
--- qemu.orig/qom/object.c 2014-06-02 23:12:51.875693325 -0300
+++ qemu/qom/object.c 2014-06-02 23:14:13.046432423 -0300
@@ -1023,27 +1023,71 @@
g_free(type);
}
+typedef struct {
+ Object *child;
+ Object **childp;
+ void (*check)(Object *, const char *, Object *, Error **);
+ ObjectPropertyLinkFlags flags;
+} LinkProperty;
+
+static void object_get_alias_property(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ LinkProperty *prop = opaque;
+ Object *child = prop->child;
+ gchar *path;
+
+ path = object_get_canonical_path(child);
+ visit_type_str(v, &path, name, errp);
+ g_free(path);
+}
+
+static void object_release_alias_property(Object *obj, const char *name,
+ void *opaque)
+{
+ LinkProperty *prop = opaque;
+
+ g_free(prop);
+}
+
+void object_property_add_alias(Object *obj, const char *name,
+ Object *alias, Error **errp)
+{
+ Error *local_err = NULL;
+ gchar *type;
+ LinkProperty *prop = g_malloc(sizeof(*prop));
+
+ type = g_strdup_printf("link<%s>", object_get_typename(OBJECT(alias)));
+
+ prop->child = alias;
+ prop->check = NULL;
+ prop->flags = 0;
+
+ object_property_add(obj, name, type, object_get_alias_property, NULL,
+ object_release_alias_property, prop, &local_err);
+ if (local_err) {
+ g_free(prop);
+ error_propagate(errp, local_err);
+ }
+
+ g_free(type);
+}
+
void object_property_allow_set_link(Object *obj, const char *name,
Object *val, Error **errp)
{
/* Allow the link to be set, always */
}
-typedef struct {
- Object **child;
- void (*check)(Object *, const char *, Object *, Error **);
- ObjectPropertyLinkFlags flags;
-} LinkProperty;
-
static void object_get_link_property(Object *obj, Visitor *v, void *opaque,
const char *name, Error **errp)
{
LinkProperty *lprop = opaque;
- Object **child = lprop->child;
+ Object *child = lprop->child;
gchar *path;
- if (*child) {
- path = object_get_canonical_path(*child);
+ if (child) {
+ path = object_get_canonical_path(child);
visit_type_str(v, &path, name, errp);
g_free(path);
} else {
@@ -1096,7 +1140,7 @@
{
Error *local_err = NULL;
LinkProperty *prop = opaque;
- Object **child = prop->child;
+ Object **child = prop->childp;
Object *old_target = *child;
Object *new_target = NULL;
char *path = NULL;
@@ -1133,8 +1177,8 @@
{
LinkProperty *prop = opaque;
- if ((prop->flags & OBJ_PROP_LINK_UNREF_ON_RELEASE) && *prop->child) {
- object_unref(*prop->child);
+ if ((prop->flags & OBJ_PROP_LINK_UNREF_ON_RELEASE) && prop->child) {
+ object_unref(prop->child);
}
g_free(prop);
}
@@ -1150,7 +1194,8 @@
LinkProperty *prop = g_malloc(sizeof(*prop));
gchar *full_type;
- prop->child = child;
+ prop->childp = child;
+ prop->child = *child;
prop->check = check;
prop->flags = flags;
@@ -1227,7 +1272,7 @@
if (object_property_is_link(prop)) {
LinkProperty *lprop = prop->opaque;
- return *lprop->child;
+ return lprop->child;
} else if (object_property_is_child(prop)) {
return prop->opaque;
} else {
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [patch 3/3] mc146818rtc: add "rtc" link to "/machine"
2014-06-04 17:52 [Qemu-devel] [patch 0/3] add QMP command to reset rtc interrupt backlog (v4) mtosatti
2014-06-04 17:52 ` [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command mtosatti
2014-06-04 17:52 ` [Qemu-devel] [patch 2/3] add object_property_add_alias mtosatti
@ 2014-06-04 17:52 ` mtosatti
2 siblings, 0 replies; 7+ messages in thread
From: mtosatti @ 2014-06-04 17:52 UTC (permalink / raw)
To: qemu-devel; +Cc: gleb, mprivozn, Marcelo Tosatti, armbru, pbonzini
[-- Attachment #1: rtc-add-link --]
[-- Type: text/plain, Size: 1410 bytes --]
Add a link to rtc under /machine providing a stable
location for management apps to query "date" field.
{"execute":"qom-get","arguments":{"path":"/machine/rtc","property":"date"} }
Suggested by Paolo Bonzini.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
hw/timer/mc146818rtc.c | 9 +++++++++
1 file changed, 9 insertions(+)
Index: qemu/hw/timer/mc146818rtc.c
===================================================================
--- qemu.orig/hw/timer/mc146818rtc.c 2014-06-02 23:14:11.707436729 -0300
+++ qemu/hw/timer/mc146818rtc.c 2014-06-02 23:14:15.453424684 -0300
@@ -911,6 +911,9 @@
object_property_add(OBJECT(s), "date", "struct tm",
rtc_get_date, NULL, NULL, s, NULL);
+
+ object_property_add_alias(qdev_get_machine(), "rtc", OBJECT(s),
+ &error_abort);
}
ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
@@ -954,11 +957,17 @@
dc->cannot_instantiate_with_device_add_yet = true;
}
+static void rtc_finalize(Object *obj)
+{
+ object_property_del(qdev_get_machine(), "rtc", NULL);
+}
+
static const TypeInfo mc146818rtc_info = {
.name = TYPE_MC146818_RTC,
.parent = TYPE_ISA_DEVICE,
.instance_size = sizeof(RTCState),
.class_init = rtc_class_initfn,
+ .instance_finalize = rtc_finalize,
};
static void mc146818rtc_register_types(void)
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch 2/3] add object_property_add_alias
2014-06-04 17:52 ` [Qemu-devel] [patch 2/3] add object_property_add_alias mtosatti
@ 2014-06-05 11:09 ` Paolo Bonzini
0 siblings, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2014-06-05 11:09 UTC (permalink / raw)
To: mtosatti, qemu-devel; +Cc: gleb, mprivozn, armbru
Il 04/06/2014 19:52, mtosatti@redhat.com ha scritto:
> Allowing addition of a link without keeping pointer-to-pointer.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
>
> ---
> include/qom/object.h | 13 +++++++++
> qom/object.c | 73 +++++++++++++++++++++++++++++++++++++++++----------
> 2 files changed, 72 insertions(+), 14 deletions(-)
>
> Index: qemu/include/qom/object.h
> ===================================================================
> --- qemu.orig/include/qom/object.h 2014-06-02 23:12:51.875693325 -0300
> +++ qemu/include/qom/object.h 2014-06-02 23:14:13.045432426 -0300
> @@ -1073,6 +1073,19 @@
> } ObjectPropertyLinkFlags;
>
> /**
> + * object_property_add_alias:
> + * @obj: the object to add a property to
> + * @name: the name of the property
> + * @alias: the alias object
> + * @errp: if an error occurs, a pointer to an area to store the area
> + *
> + * Add a link under obj, named name, pointing to alias.
> + *
> + */
> +void object_property_add_alias(Object *obj, const char *name,
> + Object *alias, Error **errp);
> +
> +/**
> * object_property_allow_set_link:
> *
> * The default implementation of the object_property_add_link() check()
> Index: qemu/qom/object.c
> ===================================================================
> --- qemu.orig/qom/object.c 2014-06-02 23:12:51.875693325 -0300
> +++ qemu/qom/object.c 2014-06-02 23:14:13.046432423 -0300
> @@ -1023,27 +1023,71 @@
> g_free(type);
> }
>
> +typedef struct {
> + Object *child;
> + Object **childp;
These field names are ugly... not your fault, but perhaps
Object **linkp;
Object *alias_dest;
would be better. It would also avoid the mistake below:
> @@ -1096,7 +1140,7 @@
> {
> Error *local_err = NULL;
> LinkProperty *prop = opaque;
> - Object **child = prop->child;
> + Object **child = prop->childp;
> Object *old_target = *child;
> Object *new_target = NULL;
> char *path = NULL;
This is object_set_link_property. It writes *child but not prop->child,
and subsequent calls to object_get_link_property incorrect.
However, since a similar need arose recently in one of Peter
Crosthwaite's patches, let's add a generic resolve mechanism. I'll post
a short series in a second, as soon as I finish testing it.
Paolo
> @@ -1133,8 +1177,8 @@
> {
> LinkProperty *prop = opaque;
>
> - if ((prop->flags & OBJ_PROP_LINK_UNREF_ON_RELEASE) && *prop->child) {
> - object_unref(*prop->child);
> + if ((prop->flags & OBJ_PROP_LINK_UNREF_ON_RELEASE) && prop->child) {
> + object_unref(prop->child);
> }
> g_free(prop);
> }
> @@ -1150,7 +1194,8 @@
> LinkProperty *prop = g_malloc(sizeof(*prop));
> gchar *full_type;
>
> - prop->child = child;
> + prop->childp = child;
> + prop->child = *child;
> prop->check = check;
> prop->flags = flags;
>
> @@ -1227,7 +1272,7 @@
>
> if (object_property_is_link(prop)) {
> LinkProperty *lprop = prop->opaque;
> - return *lprop->child;
> + return lprop->child;
> } else if (object_property_is_child(prop)) {
> return prop->opaque;
> } else {
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command
2014-06-04 17:52 ` [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command mtosatti
@ 2014-06-17 12:32 ` Michael S. Tsirkin
2014-06-17 13:12 ` Eric Blake
1 sibling, 0 replies; 7+ messages in thread
From: Michael S. Tsirkin @ 2014-06-17 12:32 UTC (permalink / raw)
To: mtosatti; +Cc: gleb, mprivozn, pbonzini, qemu-devel, armbru
On Wed, Jun 04, 2014 at 02:52:01PM -0300, mtosatti@redhat.com wrote:
> It is necessary to reset RTC interrupt reinjection backlog if
> guest time is synchronized via a different mechanism, such as
> QGA's guest-set-time command.
>
> Failing to do so causes both corrections to be applied (summed),
> resulting in an incorrect guest time.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
>
> ---
> hw/timer/mc146818rtc.c | 22 ++++++++++++++++++++++
> qapi-schema.json | 12 ++++++++++++
> qmp-commands.hx | 23 +++++++++++++++++++++++
> 3 files changed, 57 insertions(+)
>
> Index: qemu/hw/timer/mc146818rtc.c
> ===================================================================
> --- qemu.orig/hw/timer/mc146818rtc.c 2014-06-02 23:14:09.570443599 -0300
> +++ qemu/hw/timer/mc146818rtc.c 2014-06-02 23:14:11.707436729 -0300
> @@ -26,6 +26,7 @@
> #include "sysemu/sysemu.h"
> #include "hw/timer/mc146818rtc.h"
> #include "qapi/visitor.h"
> +#include "qmp-commands.h"
>
> #ifdef TARGET_I386
> #include "hw/i386/apic.h"
> @@ -84,6 +85,9 @@
> Notifier clock_reset_notifier;
> LostTickPolicy lost_tick_policy;
> Notifier suspend_notifier;
> +#ifdef TARGET_I386
> + QLIST_ENTRY(RTCState) link;
> +#endif
Could we avoid these ifdefs?
I'd rather maintain the link unconditionally,
even if it's unused except on x86.
> } RTCState;
>
> static void rtc_set_time(RTCState *s);
> @@ -522,6 +526,20 @@
> rtc_from_bcd(s, s->cmos_data[RTC_CENTURY]) * 100 - 1900;
> }
>
> +#ifdef TARGET_I386
> +static QLIST_HEAD(, RTCState) rtc_devices =
> + QLIST_HEAD_INITIALIZER(rtc_devices);
> +
> +void qmp_rtc_reset_reinjection(Error **errp)
> +{
> + RTCState *s;
> +
> + QLIST_FOREACH(s, &rtc_devices, link) {
> + s->irq_coalesced = 0;
> + }
> +}
> +#endif
> +
> static void rtc_set_time(RTCState *s)
> {
> struct tm tm;
> @@ -911,6 +929,10 @@
> } else {
> isa_init_irq(isadev, &s->irq, RTC_ISA_IRQ);
> }
> +#ifdef TARGET_I386
> + QLIST_INSERT_HEAD(&rtc_devices, s, link);
> +#endif
> +
> return isadev;
> }
>
> Index: qemu/qapi-schema.json
> ===================================================================
> --- qemu.orig/qapi-schema.json 2014-06-02 23:14:09.570443599 -0300
> +++ qemu/qapi-schema.json 2014-06-02 23:14:11.709436722 -0300
> @@ -4722,3 +4722,15 @@
> 'btn' : 'InputBtnEvent',
> 'rel' : 'InputMoveEvent',
> 'abs' : 'InputMoveEvent' } }
> +
> +##
> +# @rtc-reset-reinjection
> +#
> +# This command will reset the RTC interrupt reinjection backlog.
> +# Can be used if another mechanism to synchronize guest time
> +# is in effect, for example QEMU guest agent's guest-set-time
> +# command.
> +#
> +# Since: 2.1
> +##
> +{ 'command': 'rtc-reset-reinjection' }
> Index: qemu/qmp-commands.hx
> ===================================================================
> --- qemu.orig/qmp-commands.hx 2014-06-02 23:14:09.570443599 -0300
> +++ qemu/qmp-commands.hx 2014-06-02 23:14:11.710436719 -0300
> @@ -3572,3 +3572,26 @@
> } } ] }
>
> EQMP
> +
> +#if defined (TARGET_I386)
> + {
> + .name = "rtc-reset-reinjection",
> + .args_type = "",
> + .mhandler.cmd_new = qmp_marshal_input_rtc_reset_reinjection,
> + },
> +#endif
> +
> +SQMP
> +rtc-reset-reinjection
> +---------------------
> +
> +Reset the RTC interrupt reinjection backlog.
> +
> +Arguments: None.
> +
> +Example:
> +
> +-> { "execute": "rtc-reset-reinjection" }
> +<- { "return": {} }
> +
> +EQMP
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command
2014-06-04 17:52 ` [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command mtosatti
2014-06-17 12:32 ` Michael S. Tsirkin
@ 2014-06-17 13:12 ` Eric Blake
1 sibling, 0 replies; 7+ messages in thread
From: Eric Blake @ 2014-06-17 13:12 UTC (permalink / raw)
To: mtosatti, qemu-devel; +Cc: gleb, pbonzini, armbru, mprivozn
[-- Attachment #1: Type: text/plain, Size: 758 bytes --]
On 06/04/2014 11:52 AM, mtosatti@redhat.com wrote:
> It is necessary to reset RTC interrupt reinjection backlog if
> guest time is synchronized via a different mechanism, such as
> QGA's guest-set-time command.
>
> Failing to do so causes both corrections to be applied (summed),
> resulting in an incorrect guest time.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
>
> ---
> hw/timer/mc146818rtc.c | 22 ++++++++++++++++++++++
> qapi-schema.json | 12 ++++++++++++
> qmp-commands.hx | 23 +++++++++++++++++++++++
> 3 files changed, 57 insertions(+)
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-06-17 13:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-04 17:52 [Qemu-devel] [patch 0/3] add QMP command to reset rtc interrupt backlog (v4) mtosatti
2014-06-04 17:52 ` [Qemu-devel] [patch 1/3] mc146818rtc: add rtc-reset-reinjection QMP command mtosatti
2014-06-17 12:32 ` Michael S. Tsirkin
2014-06-17 13:12 ` Eric Blake
2014-06-04 17:52 ` [Qemu-devel] [patch 2/3] add object_property_add_alias mtosatti
2014-06-05 11:09 ` Paolo Bonzini
2014-06-04 17:52 ` [Qemu-devel] [patch 3/3] mc146818rtc: add "rtc" link to "/machine" mtosatti
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.