|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/18] PVH xen: Introduce PVH guest type and some basic changes.
>>> On 25.06.13 at 02:01, Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> wrote:
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -644,6 +644,13 @@ int arch_set_info_guest(
> unsigned int i;
> int rc = 0, compat;
>
> + /* This removed when all patches are checked in and PVH is done. */
> + if ( is_pvh_vcpu(v) )
> + {
> + printk("PVH: You don't have the correct xen version for PVH\n");
> + return -EINVAL;
> + }
> +
As the patch doesn't add code setting guest_type to is_pvh, this is
pointless to be added here. The only logical thing, if at all, would be
an ASSERT().
> --- a/xen/include/asm-x86/desc.h
> +++ b/xen/include/asm-x86/desc.h
> @@ -38,7 +38,13 @@
>
> #ifndef __ASSEMBLY__
>
> +#ifndef NDEBUG
> +/* PVH 32bitfixme : see emulate_gate_op call from do_general_protection */
> +#define GUEST_KERNEL_RPL(d) (is_pvh_domain(d) ? ({ BUG(); 0; }) : \
> + is_pv_32bit_domain(d) ? 1 :
> 3)
> +#else
> #define GUEST_KERNEL_RPL(d) (is_pv_32bit_domain(d) ? 1 : 3)
> +#endif
As it is easily doable, please without explicit check of NDEBUG. E.g.
#define GUEST_KERNEL_RPL(d) ({ ASSERT(!is_pvh_domain(d)); \
is_pv_32bit_domain(d) ? 1 : 3;
})
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -238,6 +238,14 @@ struct mem_event_per_domain
> struct mem_event_domain access;
> };
>
> +/*
> + * PVH is a PV guest running in an HVM container. While is_hvm_* checks are
> + * false for it, it uses many of the HVM data structs.
> + */
> +enum guest_type {
> + is_pv, is_pvh, is_hvm
Pretty odd names for enumerators - it's more conventional for them
to have a prefix identifying their enumeration type in some way.
> @@ -732,8 +743,12 @@ void watchdog_domain_destroy(struct domain *d);
>
> #define VM_ASSIST(_d,_t) (test_bit((_t), &(_d)->vm_assist))
>
> -#define is_hvm_domain(d) ((d)->is_hvm)
> +#define is_pv_domain(d) ((d)->guest_type == is_pv)
> +#define is_pv_vcpu(v) (is_pv_domain(v->domain))
Even if the pre-existing is_hvm_vcpu() gives a bad example -
please properly parenthesize macro parameters.
> +#define is_hvm_domain(d) ((d)->guest_type == is_hvm)
> #define is_hvm_vcpu(v) (is_hvm_domain(v->domain))
> +#define is_pvh_domain(d) ((d)->guest_type == is_pvh)
> +#define is_pvh_vcpu(v) (is_pvh_domain(v->domain))
Same here.
Jan
> #define is_pinned_vcpu(v) ((v)->domain->is_pinned || \
> cpumask_weight((v)->cpu_affinity) == 1)
> #ifdef HAS_PASSTHROUGH
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |