[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/HVM: Avoid cache flush operations during hvm_load



>>> On 01.06.15 at 17:26, <ross.lagerwall@xxxxxxxxxx> wrote:
> --- a/xen/common/hvm/save.c
> +++ b/xen/common/hvm/save.c

This being an x86-specific problem I would think this would better be
addressed in x86-specific code. If it was to stay here, a proper
arch hook should be introduced (even if ARM isn't using this code
right now) and ...

> @@ -230,13 +233,14 @@ int hvm_load(struct domain *d, hvm_domain_context_t *h)
>              printk(XENLOG_G_ERR
>                     "HVM%d restore: save did not end with a null entry\n",
>                     d->domain_id);
> -            return -1;
> +            ret = -1;
> +            goto out;
>          }
>          
>          /* Read the typecode of the next entry  and check for the end-marker 
> */
>          desc = (struct hvm_save_descriptor *)(&h->data[h->cur]);
>          if ( desc->typecode == 0 )
> -            return 0; 
> +            goto out;
>          
>          /* Find the handler for this entry */
>          if ( (desc->typecode > HVM_SAVE_CODE_MAX) ||
> @@ -244,7 +248,8 @@ int hvm_load(struct domain *d, hvm_domain_context_t *h)
>          {
>              printk(XENLOG_G_ERR "HVM%d restore: unknown entry typecode %u\n",
>                     d->domain_id, desc->typecode);
> -            return -1;
> +            ret = -1;
> +            goto out;
>          }
>  
>          /* Load the entry */
> @@ -254,11 +259,17 @@ int hvm_load(struct domain *d, hvm_domain_context_t *h)
>          {
>              printk(XENLOG_G_ERR "HVM%d restore: failed to load entry 
> %u/%u\n",
>                     d->domain_id, desc->typecode, desc->instance);
> -            return -1;
> +            ret = -1;
> +            goto out;
>          }
>      }

... all of the goto-s should become break-s, ...

> -    /* Not reached */
> +    ASSERT_UNREACHABLE();
> +
> +out:

... eliminating the need for both of these.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.