diff mbox

[v2,04/11] xen/hvmlite: Allow HVMlite guests delay initializing grant table

Message ID 1454341137-14110-5-git-send-email-boris.ostrovsky@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Boris Ostrovsky Feb. 1, 2016, 3:38 p.m. UTC
.. just like we currently do for PVH guests

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
 arch/x86/xen/grant-table.c |    4 ++--
 drivers/xen/grant-table.c  |    8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

Comments

David Vrabel Feb. 2, 2016, 4:13 p.m. UTC | #1
On 01/02/16 15:38, Boris Ostrovsky wrote:
> .. just like we currently do for PVH guests

I think this description is wrong.  In the HVM guess the grant table
initialization is delayed, but here we want to do it immediately (since
we may have no platform PCI device to trigger it otherwise).

Otherwise,

Reviewed-by: David Vrabel <david.vrabel@citrix.com>

David

> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> ---
>  arch/x86/xen/grant-table.c |    4 ++--
>  drivers/xen/grant-table.c  |    8 ++++----
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/x86/xen/grant-table.c b/arch/x86/xen/grant-table.c
> index e079500..40ad9c2 100644
> --- a/arch/x86/xen/grant-table.c
> +++ b/arch/x86/xen/grant-table.c
> @@ -110,7 +110,7 @@ int arch_gnttab_init(unsigned long nr_shared)
>  	return arch_gnttab_valloc(&gnttab_shared_vm_area, nr_shared);
>  }
>  
> -#ifdef CONFIG_XEN_PVH
> +#ifdef CONFIG_XEN_PVHVM
>  #include <xen/balloon.h>
>  #include <xen/events.h>
>  #include <linux/slab.h>
> @@ -164,7 +164,7 @@ static int __init xlated_setup_gnttab_pages(void)
>  
>  static int __init xen_pvh_gnttab_setup(void)
>  {
> -	if (!xen_pvh_domain())
> +	if (!xen_pvh_domain() && !xen_hvmlite)
>  		return -ENODEV;
>  
>  	return xlated_setup_gnttab_pages();
> diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
> index c49f79e..9a239d5 100644
> --- a/drivers/xen/grant-table.c
> +++ b/drivers/xen/grant-table.c
> @@ -1147,13 +1147,13 @@ EXPORT_SYMBOL_GPL(gnttab_init);
>  
>  static int __gnttab_init(void)
>  {
> +	if (!xen_domain())
> +		return -ENODEV;
> +
>  	/* Delay grant-table initialization in the PV on HVM case */
> -	if (xen_hvm_domain())
> +	if (xen_hvm_domain() && !xen_hvmlite)
>  		return 0;
>  
> -	if (!xen_pv_domain())
> -		return -ENODEV;
> -
>  	return gnttab_init();
>  }
>  /* Starts after core_initcall so that xen_pvh_gnttab_setup can be called
>
Boris Ostrovsky Feb. 2, 2016, 4:49 p.m. UTC | #2
On 02/02/2016 11:13 AM, David Vrabel wrote:
> On 01/02/16 15:38, Boris Ostrovsky wrote:
>> .. just like we currently do for PVH guests
> I think this description is wrong.  In the HVM guess the grant table
> initialization is delayed, but here we want to do it immediately (since
> we may have no platform PCI device to trigger it otherwise).

Yes, it's wrong. I'll re-word it.

-boris
Luis Chamberlain Feb. 3, 2016, 6:59 p.m. UTC | #3
On Mon, Feb 01, 2016 at 10:38:50AM -0500, Boris Ostrovsky wrote:
> diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
> index c49f79e..9a239d5 100644
> --- a/drivers/xen/grant-table.c
> +++ b/drivers/xen/grant-table.c
> @@ -1147,13 +1147,13 @@ EXPORT_SYMBOL_GPL(gnttab_init);
>  
>  static int __gnttab_init(void)
>  {
> +	if (!xen_domain())
> +		return -ENODEV;
> +
>  	/* Delay grant-table initialization in the PV on HVM case */
> -	if (xen_hvm_domain())
> +	if (xen_hvm_domain() && !xen_hvmlite)
>  		return 0;
>  
> -	if (!xen_pv_domain())
> -		return -ENODEV;
> -
>  	return gnttab_init();
>  }

For instance if we had pv types generalized then this would just be a one line
addition for __gnttab_init() to support hvmlite. Much cleaner, generalizes the
extensions and gets folks thinking about the types on all calls Xen init call
sites.

  Luis
diff mbox

Patch

diff --git a/arch/x86/xen/grant-table.c b/arch/x86/xen/grant-table.c
index e079500..40ad9c2 100644
--- a/arch/x86/xen/grant-table.c
+++ b/arch/x86/xen/grant-table.c
@@ -110,7 +110,7 @@  int arch_gnttab_init(unsigned long nr_shared)
 	return arch_gnttab_valloc(&gnttab_shared_vm_area, nr_shared);
 }
 
-#ifdef CONFIG_XEN_PVH
+#ifdef CONFIG_XEN_PVHVM
 #include <xen/balloon.h>
 #include <xen/events.h>
 #include <linux/slab.h>
@@ -164,7 +164,7 @@  static int __init xlated_setup_gnttab_pages(void)
 
 static int __init xen_pvh_gnttab_setup(void)
 {
-	if (!xen_pvh_domain())
+	if (!xen_pvh_domain() && !xen_hvmlite)
 		return -ENODEV;
 
 	return xlated_setup_gnttab_pages();
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index c49f79e..9a239d5 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -1147,13 +1147,13 @@  EXPORT_SYMBOL_GPL(gnttab_init);
 
 static int __gnttab_init(void)
 {
+	if (!xen_domain())
+		return -ENODEV;
+
 	/* Delay grant-table initialization in the PV on HVM case */
-	if (xen_hvm_domain())
+	if (xen_hvm_domain() && !xen_hvmlite)
 		return 0;
 
-	if (!xen_pv_domain())
-		return -ENODEV;
-
 	return gnttab_init();
 }
 /* Starts after core_initcall so that xen_pvh_gnttab_setup can be called