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

Re: [Xen-devel] Hit ASSERT in kill_timer function



>>> On 30.04.14 at 16:40, <julien.grall@xxxxxxxxxx> wrote:
> I played a bit with the function vcpu_initialize on ARM.
> If it fails, it will likely crash Xen with the following stack trace:
> 
> (XEN) Xen BUG at 
> /local/home/julien/works/arndale/xen/xen/include/xen/list.h:175
> ...
> (XEN) Xen call trace:
> (XEN)    [<002457e0>] __bug+0x2c/0x44 (PC)
> (XEN)    [<002457e0>] __bug+0x2c/0x44 (LR)
> (XEN)    [<00231cb0>] kill_timer+0x1bc/0x364
> (XEN)    [<002296e4>] sched_destroy_vcpu+0x1c/0x14c
> (XEN)    [<002081d8>] alloc_vcpu+0x17c/0x270
> (XEN)    [<00206a10>] do_domctl+0xa74/0x11f4
> (XEN)    [<00254698>] do_trap_hypervisor+0x7f0/0xb44
> (XEN)    [<00257110>] return_from_trap+0/0x4
> 
> It's easily reproductible on ARM with this small patch:
> 
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index ccccb77..7ada03f 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -473,6 +473,9 @@ int vcpu_initialise(struct vcpu *v)
>      if ( (rc = vcpu_vtimer_init(v)) != 0 )
>          return rc;
>  
> +    if ( v->domain->domain_id != 0 )
> +        return -EFAULT;
> +
>      return rc;
>  }
> 
> I guess we forget to take a lock or smth like that, but I don't know 
> enough this code.

I definitely can't reproduce this on x86 - I tried three different
variations of which vCPU(s) to fail this function on. Are you sure
you didn't corrupt something with your experiments?

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