<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/virt/kvm/iommu.c, branch v2.6.39-rc2</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v2.6.39-rc2</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v2.6.39-rc2'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2010-08-02T03:39:44Z</updated>
<entry>
<title>KVM: Use u64 for frame data types</title>
<updated>2010-08-02T03:39:44Z</updated>
<author>
<name>Joerg Roedel</name>
<email>joerg.roedel@amd.com</email>
</author>
<published>2010-07-01T14:00:12Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=5689cc53fa9d09b5bf41b1b1a7c90bd6c112ab40'/>
<id>urn:sha1:5689cc53fa9d09b5bf41b1b1a7c90bd6c112ab40</id>
<content type='text'>
For 32bit machines where the physical address width is
larger than the virtual address width the frame number types
in KVM may overflow. Fix this by changing them to u64.

[sfr: fix build on 32-bit ppc]

Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Signed-off-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Fix IOMMU memslot reference warning</title>
<updated>2010-08-01T07:47:29Z</updated>
<author>
<name>Sheng Yang</name>
<email>sheng@linux.intel.com</email>
</author>
<published>2010-07-01T07:00:50Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=95c87e2b4460a488ec7ce42f273893e410ab385a'/>
<id>urn:sha1:95c87e2b4460a488ec7ce42f273893e410ab385a</id>
<content type='text'>
This patch fixes the following warning.

===================================================
[ INFO: suspicious rcu_dereference_check() usage. ]
---------------------------------------------------
include/linux/kvm_host.h:259 invoked rcu_dereference_check() without
protection!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
no locks held by qemu-system-x86/29679.

stack backtrace:
Pid: 29679, comm: qemu-system-x86 Not tainted 2.6.35-rc3+ #200
Call Trace:
 [&lt;ffffffff810a224e&gt;] lockdep_rcu_dereference+0xa8/0xb1
 [&lt;ffffffffa018a06f&gt;] kvm_iommu_unmap_memslots+0xc9/0xde [kvm]
 [&lt;ffffffffa018a0c4&gt;] kvm_iommu_unmap_guest+0x40/0x4e [kvm]
 [&lt;ffffffffa018f772&gt;] kvm_arch_destroy_vm+0x1a/0x186 [kvm]
 [&lt;ffffffffa01800d0&gt;] kvm_put_kvm+0x110/0x167 [kvm]
 [&lt;ffffffffa0180ecc&gt;] kvm_vcpu_release+0x18/0x1c [kvm]
 [&lt;ffffffff81156f5d&gt;] fput+0x22a/0x3a0
 [&lt;ffffffff81152288&gt;] filp_close+0xb4/0xcd
 [&lt;ffffffff8106599f&gt;] put_files_struct+0x1b7/0x36b
 [&lt;ffffffff81065830&gt;] ? put_files_struct+0x48/0x36b
 [&lt;ffffffff8131ee59&gt;] ? do_raw_spin_unlock+0x118/0x160
 [&lt;ffffffff81065bc0&gt;] exit_files+0x6d/0x75
 [&lt;ffffffff81068348&gt;] do_exit+0x47d/0xc60
 [&lt;ffffffff8177e7b5&gt;] ? _raw_spin_unlock_irq+0x30/0x36
 [&lt;ffffffff81068bfa&gt;] do_group_exit+0xcf/0x134
 [&lt;ffffffff81080790&gt;] get_signal_to_deliver+0x732/0x81d
 [&lt;ffffffff81095996&gt;] ? cpu_clock+0x4e/0x60
 [&lt;ffffffff81002082&gt;] do_notify_resume+0x117/0xc43
 [&lt;ffffffff810a2fa3&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff81080d79&gt;] ? sys_rt_sigtimedwait+0x2b5/0x3bf
 [&lt;ffffffff8177d9f2&gt;] ? trace_hardirqs_off_thunk+0x3a/0x3c
 [&lt;ffffffff81003221&gt;] ? sysret_signal+0x5/0x3d
 [&lt;ffffffff8100343b&gt;] int_signal+0x12/0x17

Signed-off-by: Sheng Yang &lt;sheng@linux.intel.com&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Update Red Hat copyrights</title>
<updated>2010-08-01T07:35:51Z</updated>
<author>
<name>Avi Kivity</name>
<email>avi@redhat.com</email>
</author>
<published>2010-05-23T15:37:00Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=221d059d15f1c8bd070a63fd45cd8d2598af5f99'/>
<id>urn:sha1:221d059d15f1c8bd070a63fd45cd8d2598af5f99</id>
<content type='text'>
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: Fix order passed to iommu_unmap</title>
<updated>2010-06-09T15:48:38Z</updated>
<author>
<name>Jan Kiszka</name>
<email>jan.kiszka@siemens.com</email>
</author>
<published>2010-05-26T19:36:33Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=05b782ab951a896d7da41775999821f692dc9e01'/>
<id>urn:sha1:05b782ab951a896d7da41775999821f692dc9e01</id>
<content type='text'>
This is obviously a left-over from the the old interface taking the
size. Apparently a mostly harmless issue with the current iommu_unmap
implementation.

Signed-off-by: Jan Kiszka &lt;jan.kiszka@siemens.com&gt;
Acked-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm</title>
<updated>2010-05-22T00:16:21Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-05-22T00:16:21Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=98edb6ca4174f17a64890a02f44c211c8b44fb3c'/>
<id>urn:sha1:98edb6ca4174f17a64890a02f44c211c8b44fb3c</id>
<content type='text'>
* 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (269 commits)
  KVM: x86: Add missing locking to arch specific vcpu ioctls
  KVM: PPC: Add missing vcpu_load()/vcpu_put() in vcpu ioctls
  KVM: MMU: Segregate shadow pages with different cr0.wp
  KVM: x86: Check LMA bit before set_efer
  KVM: Don't allow lmsw to clear cr0.pe
  KVM: Add cpuid.txt file
  KVM: x86: Tell the guest we'll warn it about tsc stability
  x86, paravirt: don't compute pvclock adjustments if we trust the tsc
  x86: KVM guest: Try using new kvm clock msrs
  KVM: x86: export paravirtual cpuid flags in KVM_GET_SUPPORTED_CPUID
  KVM: x86: add new KVMCLOCK cpuid feature
  KVM: x86: change msr numbers for kvmclock
  x86, paravirt: Add a global synchronization point for pvclock
  x86, paravirt: Enable pvclock flags in vcpu_time_info structure
  KVM: x86: Inject #GP with the right rip on efer writes
  KVM: SVM: Don't allow nested guest to VMMCALL into host
  KVM: x86: Fix exception reinjection forced to true
  KVM: Fix wallclock version writing race
  KVM: MMU: Don't read pdptrs with mmu spinlock held in mmu_alloc_roots
  KVM: VMX: enable VMXON check with SMX enabled (Intel TXT)
  ...
</content>
</entry>
<entry>
<title>KVM: use the correct RCU API for PROVE_RCU=y</title>
<updated>2010-05-17T09:18:01Z</updated>
<author>
<name>Lai Jiangshan</name>
<email>laijs@cn.fujitsu.com</email>
</author>
<published>2010-04-19T09:41:23Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=90d83dc3d49f5101addae962ccc1b4aff66b68d8'/>
<id>urn:sha1:90d83dc3d49f5101addae962ccc1b4aff66b68d8</id>
<content type='text'>
The RCU/SRCU API have already changed for proving RCU usage.

I got the following dmesg when PROVE_RCU=y because we used incorrect API.
This patch coverts rcu_deference() to srcu_dereference() or family API.

===================================================
[ INFO: suspicious rcu_dereference_check() usage. ]
---------------------------------------------------
arch/x86/kvm/mmu.c:3020 invoked rcu_dereference_check() without protection!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
2 locks held by qemu-system-x86/8550:
 #0:  (&amp;kvm-&gt;slots_lock){+.+.+.}, at: [&lt;ffffffffa011a6ac&gt;] kvm_set_memory_region+0x29/0x50 [kvm]
 #1:  (&amp;(&amp;kvm-&gt;mmu_lock)-&gt;rlock){+.+...}, at: [&lt;ffffffffa012262d&gt;] kvm_arch_commit_memory_region+0xa6/0xe2 [kvm]

stack backtrace:
Pid: 8550, comm: qemu-system-x86 Not tainted 2.6.34-rc4-tip-01028-g939eab1 #27
Call Trace:
 [&lt;ffffffff8106c59e&gt;] lockdep_rcu_dereference+0xaa/0xb3
 [&lt;ffffffffa012f6c1&gt;] kvm_mmu_calculate_mmu_pages+0x44/0x7d [kvm]
 [&lt;ffffffffa012263e&gt;] kvm_arch_commit_memory_region+0xb7/0xe2 [kvm]
 [&lt;ffffffffa011a5d7&gt;] __kvm_set_memory_region+0x636/0x6e2 [kvm]
 [&lt;ffffffffa011a6ba&gt;] kvm_set_memory_region+0x37/0x50 [kvm]
 [&lt;ffffffffa015e956&gt;] vmx_set_tss_addr+0x46/0x5a [kvm_intel]
 [&lt;ffffffffa0126592&gt;] kvm_arch_vm_ioctl+0x17a/0xcf8 [kvm]
 [&lt;ffffffff810a8692&gt;] ? unlock_page+0x27/0x2c
 [&lt;ffffffff810bf879&gt;] ? __do_fault+0x3a9/0x3e1
 [&lt;ffffffffa011b12f&gt;] kvm_vm_ioctl+0x364/0x38d [kvm]
 [&lt;ffffffff81060cfa&gt;] ? up_read+0x23/0x3d
 [&lt;ffffffff810f3587&gt;] vfs_ioctl+0x32/0xa6
 [&lt;ffffffff810f3b19&gt;] do_vfs_ioctl+0x495/0x4db
 [&lt;ffffffff810e6b2f&gt;] ? fget_light+0xc2/0x241
 [&lt;ffffffff810e416c&gt;] ? do_sys_open+0x104/0x116
 [&lt;ffffffff81382d6d&gt;] ? retint_swapgs+0xe/0x13
 [&lt;ffffffff810f3ba6&gt;] sys_ioctl+0x47/0x6a
 [&lt;ffffffff810021db&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>kvm: Change kvm_iommu_map_pages to map large pages</title>
<updated>2010-03-07T17:01:11Z</updated>
<author>
<name>Joerg Roedel</name>
<email>joerg.roedel@amd.com</email>
</author>
<published>2010-01-11T15:38:18Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=fcd95807fb61e67d602610e7ff7129ed769e9fee'/>
<id>urn:sha1:fcd95807fb61e67d602610e7ff7129ed769e9fee</id>
<content type='text'>
This patch changes the implementation of of
kvm_iommu_map_pages to map the pages with the host page size
into the io virtual address space.

Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Acked-By: Avi Kivity &lt;avi@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: enable PCI multiple-segments for pass-through device</title>
<updated>2010-03-01T15:36:06Z</updated>
<author>
<name>Zhai, Edwin</name>
<email>edwin.zhai@intel.com</email>
</author>
<published>2010-01-29T06:38:44Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ab9f4ecbb6d39a18e300a0d10a4968c37404aa76'/>
<id>urn:sha1:ab9f4ecbb6d39a18e300a0d10a4968c37404aa76</id>
<content type='text'>
Enable optional parameter (default 0) - PCI segment (or domain) besides
BDF, when assigning PCI device to guest.

Signed-off-by: Zhai Edwin &lt;edwin.zhai@intel.com&gt;
Acked-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: introduce kvm-&gt;srcu and convert kvm_set_memory_region to SRCU update</title>
<updated>2010-03-01T15:35:44Z</updated>
<author>
<name>Marcelo Tosatti</name>
<email>mtosatti@redhat.com</email>
</author>
<published>2009-12-23T16:35:21Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=bc6678a33d9b952981a8e44a4f876c3ad64ca4d8'/>
<id>urn:sha1:bc6678a33d9b952981a8e44a4f876c3ad64ca4d8</id>
<content type='text'>
Use two steps for memslot deletion: mark the slot invalid (which stops
instantiation of new shadow pages for that slot, but allows destruction),
then instantiate the new empty slot.

Also simplifies kvm_handle_hva locking.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: use gfn_to_pfn_memslot in kvm_iommu_map_pages</title>
<updated>2010-03-01T15:35:44Z</updated>
<author>
<name>Marcelo Tosatti</name>
<email>mtosatti@redhat.com</email>
</author>
<published>2009-12-23T16:35:20Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=3ad26d8139a82b0510b1e0435ee82ae461d33401'/>
<id>urn:sha1:3ad26d8139a82b0510b1e0435ee82ae461d33401</id>
<content type='text'>
So its possible to iommu map a memslot before making it visible to
kvm.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
</entry>
</feed>
