From: George Dunlap <george.dunlap@eu.citrix.com>
To: Jan Beulich <JBeulich@suse.com>, Tim Deegan <tim@xen.org>
Cc: Yang Z Zhang <yang.z.zhang@intel.com>,
"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
Xiantao Zhang <xiantao.zhang@intel.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH] Don't track all memory when enabling log dirty to track vram
Date: Tue, 11 Feb 2014 15:55:57 +0000 [thread overview]
Message-ID: <52FA480D.9040707@eu.citrix.com> (raw)
In-Reply-To: <52FA2C63020000780011B201@nat28.tlf.novell.com>
On 02/11/2014 12:57 PM, Jan Beulich wrote:
>>>> On 11.02.14 at 12:55, Tim Deegan <tim@xen.org> wrote:
>> At 10:59 +0000 on 11 Feb (1392112778), George Dunlap wrote:
>>> What I'm missing here is what you think a proper solution is.
>>
>> A _proper_ solution would be for the IOMMU h/w to allow restartable
>> faults, so that we can do all the usual fault-driven virtual memory
>> operations with DMA. :) In the meantime...
>
> Or maintaining the A/D bits for IOMMU side accesses too.
>
>>> It seems we have:
>>>
>>> A. Share EPT/IOMMU tables, only do log-dirty tracking on the buffer
>>> being tracked, and hope the guest doesn't DMA into video ram; DMA
>>> causes IOMMU fault. (This really shouldn't crash the host under normal
>>> circumstances; if it does it's a hardware bug.)
>>
>> Note "hope" and "shouldn't" there. :)
>>
>>> B. Never share EPT/IOMMU tables, and hope the guest doesn't DMA into
>>> video ram. DMA causes missed update to dirty bitmap, which will
>>> hopefully just cause screen corruption.
>>
>> Yep. At a cost of about 0.2% in space and some extra bookkeeping
>> (for VMs that actually have devices passed through to them).
>> The extra bookkeeping could be expensive in some cases, but basically
>> all of those cases are already incompatible with IOMMU.
>>
>>> C. Do buffer scanning rather than dirty vram tracking (SLOW)
>>> D. Don't allow both a virtual video card and pass-through
>>
>> E. Share EPT and IOMMU tables until someone turns on log-dirty mode
>> and then split them out. That one
>
> Wouldn't that be problematic in terms of memory being available,
> namely when using ballooning in Dom0?
>
>>> Given that most operating systems will probably *not* DMA into video
>>> ram, and that an IOMMU fault isn't *supposed* to be able to crash the
>>> host, 'A' seems like the most reasonable option to me.
>>
>> Meh, OK. I prefer 'B' but 'A' is better than nothing, I guess, and
>> seems to have most support from other people. On that basis this
>> patch can have my Ack.
>
> I too would consider B better than A.
I think I got a bit distracted with the "A isn't really so bad" thing.
Actually, if the overhead of not sharing tables isn't very high, then B
isn't such a bad option. In fact, B is what I expected Yang to submit
when he originally described the problem.
I was going to say, from a release perspective, B is probably the safest
option for now. But on the other hand, if we've been testing sharing
all this time, maybe switching back over to non-sharing whole-hog has
the higher risk?
Anyway, both are at least probably equal risk-wise. How easy is it to
implement?
-George
next prev parent reply other threads:[~2014-02-11 15:55 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-10 6:14 [PATCH] Don't track all memory when enabling log dirty to track vram Yang Zhang
2014-02-10 8:03 ` Tim Deegan
2014-02-10 8:15 ` Zhang, Yang Z
2014-02-11 9:02 ` Tim Deegan
2014-02-11 10:59 ` George Dunlap
2014-02-11 11:55 ` Tim Deegan
2014-02-11 12:57 ` Jan Beulich
2014-02-11 15:55 ` George Dunlap [this message]
2014-02-12 0:53 ` Zhang, Yang Z
2014-02-13 15:46 ` George Dunlap
2014-02-13 15:55 ` Jan Beulich
2014-02-13 16:20 ` Tim Deegan
2014-02-13 16:25 ` George Dunlap
2014-02-13 16:45 ` Processed: " xen
2014-02-17 10:18 ` Jan Beulich
2014-02-17 12:23 ` George Dunlap
2014-02-17 12:37 ` Jan Beulich
2014-02-17 14:51 ` George Dunlap
2014-02-17 15:05 ` Jan Beulich
2014-02-18 3:14 ` Zhang, Yang Z
2014-02-18 10:26 ` George Dunlap
2014-02-19 1:28 ` Zhang, Yang Z
2014-02-19 8:55 ` Jan Beulich
2014-02-19 11:03 ` George Dunlap
2014-02-19 11:13 ` Jan Beulich
2014-02-19 11:17 ` George Dunlap
2014-02-17 15:00 ` Jan Beulich
2014-02-18 3:25 ` Zhang, Yang Z
2014-02-18 8:45 ` Jan Beulich
2014-02-18 11:46 ` Jan Beulich
2014-02-18 15:28 ` Jan Beulich
2014-02-19 6:40 ` Xu, Dongxiao
2014-02-19 1:17 ` Zhang, Yang Z
2014-02-19 8:50 ` Jan Beulich
2014-02-18 8:30 ` Jan Beulich
2014-05-19 7:48 ` Zhang, Yang Z
2014-05-19 9:03 ` Jan Beulich
2014-05-20 3:09 ` Zhang, Yang Z
2014-05-20 7:17 ` Jan Beulich
2014-05-19 13:27 ` George Dunlap
2014-05-19 13:50 ` Jan Beulich
2014-05-19 13:59 ` George Dunlap
2014-05-19 14:19 ` Jan Beulich
2014-05-20 3:13 ` Zhang, Yang Z
2014-05-20 7:20 ` Jan Beulich
2014-05-20 10:12 ` George Dunlap
2014-05-20 10:46 ` Jan Beulich
2014-05-21 1:02 ` Zhang, Yang Z
2014-05-21 7:49 ` Jan Beulich
2014-05-21 8:37 ` Zhang, Yang Z
2014-05-21 9:58 ` Jan Beulich
2014-05-23 6:42 ` Jan Beulich
2014-05-26 8:16 ` Zhang, Yang Z
2014-05-26 9:04 ` Jan Beulich
2014-05-31 1:26 ` Nakajima, Jun
2014-06-02 6:55 ` Jan Beulich
2014-06-02 14:06 ` George Dunlap
2014-06-02 14:27 ` Jan Beulich
2014-06-02 15:03 ` George Dunlap
2014-02-10 10:42 ` Andrew Cooper
2014-02-10 16:13 ` George Dunlap
2014-02-10 16:30 ` Processed: " xen
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=52FA480D.9040707@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.org \
--cc=xiantao.zhang@intel.com \
--cc=yang.z.zhang@intel.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 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.