* [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum
@ 2017-09-07 8:05 Michal Privoznik
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum Michal Privoznik
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Michal Privoznik @ 2017-09-07 8:05 UTC (permalink / raw)
To: qemu-devel; +Cc: armbru, eblake
diff to v4:
- in 3/3 compare passed action string case insensitively to the qapi enum
Michal Privoznik (3):
qapi: Rename WatchdogExpirationAction enum
watchdog.h: Drop local redefinition of actions enum
watchdog: Allow setting action on the fly
hw/watchdog/watchdog.c | 65 ++++++++++++++++++++++++-----------------------
hw/watchdog/wdt_diag288.c | 6 ++---
include/sysemu/watchdog.h | 12 ++-------
monitor.c | 4 +--
qapi-schema.json | 9 +++++++
qapi/run-state.json | 6 ++---
6 files changed, 52 insertions(+), 50 deletions(-)
--
2.13.5
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
@ 2017-09-07 8:05 ` Michal Privoznik
2017-09-12 13:00 ` Daniel P. Berrange
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 2/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
` (4 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Michal Privoznik @ 2017-09-07 8:05 UTC (permalink / raw)
To: qemu-devel; +Cc: armbru, eblake
The new name is WatchdogAction which is shorter,
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
hw/watchdog/watchdog.c | 14 +++++++-------
monitor.c | 4 ++--
qapi/run-state.json | 6 +++---
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
index 0c5c9cde1c..358d79804d 100644
--- a/hw/watchdog/watchdog.c
+++ b/hw/watchdog/watchdog.c
@@ -109,17 +109,17 @@ void watchdog_perform_action(void)
{
switch (watchdog_action) {
case WDT_RESET: /* same as 'system_reset' in monitor */
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_RESET, &error_abort);
+ qapi_event_send_watchdog(WATCHDOG_ACTION_RESET, &error_abort);
qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
break;
case WDT_SHUTDOWN: /* same as 'system_powerdown' in monitor */
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_SHUTDOWN, &error_abort);
+ qapi_event_send_watchdog(WATCHDOG_ACTION_SHUTDOWN, &error_abort);
qemu_system_powerdown_request();
break;
case WDT_POWEROFF: /* same as 'quit' command in monitor */
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_POWEROFF, &error_abort);
+ qapi_event_send_watchdog(WATCHDOG_ACTION_POWEROFF, &error_abort);
exit(0);
case WDT_PAUSE: /* same as 'stop' command in monitor */
@@ -127,21 +127,21 @@ void watchdog_perform_action(void)
* you would get a deadlock. Bypass the problem.
*/
qemu_system_vmstop_request_prepare();
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_PAUSE, &error_abort);
+ qapi_event_send_watchdog(WATCHDOG_ACTION_PAUSE, &error_abort);
qemu_system_vmstop_request(RUN_STATE_WATCHDOG);
break;
case WDT_DEBUG:
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_DEBUG, &error_abort);
+ qapi_event_send_watchdog(WATCHDOG_ACTION_DEBUG, &error_abort);
fprintf(stderr, "watchdog: timer fired\n");
break;
case WDT_NONE:
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_NONE, &error_abort);
+ qapi_event_send_watchdog(WATCHDOG_ACTION_NONE, &error_abort);
break;
case WDT_NMI:
- qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_INJECT_NMI,
+ qapi_event_send_watchdog(WATCHDOG_ACTION_INJECT_NMI,
&error_abort);
nmi_monitor_handle(0, NULL);
break;
diff --git a/monitor.c b/monitor.c
index 9239f7adde..e6a6675c15 100644
--- a/monitor.c
+++ b/monitor.c
@@ -3537,8 +3537,8 @@ void watchdog_action_completion(ReadLineState *rs, int nb_args, const char *str)
return;
}
readline_set_completion_index(rs, strlen(str));
- for (i = 0; i < WATCHDOG_EXPIRATION_ACTION__MAX; i++) {
- add_completion_option(rs, str, WatchdogExpirationAction_str(i));
+ for (i = 0; i < WATCHDOG_ACTION__MAX; i++) {
+ add_completion_option(rs, str, WatchdogAction_str(i));
}
}
diff --git a/qapi/run-state.json b/qapi/run-state.json
index d36ff49834..bca46a8785 100644
--- a/qapi/run-state.json
+++ b/qapi/run-state.json
@@ -253,10 +253,10 @@
#
##
{ 'event': 'WATCHDOG',
- 'data': { 'action': 'WatchdogExpirationAction' } }
+ 'data': { 'action': 'WatchdogAction' } }
##
-# @WatchdogExpirationAction:
+# @WatchdogAction:
#
# An enumeration of the actions taken when the watchdog device's timer is
# expired
@@ -279,7 +279,7 @@
#
# Since: 2.1
##
-{ 'enum': 'WatchdogExpirationAction',
+{ 'enum': 'WatchdogAction',
'data': [ 'reset', 'shutdown', 'poweroff', 'pause', 'debug', 'none',
'inject-nmi' ] }
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v5 2/3] watchdog.h: Drop local redefinition of actions enum
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum Michal Privoznik
@ 2017-09-07 8:05 ` Michal Privoznik
2017-09-12 13:02 ` Daniel P. Berrange
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly Michal Privoznik
` (3 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Michal Privoznik @ 2017-09-07 8:05 UTC (permalink / raw)
To: qemu-devel; +Cc: armbru, eblake
We already have enum that enumerates all the actions that a
watchdog can take when hitting its timeout: WatchdogAction.
Use that instead of inventing our own.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
hw/watchdog/watchdog.c | 45 ++++++++++++++++++++-------------------------
hw/watchdog/wdt_diag288.c | 6 +++---
include/sysemu/watchdog.h | 12 ++----------
3 files changed, 25 insertions(+), 38 deletions(-)
diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
index 358d79804d..0d3eeed187 100644
--- a/hw/watchdog/watchdog.c
+++ b/hw/watchdog/watchdog.c
@@ -30,7 +30,7 @@
#include "hw/nmi.h"
#include "qemu/help_option.h"
-static int watchdog_action = WDT_RESET;
+static WatchdogAction watchdog_action = WATCHDOG_ACTION_RESET;
static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
void watchdog_add_model(WatchdogTimerModel *model)
@@ -77,27 +77,19 @@ int select_watchdog(const char *p)
int select_watchdog_action(const char *p)
{
- if (strcasecmp(p, "reset") == 0)
- watchdog_action = WDT_RESET;
- else if (strcasecmp(p, "shutdown") == 0)
- watchdog_action = WDT_SHUTDOWN;
- else if (strcasecmp(p, "poweroff") == 0)
- watchdog_action = WDT_POWEROFF;
- else if (strcasecmp(p, "pause") == 0)
- watchdog_action = WDT_PAUSE;
- else if (strcasecmp(p, "debug") == 0)
- watchdog_action = WDT_DEBUG;
- else if (strcasecmp(p, "none") == 0)
- watchdog_action = WDT_NONE;
- else if (strcasecmp(p, "inject-nmi") == 0)
- watchdog_action = WDT_NMI;
- else
- return -1;
+ int action;
+ char *qapi_value;
+ qapi_value = g_ascii_strdown(p, -1);
+ action = qapi_enum_parse(&WatchdogAction_lookup, qapi_value, -1, NULL);
+ g_free(qapi_value);
+ if (action < 0)
+ return -1;
+ watchdog_action = action;
return 0;
}
-int get_watchdog_action(void)
+WatchdogAction get_watchdog_action(void)
{
return watchdog_action;
}
@@ -108,21 +100,21 @@ int get_watchdog_action(void)
void watchdog_perform_action(void)
{
switch (watchdog_action) {
- case WDT_RESET: /* same as 'system_reset' in monitor */
+ case WATCHDOG_ACTION_RESET: /* same as 'system_reset' in monitor */
qapi_event_send_watchdog(WATCHDOG_ACTION_RESET, &error_abort);
qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
break;
- case WDT_SHUTDOWN: /* same as 'system_powerdown' in monitor */
+ case WATCHDOG_ACTION_SHUTDOWN: /* same as 'system_powerdown' in monitor */
qapi_event_send_watchdog(WATCHDOG_ACTION_SHUTDOWN, &error_abort);
qemu_system_powerdown_request();
break;
- case WDT_POWEROFF: /* same as 'quit' command in monitor */
+ case WATCHDOG_ACTION_POWEROFF: /* same as 'quit' command in monitor */
qapi_event_send_watchdog(WATCHDOG_ACTION_POWEROFF, &error_abort);
exit(0);
- case WDT_PAUSE: /* same as 'stop' command in monitor */
+ case WATCHDOG_ACTION_PAUSE: /* same as 'stop' command in monitor */
/* In a timer callback, when vm_stop calls qemu_clock_enable
* you would get a deadlock. Bypass the problem.
*/
@@ -131,19 +123,22 @@ void watchdog_perform_action(void)
qemu_system_vmstop_request(RUN_STATE_WATCHDOG);
break;
- case WDT_DEBUG:
+ case WATCHDOG_ACTION_DEBUG:
qapi_event_send_watchdog(WATCHDOG_ACTION_DEBUG, &error_abort);
fprintf(stderr, "watchdog: timer fired\n");
break;
- case WDT_NONE:
+ case WATCHDOG_ACTION_NONE:
qapi_event_send_watchdog(WATCHDOG_ACTION_NONE, &error_abort);
break;
- case WDT_NMI:
+ case WATCHDOG_ACTION_INJECT_NMI:
qapi_event_send_watchdog(WATCHDOG_ACTION_INJECT_NMI,
&error_abort);
nmi_monitor_handle(0, NULL);
break;
+
+ default:
+ assert(0);
}
}
diff --git a/hw/watchdog/wdt_diag288.c b/hw/watchdog/wdt_diag288.c
index 47f289216a..1475743527 100644
--- a/hw/watchdog/wdt_diag288.c
+++ b/hw/watchdog/wdt_diag288.c
@@ -57,9 +57,9 @@ static void diag288_timer_expired(void *dev)
* the BQL; reset before triggering the action to avoid races with
* diag288 instructions. */
switch (get_watchdog_action()) {
- case WDT_DEBUG:
- case WDT_NONE:
- case WDT_PAUSE:
+ case WATCHDOG_ACTION_DEBUG:
+ case WATCHDOG_ACTION_NONE:
+ case WATCHDOG_ACTION_PAUSE:
break;
default:
wdt_diag288_reset(dev);
diff --git a/include/sysemu/watchdog.h b/include/sysemu/watchdog.h
index 72a4da07a6..677ace3945 100644
--- a/include/sysemu/watchdog.h
+++ b/include/sysemu/watchdog.h
@@ -23,15 +23,7 @@
#define QEMU_WATCHDOG_H
#include "qemu/queue.h"
-
-/* Possible values for action parameter. */
-#define WDT_RESET 1 /* Hard reset. */
-#define WDT_SHUTDOWN 2 /* Shutdown. */
-#define WDT_POWEROFF 3 /* Quit. */
-#define WDT_PAUSE 4 /* Pause. */
-#define WDT_DEBUG 5 /* Prints a message and continues running. */
-#define WDT_NONE 6 /* Do nothing. */
-#define WDT_NMI 7 /* Inject nmi into the guest. */
+#include "qapi-types.h"
struct WatchdogTimerModel {
QLIST_ENTRY(WatchdogTimerModel) entry;
@@ -46,7 +38,7 @@ typedef struct WatchdogTimerModel WatchdogTimerModel;
/* in hw/watchdog.c */
int select_watchdog(const char *p);
int select_watchdog_action(const char *action);
-int get_watchdog_action(void);
+WatchdogAction get_watchdog_action(void);
void watchdog_add_model(WatchdogTimerModel *model);
void watchdog_perform_action(void);
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum Michal Privoznik
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 2/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
@ 2017-09-07 8:05 ` Michal Privoznik
2017-09-12 13:04 ` Daniel P. Berrange
2017-09-07 13:35 ` [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Eric Blake
` (2 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Michal Privoznik @ 2017-09-07 8:05 UTC (permalink / raw)
To: qemu-devel; +Cc: armbru, eblake
Currently, the only time that users can set watchdog action is at
the start as all we expose is this -watchdog-action command line
argument. This is suboptimal when users want to plug the device
later via monitor. Alternatively, they might want to change the
action for already existing device on the fly.
Inspired by: https://bugzilla.redhat.com/show_bug.cgi?id=1447169
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
hw/watchdog/watchdog.c | 8 +++++++-
qapi-schema.json | 9 +++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
index 0d3eeed187..670114ecfe 100644
--- a/hw/watchdog/watchdog.c
+++ b/hw/watchdog/watchdog.c
@@ -29,6 +29,7 @@
#include "qapi-event.h"
#include "hw/nmi.h"
#include "qemu/help_option.h"
+#include "qmp-commands.h"
static WatchdogAction watchdog_action = WATCHDOG_ACTION_RESET;
static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
@@ -85,7 +86,7 @@ int select_watchdog_action(const char *p)
g_free(qapi_value);
if (action < 0)
return -1;
- watchdog_action = action;
+ qmp_watchdog_set_action(action, &error_abort);
return 0;
}
@@ -142,3 +143,8 @@ void watchdog_perform_action(void)
assert(0);
}
}
+
+void qmp_watchdog_set_action(WatchdogAction action, Error **errp)
+{
+ watchdog_action = action;
+}
diff --git a/qapi-schema.json b/qapi-schema.json
index f3af2cb851..f5db401838 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3143,3 +3143,12 @@
# Since 2.9
##
{ 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' }
+
+##
+# @watchdog-set-action:
+#
+# Set watchdog action
+#
+# Since 2.11
+##
+{ 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
--
2.13.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
` (2 preceding siblings ...)
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly Michal Privoznik
@ 2017-09-07 13:35 ` Eric Blake
2017-09-07 13:47 ` Markus Armbruster
2017-09-22 13:14 ` Michal Privoznik
5 siblings, 0 replies; 12+ messages in thread
From: Eric Blake @ 2017-09-07 13:35 UTC (permalink / raw)
To: Michal Privoznik, qemu-devel; +Cc: armbru
[-- Attachment #1: Type: text/plain, Size: 858 bytes --]
On 09/07/2017 03:05 AM, Michal Privoznik wrote:
> diff to v4:
> - in 3/3 compare passed action string case insensitively to the qapi enum
>
> Michal Privoznik (3):
> qapi: Rename WatchdogExpirationAction enum
> watchdog.h: Drop local redefinition of actions enum
> watchdog: Allow setting action on the fly
Reviewed-by: Eric Blake <eblake@redhat.com>
>
> hw/watchdog/watchdog.c | 65 ++++++++++++++++++++++++-----------------------
> hw/watchdog/wdt_diag288.c | 6 ++---
> include/sysemu/watchdog.h | 12 ++-------
> monitor.c | 4 +--
> qapi-schema.json | 9 +++++++
> qapi/run-state.json | 6 ++---
> 6 files changed, 52 insertions(+), 50 deletions(-)
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
` (3 preceding siblings ...)
2017-09-07 13:35 ` [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Eric Blake
@ 2017-09-07 13:47 ` Markus Armbruster
2017-09-22 13:14 ` Michal Privoznik
5 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2017-09-07 13:47 UTC (permalink / raw)
To: Michal Privoznik; +Cc: qemu-devel
Michal Privoznik <mprivozn@redhat.com> writes:
> diff to v4:
> - in 3/3 compare passed action string case insensitively to the qapi enum
In 2/3, actually.
Series
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum Michal Privoznik
@ 2017-09-12 13:00 ` Daniel P. Berrange
0 siblings, 0 replies; 12+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 13:00 UTC (permalink / raw)
To: Michal Privoznik; +Cc: qemu-devel, armbru
On Thu, Sep 07, 2017 at 10:05:24AM +0200, Michal Privoznik wrote:
> The new name is WatchdogAction which is shorter,
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
> hw/watchdog/watchdog.c | 14 +++++++-------
> monitor.c | 4 ++--
> qapi/run-state.json | 6 +++---
> 3 files changed, 12 insertions(+), 12 deletions(-)
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 2/3] watchdog.h: Drop local redefinition of actions enum
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 2/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
@ 2017-09-12 13:02 ` Daniel P. Berrange
0 siblings, 0 replies; 12+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 13:02 UTC (permalink / raw)
To: Michal Privoznik; +Cc: qemu-devel, armbru
On Thu, Sep 07, 2017 at 10:05:25AM +0200, Michal Privoznik wrote:
> We already have enum that enumerates all the actions that a
> watchdog can take when hitting its timeout: WatchdogAction.
> Use that instead of inventing our own.
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
> hw/watchdog/watchdog.c | 45 ++++++++++++++++++++-------------------------
> hw/watchdog/wdt_diag288.c | 6 +++---
> include/sysemu/watchdog.h | 12 ++----------
> 3 files changed, 25 insertions(+), 38 deletions(-)
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly Michal Privoznik
@ 2017-09-12 13:04 ` Daniel P. Berrange
2017-10-02 6:49 ` Markus Armbruster
0 siblings, 1 reply; 12+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 13:04 UTC (permalink / raw)
To: Michal Privoznik; +Cc: qemu-devel, armbru
On Thu, Sep 07, 2017 at 10:05:26AM +0200, Michal Privoznik wrote:
> Currently, the only time that users can set watchdog action is at
> the start as all we expose is this -watchdog-action command line
> argument. This is suboptimal when users want to plug the device
> later via monitor. Alternatively, they might want to change the
> action for already existing device on the fly.
>
> Inspired by: https://bugzilla.redhat.com/show_bug.cgi?id=1447169
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
> hw/watchdog/watchdog.c | 8 +++++++-
> qapi-schema.json | 9 +++++++++
> 2 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
> index 0d3eeed187..670114ecfe 100644
> --- a/hw/watchdog/watchdog.c
> +++ b/hw/watchdog/watchdog.c
> @@ -29,6 +29,7 @@
> #include "qapi-event.h"
> #include "hw/nmi.h"
> #include "qemu/help_option.h"
> +#include "qmp-commands.h"
>
> static WatchdogAction watchdog_action = WATCHDOG_ACTION_RESET;
> static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
> @@ -85,7 +86,7 @@ int select_watchdog_action(const char *p)
> g_free(qapi_value);
> if (action < 0)
> return -1;
> - watchdog_action = action;
> + qmp_watchdog_set_action(action, &error_abort);
> return 0;
> }
>
> @@ -142,3 +143,8 @@ void watchdog_perform_action(void)
> assert(0);
> }
> }
> +
> +void qmp_watchdog_set_action(WatchdogAction action, Error **errp)
> +{
> + watchdog_action = action;
> +}
> diff --git a/qapi-schema.json b/qapi-schema.json
> index f3af2cb851..f5db401838 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -3143,3 +3143,12 @@
> # Since 2.9
> ##
> { 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' }
> +
> +##
> +# @watchdog-set-action:
> +#
> +# Set watchdog action
> +#
> +# Since 2.11
Not sure how much it matters, but the standard syntax has a ':' following
the 'Since' word
I do notice that query-vm-generation-id violates this rule though, which
I what I guess you copied ?
> +##
> +{ 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
> --
Assuming the ':' is added in next posting (or by the committer), then
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
` (4 preceding siblings ...)
2017-09-07 13:47 ` Markus Armbruster
@ 2017-09-22 13:14 ` Michal Privoznik
2017-10-02 6:54 ` Markus Armbruster
5 siblings, 1 reply; 12+ messages in thread
From: Michal Privoznik @ 2017-09-22 13:14 UTC (permalink / raw)
To: qemu-devel; +Cc: armbru
On 09/07/2017 10:05 AM, Michal Privoznik wrote:
> diff to v4:
> - in 3/3 compare passed action string case insensitively to the qapi enum
>
> Michal Privoznik (3):
> qapi: Rename WatchdogExpirationAction enum
> watchdog.h: Drop local redefinition of actions enum
> watchdog: Allow setting action on the fly
>
> hw/watchdog/watchdog.c | 65 ++++++++++++++++++++++++-----------------------
> hw/watchdog/wdt_diag288.c | 6 ++---
> include/sysemu/watchdog.h | 12 ++-------
> monitor.c | 4 +--
> qapi-schema.json | 9 +++++++
> qapi/run-state.json | 6 ++---
> 6 files changed, 52 insertions(+), 50 deletions(-)
>
Thanks for all the reviews. What do I need to get it pushed ;-)
Michal
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly
2017-09-12 13:04 ` Daniel P. Berrange
@ 2017-10-02 6:49 ` Markus Armbruster
0 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2017-10-02 6:49 UTC (permalink / raw)
To: Daniel P. Berrange; +Cc: Michal Privoznik, qemu-devel
"Daniel P. Berrange" <berrange@redhat.com> writes:
> On Thu, Sep 07, 2017 at 10:05:26AM +0200, Michal Privoznik wrote:
>> Currently, the only time that users can set watchdog action is at
>> the start as all we expose is this -watchdog-action command line
>> argument. This is suboptimal when users want to plug the device
>> later via monitor. Alternatively, they might want to change the
>> action for already existing device on the fly.
>>
>> Inspired by: https://bugzilla.redhat.com/show_bug.cgi?id=1447169
>>
>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>> ---
>> hw/watchdog/watchdog.c | 8 +++++++-
>> qapi-schema.json | 9 +++++++++
>> 2 files changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
>> index 0d3eeed187..670114ecfe 100644
>> --- a/hw/watchdog/watchdog.c
>> +++ b/hw/watchdog/watchdog.c
>> @@ -29,6 +29,7 @@
>> #include "qapi-event.h"
>> #include "hw/nmi.h"
>> #include "qemu/help_option.h"
>> +#include "qmp-commands.h"
>>
>> static WatchdogAction watchdog_action = WATCHDOG_ACTION_RESET;
>> static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
>> @@ -85,7 +86,7 @@ int select_watchdog_action(const char *p)
>> g_free(qapi_value);
>> if (action < 0)
>> return -1;
>> - watchdog_action = action;
>> + qmp_watchdog_set_action(action, &error_abort);
>> return 0;
>> }
>>
>> @@ -142,3 +143,8 @@ void watchdog_perform_action(void)
>> assert(0);
>> }
>> }
>> +
>> +void qmp_watchdog_set_action(WatchdogAction action, Error **errp)
>> +{
>> + watchdog_action = action;
>> +}
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index f3af2cb851..f5db401838 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -3143,3 +3143,12 @@
>> # Since 2.9
>> ##
>> { 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' }
>> +
>> +##
>> +# @watchdog-set-action:
>> +#
>> +# Set watchdog action
>> +#
>> +# Since 2.11
>
> Not sure how much it matters, but the standard syntax has a ':' following
> the 'Since' word
>
> I do notice that query-vm-generation-id violates this rule though, which
> I what I guess you copied ?
>
>> +##
>> +{ 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
>> --
>
> Assuming the ':' is added in next posting (or by the committer), then
I'll stick it in. I'll also fix it elsewhere in a separate patch.
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Thanks!
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum
2017-09-22 13:14 ` Michal Privoznik
@ 2017-10-02 6:54 ` Markus Armbruster
0 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2017-10-02 6:54 UTC (permalink / raw)
To: Michal Privoznik; +Cc: qemu-devel
Michal Privoznik <mprivozn@redhat.com> writes:
> On 09/07/2017 10:05 AM, Michal Privoznik wrote:
>> diff to v4:
>> - in 3/3 compare passed action string case insensitively to the qapi enum
>>
>> Michal Privoznik (3):
>> qapi: Rename WatchdogExpirationAction enum
>> watchdog.h: Drop local redefinition of actions enum
>> watchdog: Allow setting action on the fly
>>
>> hw/watchdog/watchdog.c | 65 ++++++++++++++++++++++++-----------------------
>> hw/watchdog/wdt_diag288.c | 6 ++---
>> include/sysemu/watchdog.h | 12 ++-------
>> monitor.c | 4 +--
>> qapi-schema.json | 9 +++++++
>> qapi/run-state.json | 6 ++---
>> 6 files changed, 52 insertions(+), 50 deletions(-)
>>
>
> Thanks for all the reviews. What do I need to get it pushed ;-)
Nothing, I'll take it.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-10-02 6:55 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-07 8:05 [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 1/3] qapi: Rename WatchdogExpirationAction enum Michal Privoznik
2017-09-12 13:00 ` Daniel P. Berrange
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 2/3] watchdog.h: Drop local redefinition of actions enum Michal Privoznik
2017-09-12 13:02 ` Daniel P. Berrange
2017-09-07 8:05 ` [Qemu-devel] [PATCH v5 3/3] watchdog: Allow setting action on the fly Michal Privoznik
2017-09-12 13:04 ` Daniel P. Berrange
2017-10-02 6:49 ` Markus Armbruster
2017-09-07 13:35 ` [Qemu-devel] [PATCH v5 0/3] watchdog.h: Drop local redefinition of actions enum Eric Blake
2017-09-07 13:47 ` Markus Armbruster
2017-09-22 13:14 ` Michal Privoznik
2017-10-02 6:54 ` Markus Armbruster
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).