From: Sheng Yang <sheng@linux.intel.com>
To: Avi Kivity <avi@redhat.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH 2/3] KVM: Use kvm_free_assigned_irq() for free irq
Date: Tue, 30 Dec 2008 19:22:51 +0800 [thread overview]
Message-ID: <200812301922.51604.sheng@linux.intel.com> (raw)
In-Reply-To: <495A030B.1040302@redhat.com>
On Tuesday 30 December 2008 19:16:27 Avi Kivity wrote:
> Sheng Yang wrote:
> >> This will call cancel_work_sync(), which may wait upon kvm->lock, which
> >> I think we hold here -> deadlock.
> >>
> >> I think that the current code has even bigger problems (races), since a
> >> scheduled work can arrive after the interrupt has been freed and
> >> reallocated.
> >
> > For the race problem, how about put a cancel_work_sync() for all devices
> > at the beginning of kvm_destroy_vm? Something named
> > kvm_arch_cancel_work_sync...
>
> There is no race at destroy time since the work_struct has a reference
> on struct kvm. So destruction is only triggered after the last interrupt.
>
> (but what if we get another interrupt immediately afterwards?!)
I don't like that reference, I think we can get it done more elegantly...
Yes, for MSI, we didn't disable interrupt, so got trouble.
So still, how about deal with this at the beginning of kvm_destory_vm? Discard
currently reference count. In the function, disable all known interrupt(and
result some nested disabled but we would free them later), then
cancel_work_sync(). At this time, I think the state is legal(at least
workable).
--
regards
Yang, Sheng
next prev parent reply other threads:[~2008-12-30 11:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-30 5:49 [0/3][RESEND] Device assignment code clean up and MSI disable support Sheng Yang
2008-12-30 5:49 ` [PATCH 1/3] KVM: Add MSI_ACTION flag for assigned irq Sheng Yang
2008-12-30 10:19 ` Avi Kivity
2008-12-30 10:26 ` Sheng Yang
2008-12-30 10:31 ` Avi Kivity
2008-12-30 10:34 ` Sheng Yang
2008-12-30 10:41 ` Avi Kivity
2008-12-30 10:48 ` Sheng Yang
2008-12-30 5:49 ` [PATCH 2/3] KVM: Use kvm_free_assigned_irq() for free irq Sheng Yang
2008-12-30 10:28 ` Avi Kivity
2008-12-30 11:11 ` Sheng Yang
2008-12-30 11:16 ` Avi Kivity
2008-12-30 11:22 ` Sheng Yang [this message]
2008-12-30 11:27 ` Avi Kivity
2008-12-30 5:49 ` [PATCH 3/3] KVM: Add support to disable MSI for assigned device Sheng Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200812301922.51604.sheng@linux.intel.com \
--to=sheng@linux.intel.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.