Re: [PATCH 2/4] Expand the steal time msr to also contain the consigned time.

Rik van Riel
2013-02-06T21:15:34Z

On 02/05/2013 04:49 PM, Michael Wolf wrote:
> Expand the steal time msr to also contain the consigned time.
>
> Signed-off-by: Michael Wolf <mjw@linux.vnet.ibm.com>
> ---
> arch/x86/include/asm/paravirt.h | 4 ++--
> arch/x86/include/asm/paravirt_types.h | 2 +-
> arch/x86/kernel/kvm.c | 7 ++-----
> kernel/sched/core.c | 10 +++++++++-
> kernel/sched/cputime.c | 2 +-
> 5 files changed, 15 insertions(+), 10 deletions(-)
>
> diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
> index 5edd174..9b753ea 100644
> --- a/arch/x86/include/asm/paravirt.h
> +++ b/arch/x86/include/asm/paravirt.h
> @@ -196,9 +196,9 @@ struct static_key;
> extern struct static_key paravirt_steal_enabled;
> extern struct static_key paravirt_steal_rq_enabled;
>
> -static inline u64 paravirt_steal_clock(int cpu)
> +static inline void paravirt_steal_clock(int cpu, u64 *steal)
> {
> - return PVOP_CALL1(u64, pv_time_ops.steal_clock, cpu);
> + PVOP_VCALL2(pv_time_ops.steal_clock, cpu, steal);
> }

This may be a stupid question, but what happens if a KVM
guest with this change, runs on a kernel that still has
the old steal time interface?

What happens if the host has the new steal time interface,
but the guest uses the old interface?

Will both cases continue to work as expected with your
patch series?

If so, could you document (in the source code) why things
continue to work?