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

Re: [Xen-devel] [PATCH v4 3/3] Revert "x86/hvm: wait for at least one ioreq server to be enabled"



> -----Original Message-----
> From: Wei Liu [mailto:wei.liu2@xxxxxxxxxx]
> Sent: 09 April 2015 19:49
> To: xen-devel@xxxxxxxxxxxxx
> Cc: Ian Campbell; Ian Jackson; Wei Liu; Paul Durrant; Jan Beulich
> Subject: [PATCH v4 3/3] Revert "x86/hvm: wait for at least one ioreq server
> to be enabled"
> 
> This reverts commit dd748d128d86996592afafea02e578cc7d4e6d42.
> 
> We don't need this workaround anymore since we have fixed the toolstack
> interlock problem that affects stubdom.
> 
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> Cc: Paul Durrant <Paul.Durrant@xxxxxxxxxx>

Assuming the toolstack bits are ok, I'm happy with this.

Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

> Cc: Jan Beulich <JBeulich@xxxxxxxx>
> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
>  xen/arch/x86/hvm/hvm.c           | 21 ---------------------
>  xen/include/asm-x86/hvm/domain.h |  1 -
>  2 files changed, 22 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index bfde380..8b62296 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -893,13 +893,6 @@ static void hvm_ioreq_server_enable(struct
> hvm_ioreq_server *s,
> 
>    done:
>      spin_unlock(&s->lock);
> -
> -    /* This check is protected by the domain ioreq server lock. */
> -    if ( d->arch.hvm_domain.ioreq_server.waiting )
> -    {
> -        d->arch.hvm_domain.ioreq_server.waiting = 0;
> -        domain_unpause(d);
> -    }
>  }
> 
>  static void hvm_ioreq_server_disable(struct hvm_ioreq_server *s,
> @@ -1451,20 +1444,6 @@ int hvm_domain_initialise(struct domain *d)
> 
>      spin_lock_init(&d->arch.hvm_domain.ioreq_server.lock);
>      INIT_LIST_HEAD(&d->arch.hvm_domain.ioreq_server.list);
> -
> -    /*
> -     * In the case where a stub domain is providing emulation for
> -     * the guest, there is no interlock in the toolstack to prevent
> -     * the guest from running before the stub domain is ready.
> -     * Hence the domain must remain paused until at least one ioreq
> -     * server is created and enabled.
> -     */
> -    if ( !is_pvh_domain(d) )
> -    {
> -        domain_pause(d);
> -        d->arch.hvm_domain.ioreq_server.waiting = 1;
> -    }
> -
>      spin_lock_init(&d->arch.hvm_domain.irq_lock);
>      spin_lock_init(&d->arch.hvm_domain.uc_lock);
> 
> diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/include/asm-
> x86/hvm/domain.h
> index 0702bf5..2757c7f 100644
> --- a/xen/include/asm-x86/hvm/domain.h
> +++ b/xen/include/asm-x86/hvm/domain.h
> @@ -83,7 +83,6 @@ struct hvm_domain {
>      struct {
>          spinlock_t       lock;
>          ioservid_t       id;
> -        bool_t           waiting;
>          struct list_head list;
>      } ioreq_server;
>      struct hvm_ioreq_server *default_ioreq_server;
> --
> 1.9.1


_______________________________________________
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®.