[libvirt PATCH v2 3/8] conf: Introduce VIR_DOMAIN_TIMER_NAME_ARMVTIMER

Masayoshi Mizuma msys.mizuma at gmail.com
Mon Feb 10 15:43:38 UTC 2020


On Fri, Feb 07, 2020 at 03:27:03PM +0100, Andrea Bolognani wrote:
> This new timer model will be used to control the behavior of the
> virtual timer for KVM ARM/virt guests.
> 
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> ---
>  docs/schemas/domaincommon.rng | 1 +
>  src/conf/domain_conf.c        | 1 +
>  src/conf/domain_conf.h        | 1 +
>  src/libxl/libxl_conf.c        | 1 +
>  src/libxl/xen_common.c        | 1 +
>  src/qemu/qemu_command.c       | 2 ++
>  src/qemu/qemu_domain.c        | 3 +++
>  7 files changed, 10 insertions(+)
> 
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index 9577d26c2a..29b6b95357 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -1239,6 +1239,7 @@
>              <choice>
>                <value>hpet</value>
>                <value>pit</value>
> +              <value>armvtimer</value>
>              </choice>
>            </attribute>
>            <optional>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 51ae520897..78d964ed9e 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -1063,6 +1063,7 @@ VIR_ENUM_IMPL(virDomainTimerName,
>                "tsc",
>                "kvmclock",
>                "hypervclock",
> +              "armvtimer",
>  );
>  
>  VIR_ENUM_IMPL(virDomainTimerTrack,
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 2db3c19473..867a9c7661 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -1993,6 +1993,7 @@ typedef enum {
>      VIR_DOMAIN_TIMER_NAME_TSC,
>      VIR_DOMAIN_TIMER_NAME_KVMCLOCK,
>      VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK,
> +    VIR_DOMAIN_TIMER_NAME_ARMVTIMER,
>  
>      VIR_DOMAIN_TIMER_NAME_LAST
>  } virDomainTimerNameType;
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index ee6b23895c..56deca7b7c 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -359,6 +359,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
>          case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
>          case VIR_DOMAIN_TIMER_NAME_RTC:
>          case VIR_DOMAIN_TIMER_NAME_PIT:
> +        case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
>              virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>                             _("unsupported timer type (name) '%s'"),
>                             virDomainTimerNameTypeToString(clock.timers[i]->name));
> diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c
> index 415549a42c..9a385eba0d 100644
> --- a/src/libxl/xen_common.c
> +++ b/src/libxl/xen_common.c
> @@ -2182,6 +2182,7 @@ xenFormatCPUFeatures(virConfPtr conf, virDomainDefPtr def)
>          case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
>          case VIR_DOMAIN_TIMER_NAME_RTC:
>          case VIR_DOMAIN_TIMER_NAME_PIT:
> +        case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
>              virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>                             _("unsupported timer type (name) '%s'"),
>                             virDomainTimerNameTypeToString(def->clock.timers[i]->name));
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 52a74c7acf..71ae1f72e5 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -6199,6 +6199,7 @@ qemuBuildClockCommandLine(virCommandPtr cmd,
>          case VIR_DOMAIN_TIMER_NAME_TSC:
>          case VIR_DOMAIN_TIMER_NAME_KVMCLOCK:
>          case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
> +        case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
>              /* Timers above are handled when building -cpu.  */
>          case VIR_DOMAIN_TIMER_NAME_LAST:
>              break;
> @@ -6609,6 +6610,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd,
>              if (timer->frequency > 0)
>                  virBufferAsprintf(&buf, ",tsc-frequency=%lu", timer->frequency);
>              break;
> +        case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
>          case VIR_DOMAIN_TIMER_NAME_PLATFORM:
>          case VIR_DOMAIN_TIMER_NAME_PIT:
>          case VIR_DOMAIN_TIMER_NAME_RTC:
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 1b4825a539..68348464a8 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -5428,6 +5428,9 @@ qemuDomainDefValidateClockTimers(const virDomainDef *def,
>                  return -1;
>              }
>              break;
> +
> +        case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
> +            break;
>          }
>      }
>  
> -- 
> 2.24.1
> 

Reviewed-by: Masayoshi Mizuma <m.mizuma at jp.fujitsu.com>





More information about the libvir-list mailing list