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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox