From: Jan Kiszka <jan.kiszka@siemens.com>
To: Avi Kivity <avi@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>, kvm <kvm@vger.kernel.org>,
Alex Williamson <alex.williamson@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH v4 6/9] KVM: Save/restore state of assigned PCI device
Date: Tue, 09 Nov 2010 14:29:31 +0100 [thread overview]
Message-ID: <4CD94CBB.8030105@siemens.com> (raw)
In-Reply-To: <4CD94021.4090705@redhat.com>
Am 09.11.2010 13:35, Avi Kivity wrote:
> On 11/08/2010 01:21 PM, Jan Kiszka wrote:
>> The guest may change states that pci_reset_function does not touch. So
>> we better save/restore the assigned device across guest usage.
>
> Why do we care? Shouldn't the next user reset the state to its taste?
Maybe he should, but are we sure this actually happens? E.g.
pci_reset_function preserves the config state, thus does not remove the
traces of guest.
> Or are you worried about information leakage?
Anyone who's worried about security should not assign the same device to
different users (host or guest) that should be isolated from each other.
You never know in what state the firmware and/or internal memory of the
device are.
Probably, anyone concerned about security should not give a device in
untrusted hands at all...
>> @@ -514,6 +515,7 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm,
>> }
>>
>> pci_reset_function(dev);
>> + pci_save_state(dev);
>>
>> match->assigned_dev_id = assigned_dev->assigned_dev_id;
>> match->host_segnr = assigned_dev->segnr;
>> @@ -544,6 +546,7 @@ out:
>> mutex_unlock(&kvm->lock);
>> return r;
>> out_list_del:
>> + pci_restore_state(dev);
>> list_del(&match->list);
>> pci_release_regions(dev);
>> out_disable:
>
> This assumes no one else calls pci_save_state()/pci_restore_state()
Correct.
> while the guest is running. Is this true? What about suspend/resume?
> (can this even work without guest assistance?)
Well, so far suspend/resume does not work at all once assigned devices
are in use. IIUC, the guest is not informed about the fact that power
will be cut off, trashing the states of its assigned devices. We would
have to signal this event to the guest and give it a chance to save the
states.
Maybe we could generate an ACPI event that corresponds to pressing a
standby button. Or we would have to signal PCI unplug events for all
assigned devices. In any case, suspend/resume of the host then becomes
dependent on guest proper reaction.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2010-11-09 13:29 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-08 11:21 [PATCH v4 0/9] KVM: Improve IRQ assignment for device passthrough Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 1/9] KVM: Fix srcu struct leakage Jan Kiszka
2010-11-08 17:00 ` Michael S. Tsirkin
2010-11-08 17:32 ` Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 2/9] KVM: Switch IRQ subsystem to SRCU Jan Kiszka
2010-11-09 10:49 ` Avi Kivity
2010-11-09 11:21 ` Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 3/9] KVM: Clear assigned guest IRQ on release Jan Kiszka
2010-11-09 10:58 ` Avi Kivity
2010-11-09 11:20 ` Jan Kiszka
2010-11-09 18:36 ` Alex Williamson
2010-11-10 6:53 ` Avi Kivity
2010-11-26 10:36 ` Michael S. Tsirkin
2010-11-08 11:21 ` [PATCH v4 4/9] KVM: Switch assigned device IRQ forwarding to threaded handler Jan Kiszka
2010-11-09 12:26 ` Avi Kivity
2010-11-09 12:36 ` Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 5/9] KVM: Refactor IRQ names of assigned devices Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 6/9] KVM: Save/restore state of assigned PCI device Jan Kiszka
2010-11-09 12:35 ` Avi Kivity
2010-11-09 13:29 ` Jan Kiszka [this message]
2010-11-09 13:36 ` Avi Kivity
2010-11-09 13:44 ` Jan Kiszka
2010-11-09 13:46 ` Avi Kivity
2010-11-09 16:41 ` Don Dutile
2010-11-08 11:21 ` [PATCH v4 7/9] KVM: Clean up kvm_vm_ioctl_assigned_device Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 8/9] KVM: Document device assigment API Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 9/9] KVM: Allow host IRQ sharing for passed-through PCI 2.3 devices Jan Kiszka
2010-11-09 13:27 ` Avi Kivity
2010-11-09 13:35 ` Jan Kiszka
2010-11-09 13:41 ` Avi Kivity
2010-11-09 14:11 ` Jan Kiszka
2010-11-09 14:20 ` Avi Kivity
2010-11-16 16:55 ` [PATCH v4 0/9] KVM: Improve IRQ assignment for device passthrough Marcelo Tosatti
2010-11-16 18:26 ` Jan Kiszka
2010-11-17 8:25 ` Avi Kivity
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=4CD94CBB.8030105@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
/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