Re: device-assignment deadlock

Yang, Sheng
2009-05-12T09:05:07Z

[I was kicked off from the mailing list by periodic unknown reason last
Friday... Sorry]

> Hi Sheng,
>
> I think I'm running into the following deadlock in the kvm kernel module
> when trying to use device assignment:
>
> CPU A CPU B
> kvm_vm_ioctl_deassign_dev_irq()
> mutex_lock(&kvm->lock); worker_thread()
> -> kvm_deassign_irq() ->
>kvm_assigned_dev_interrupt_work_handler()
> -> deassign_host_irq() mutex_lock(&kvm->lock);
> -> cancel_work_sync() [blocked]

> I wonder if we need finer granularity locking to avoid this.
> Suggestions? Thanks,

This part again...

I think simply move kvm_deassign_irq() out of critical region is OK, and I
also add the lock which seems missing in deassign_guest_irq(). Would post a
patch soon.

--
regards
Yang, Sheng