<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/kvm/mmu.c, branch v3.18.25</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.18.25</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.18.25'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2008-01-30T16:01:18+00:00</updated>
<entry>
<title>KVM: Move arch dependent files to new directory arch/x86/kvm/</title>
<updated>2008-01-30T16:01:18+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@qumranet.com</email>
</author>
<published>2007-12-16T09:02:48+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=edf884172e9828c6234b254208af04655855038d'/>
<id>urn:sha1:edf884172e9828c6234b254208af04655855038d</id>
<content type='text'>
This paves the way for multiple architecture support.  Note that while
ioapic.c could potentially be shared with ia64, it is also moved.

Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: Portability: Move mmu-related fields to kvm_arch</title>
<updated>2008-01-30T15:58:10+00:00</updated>
<author>
<name>Zhang Xiantao</name>
<email>xiantao.zhang@intel.com</email>
</author>
<published>2007-12-14T02:01:48+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f05e70ac03a6614af12194a014b338ec5594cb5c'/>
<id>urn:sha1:f05e70ac03a6614af12194a014b338ec5594cb5c</id>
<content type='text'>
This patches moves mmu-related fields to kvm_arch.

Signed-off-by: Zhang Xiantao &lt;xiantao.zhang@intel.com&gt;
Acked-by: Carsten Otte &lt;cotte@de.ibm.com&gt;
Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: Portability: Split mmu-related static inline functions to mmu.h</title>
<updated>2008-01-30T15:58:09+00:00</updated>
<author>
<name>Zhang Xiantao</name>
<email>xiantao.zhang@intel.com</email>
</author>
<published>2007-12-14T01:35:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=1d737c8a68736db36e0aa502ace9da240704c5ae'/>
<id>urn:sha1:1d737c8a68736db36e0aa502ace9da240704c5ae</id>
<content type='text'>
Since these functions need to know the details of kvm or kvm_vcpu structure,
it can't be put in x86.h.  Create mmu.h to hold them.

Signed-off-by: Zhang Xiantao &lt;xiantao.zhang@intel.com&gt;
Acked-by: Carsten Otte &lt;cotte@de.ibm.com&gt;
Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: Portability: Introduce kvm_vcpu_arch</title>
<updated>2008-01-30T15:58:09+00:00</updated>
<author>
<name>Zhang Xiantao</name>
<email>xiantao.zhang@intel.com</email>
</author>
<published>2007-12-13T15:50:52+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ad312c7c79f781c822e37effe41307503a2bb85b'/>
<id>urn:sha1:ad312c7c79f781c822e37effe41307503a2bb85b</id>
<content type='text'>
Move all the architecture-specific fields in kvm_vcpu into a new struct
kvm_vcpu_arch.

Signed-off-by: Zhang Xiantao &lt;xiantao.zhang@intel.com&gt;
Acked-by: Carsten Otte &lt;cotte@de.ibm.com&gt;
Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: MMU: Fix SMP shadow instantiation race</title>
<updated>2008-01-30T15:53:21+00:00</updated>
<author>
<name>Marcelo Tosatti</name>
<email>marcelo@kvack.org</email>
</author>
<published>2007-12-12T00:12:27+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=7819026eefee53eaaac3fdce1a2f157c7ea943fe'/>
<id>urn:sha1:7819026eefee53eaaac3fdce1a2f157c7ea943fe</id>
<content type='text'>
There is a race where VCPU0 is shadowing a pagetable entry while VCPU1
is updating it, which results in a stale shadow copy.

Fix that by comparing the contents of the cached guest pte with the
current guest pte after write-protecting the guest pagetable.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: MMU: Use mmu_set_spte() for real-mode shadows</title>
<updated>2008-01-30T15:53:21+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@qumranet.com</email>
</author>
<published>2007-12-09T16:43:00+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e833240f3c1b0b415efb14eaa102718769d5f063'/>
<id>urn:sha1:e833240f3c1b0b415efb14eaa102718769d5f063</id>
<content type='text'>
In addition to removing some duplicated code, this also handles the unlikely
case of real-mode code updating a guest page table.  This can happen when
one vcpu (in real mode) touches a second vcpu's (in protected mode) page
tables, or if a vcpu switches to real mode, touches page tables, and switches
back.

Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: MMU: Adjust mmu_set_spte() debug code for gpte removal</title>
<updated>2008-01-30T15:53:21+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@qumranet.com</email>
</author>
<published>2007-12-09T16:39:41+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=bc750ba860d978fcaac1e0db28774b1f38ae8193'/>
<id>urn:sha1:bc750ba860d978fcaac1e0db28774b1f38ae8193</id>
<content type='text'>
Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: MMU: Move set_pte() into guest paging mode independent code</title>
<updated>2008-01-30T15:53:21+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@qumranet.com</email>
</author>
<published>2007-12-09T15:40:31+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=1c4f1fd6d5692614e8dc75ee53f7be590f1e878b'/>
<id>urn:sha1:1c4f1fd6d5692614e8dc75ee53f7be590f1e878b</id>
<content type='text'>
As set_pte() no longer references either a gpte or the guest walker, we can
move it out of paging mode dependent code (which compiles twice and is
generally nasty).

Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: MMU: Fix inherited permissions for emulated guest pte updates</title>
<updated>2008-01-30T15:53:20+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@qumranet.com</email>
</author>
<published>2007-12-09T15:00:02+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=41074d07c78b086b18fc2af590caef05dbcca568'/>
<id>urn:sha1:41074d07c78b086b18fc2af590caef05dbcca568</id>
<content type='text'>
When we emulate a guest pte write, we fail to apply the correct inherited
permissions from the parent ptes.  Now that we store inherited permissions
in the shadow page, we can use that to update the pte permissions correctly.

Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
<entry>
<title>KVM: MMU: Simplify calculation of pte access</title>
<updated>2008-01-30T15:53:20+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@qumranet.com</email>
</author>
<published>2007-12-09T14:15:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=fe135d2ceb3d7dc08151b3cbad96565d02cc8676'/>
<id>urn:sha1:fe135d2ceb3d7dc08151b3cbad96565d02cc8676</id>
<content type='text'>
The nx bit is awkwardly placed in the 63rd bit position; furthermore it
has a reversed meaning compared to the other bits, which means we can't use
a bitwise and to calculate compounded access masks.

So, we simplify things by creating a new 3-bit exec/write/user access word,
and doing all calculations in that.

Signed-off-by: Avi Kivity &lt;avi@qumranet.com&gt;
</content>
</entry>
</feed>
