qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] watchdog: Allow setting action on the fly


From: Michal Privoznik
Subject: Re: [Qemu-devel] [PATCH] watchdog: Allow setting action on the fly
Date: Tue, 5 Sep 2017 13:54:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0

On 09/05/2017 01:50 PM, Markus Armbruster wrote:
> Michal Privoznik <address@hidden> writes:
> 
>> 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 <address@hidden>
>> ---
>>  hw/watchdog/watchdog.c | 9 +++++++++
>>  qapi-schema.json       | 9 +++++++++
>>  2 files changed, 18 insertions(+)
>>
>> diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
>> index 0c5c9cde1c..971f05c61a 100644
>> --- a/hw/watchdog/watchdog.c
>> +++ b/hw/watchdog/watchdog.c
>> @@ -29,6 +29,8 @@
>>  #include "qapi-event.h"
>>  #include "hw/nmi.h"
>>  #include "qemu/help_option.h"
>> +#include "qmp-commands.h"
>> +#include "qapi/qmp/qerror.h"
>>  
>>  static int watchdog_action = WDT_RESET;
>>  static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
>> @@ -147,3 +149,10 @@ void watchdog_perform_action(void)
>>          break;
>>      }
>>  }
>> +
>> +void qmp_watchdog_set_action(const char *action, Error **errp)
>> +{
>> +    if (select_watchdog_action(action) == -1) {
>> +        error_setg(errp, QERR_INVALID_PARAMETER, action);
>> +    }
>> +}
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 802ea53d00..be81ffc0bb 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -6539,3 +6539,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': 'str'} }
> 
> @action needs to be a QAPI enum.  It'll replace the #defines in
> watchdog.  select_watchdog_action() then calls qapi_enum_parse() to map
> string to enum, and qmp_watchdog_set_action() to make the actual change.

Oh, okay. Sure, I can do that. I guess it makes the set of actions
introspectable?

Michal



reply via email to

[Prev in Thread] Current Thread [Next in Thread]