Message ID | 1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote: > Use Xen features to figure out if we are privileged. > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > --- > arch/arm/xen/enlighten.c | 7 +++++++ > include/xen/interface/features.h | 3 +++ > 2 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c > index dc68074..2e013cf 100644 > --- a/arch/arm/xen/enlighten.c > +++ b/arch/arm/xen/enlighten.c > @@ -2,6 +2,7 @@ > #include <xen/interface/xen.h> > #include <xen/interface/memory.h> > #include <xen/platform_pci.h> > +#include <xen/features.h> > #include <asm/xen/hypervisor.h> > #include <asm/xen/hypercall.h> > #include <linux/module.h> > @@ -58,6 +59,12 @@ int __init xen_guest_init(void) > } > xen_domain_type = XEN_HVM_DOMAIN; > > + xen_setup_features(); > + if (xen_feature(XENFEAT_dom0)) > + xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED; > + else > + xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED); What happens here on platforms prior to hypervisor changeset 23735? > + > /* already setup */ > if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page) > return 0; > diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h > index b6ca39a..131a6cc 100644 > --- a/include/xen/interface/features.h > +++ b/include/xen/interface/features.h > @@ -50,6 +50,9 @@ > /* x86: pirq can be used by HVM guests */ > #define XENFEAT_hvm_pirqs 10 > > +/* operation as Dom0 is supported */ > +#define XENFEAT_dom0 11 > + > #define XENFEAT_NR_SUBMAPS 1 > > #endif /* __XEN_PUBLIC_FEATURES_H__ */
On Fri, 27 Jul 2012, Ian Campbell wrote: > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote: > > Use Xen features to figure out if we are privileged. > > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg. > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > --- > > arch/arm/xen/enlighten.c | 7 +++++++ > > include/xen/interface/features.h | 3 +++ > > 2 files changed, 10 insertions(+), 0 deletions(-) > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c > > index dc68074..2e013cf 100644 > > --- a/arch/arm/xen/enlighten.c > > +++ b/arch/arm/xen/enlighten.c > > @@ -2,6 +2,7 @@ > > #include <xen/interface/xen.h> > > #include <xen/interface/memory.h> > > #include <xen/platform_pci.h> > > +#include <xen/features.h> > > #include <asm/xen/hypervisor.h> > > #include <asm/xen/hypercall.h> > > #include <linux/module.h> > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void) > > } > > xen_domain_type = XEN_HVM_DOMAIN; > > > > + xen_setup_features(); > > + if (xen_feature(XENFEAT_dom0)) > > + xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED; > > + else > > + xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED); > > What happens here on platforms prior to hypervisor changeset 23735? It wouldn't work. Considering that we are certainly not going to backport ARM support to Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2, do we really need to support the Xen unstable changesets between ARM was introduced and XENFEAT_dom0 appeared?
On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote: > On Fri, 27 Jul 2012, Ian Campbell wrote: > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote: > > > Use Xen features to figure out if we are privileged. > > > > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg. > > > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > > --- > > > arch/arm/xen/enlighten.c | 7 +++++++ > > > include/xen/interface/features.h | 3 +++ > > > 2 files changed, 10 insertions(+), 0 deletions(-) > > > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c > > > index dc68074..2e013cf 100644 > > > --- a/arch/arm/xen/enlighten.c > > > +++ b/arch/arm/xen/enlighten.c > > > @@ -2,6 +2,7 @@ > > > #include <xen/interface/xen.h> > > > #include <xen/interface/memory.h> > > > #include <xen/platform_pci.h> > > > +#include <xen/features.h> > > > #include <asm/xen/hypervisor.h> > > > #include <asm/xen/hypercall.h> > > > #include <linux/module.h> > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void) > > > } > > > xen_domain_type = XEN_HVM_DOMAIN; > > > > > > + xen_setup_features(); > > > + if (xen_feature(XENFEAT_dom0)) > > > + xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED; > > > + else > > > + xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED); > > > > What happens here on platforms prior to hypervisor changeset 23735? > > It wouldn't work. > Considering that we are certainly not going to backport ARM support to > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2, > do we really need to support the Xen unstable changesets between ARM was > introduced and XENFEAT_dom0 appeared? Sorry, I missed the "arm" in the path. Ian.
On Fri, Jul 27, 2012 at 03:33:50PM +0100, Ian Campbell wrote: > On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote: > > On Fri, 27 Jul 2012, Ian Campbell wrote: > > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote: > > > > Use Xen features to figure out if we are privileged. > > > > > > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg. > > > > > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > > > --- > > > > arch/arm/xen/enlighten.c | 7 +++++++ > > > > include/xen/interface/features.h | 3 +++ > > > > 2 files changed, 10 insertions(+), 0 deletions(-) > > > > > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c > > > > index dc68074..2e013cf 100644 > > > > --- a/arch/arm/xen/enlighten.c > > > > +++ b/arch/arm/xen/enlighten.c > > > > @@ -2,6 +2,7 @@ > > > > #include <xen/interface/xen.h> > > > > #include <xen/interface/memory.h> > > > > #include <xen/platform_pci.h> > > > > +#include <xen/features.h> > > > > #include <asm/xen/hypervisor.h> > > > > #include <asm/xen/hypercall.h> > > > > #include <linux/module.h> > > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void) > > > > } > > > > xen_domain_type = XEN_HVM_DOMAIN; > > > > > > > > + xen_setup_features(); > > > > + if (xen_feature(XENFEAT_dom0)) > > > > + xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED; > > > > + else > > > > + xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED); > > > > > > What happens here on platforms prior to hypervisor changeset 23735? > > > > It wouldn't work. > > Considering that we are certainly not going to backport ARM support to > > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2, > > do we really need to support the Xen unstable changesets between ARM was > > introduced and XENFEAT_dom0 appeared? So should it just panic and say "AAAAAAH"? > > Sorry, I missed the "arm" in the path. > > Ian. > >
On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote: > On Fri, Jul 27, 2012 at 03:33:50PM +0100, Ian Campbell wrote: > > On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote: > > > On Fri, 27 Jul 2012, Ian Campbell wrote: > > > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote: > > > > > Use Xen features to figure out if we are privileged. > > > > > > > > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg. > > > > > > > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > > > > --- > > > > > arch/arm/xen/enlighten.c | 7 +++++++ > > > > > include/xen/interface/features.h | 3 +++ > > > > > 2 files changed, 10 insertions(+), 0 deletions(-) > > > > > > > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c > > > > > index dc68074..2e013cf 100644 > > > > > --- a/arch/arm/xen/enlighten.c > > > > > +++ b/arch/arm/xen/enlighten.c > > > > > @@ -2,6 +2,7 @@ > > > > > #include <xen/interface/xen.h> > > > > > #include <xen/interface/memory.h> > > > > > #include <xen/platform_pci.h> > > > > > +#include <xen/features.h> > > > > > #include <asm/xen/hypervisor.h> > > > > > #include <asm/xen/hypercall.h> > > > > > #include <linux/module.h> > > > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void) > > > > > } > > > > > xen_domain_type = XEN_HVM_DOMAIN; > > > > > > > > > > + xen_setup_features(); > > > > > + if (xen_feature(XENFEAT_dom0)) > > > > > + xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED; > > > > > + else > > > > > + xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED); > > > > > > > > What happens here on platforms prior to hypervisor changeset 23735? > > > > > > It wouldn't work. > > > Considering that we are certainly not going to backport ARM support to > > > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2, > > > do we really need to support the Xen unstable changesets between ARM was > > > introduced and XENFEAT_dom0 appeared? > > So should it just panic and say "AAAAAAH"? I could panic if I find out that XENFEAT_dom0 is unimplemented but actually I only get to know if it is available...
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c index dc68074..2e013cf 100644 --- a/arch/arm/xen/enlighten.c +++ b/arch/arm/xen/enlighten.c @@ -2,6 +2,7 @@ #include <xen/interface/xen.h> #include <xen/interface/memory.h> #include <xen/platform_pci.h> +#include <xen/features.h> #include <asm/xen/hypervisor.h> #include <asm/xen/hypercall.h> #include <linux/module.h> @@ -58,6 +59,12 @@ int __init xen_guest_init(void) } xen_domain_type = XEN_HVM_DOMAIN; + xen_setup_features(); + if (xen_feature(XENFEAT_dom0)) + xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED; + else + xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED); + /* already setup */ if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page) return 0; diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h index b6ca39a..131a6cc 100644 --- a/include/xen/interface/features.h +++ b/include/xen/interface/features.h @@ -50,6 +50,9 @@ /* x86: pirq can be used by HVM guests */ #define XENFEAT_hvm_pirqs 10 +/* operation as Dom0 is supported */ +#define XENFEAT_dom0 11 + #define XENFEAT_NR_SUBMAPS 1 #endif /* __XEN_PUBLIC_FEATURES_H__ */
Use Xen features to figure out if we are privileged. XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> --- arch/arm/xen/enlighten.c | 7 +++++++ include/xen/interface/features.h | 3 +++ 2 files changed, 10 insertions(+), 0 deletions(-)