<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/linux/kvm_host.h, branch v2.6.35.4</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>KVM: Let vcpu structure alignment be determined at runtime</title>
<updated>2010-05-19T08:36:29+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@redhat.com</email>
</author>
<published>2010-04-28T12:39:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0ee75bead83da4791e5cbf659806c54d8ee40f12'/>
<id>0ee75bead83da4791e5cbf659806c54d8ee40f12</id>
<content type='text'>
vmx and svm vcpus have different contents and therefore may have different
alignmment requirements.  Let each specify its required alignment.

Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
vmx and svm vcpus have different contents and therefore may have different
alignmment requirements.  Let each specify its required alignment.

Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: Get rid of dead function gva_to_page()</title>
<updated>2010-05-17T09:18:10+00:00</updated>
<author>
<name>Gui Jianfeng</name>
<email>guijianfeng@cn.fujitsu.com</email>
</author>
<published>2010-04-16T09:19:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2a059bf444dd7758ccf48f217cd981570132be85'/>
<id>2a059bf444dd7758ccf48f217cd981570132be85</id>
<content type='text'>
Nobody use gva_to_page() anymore, get rid of it.

Signed-off-by: Gui Jianfeng &lt;guijianfeng@cn.fujitsu.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nobody use gva_to_page() anymore, get rid of it.

Signed-off-by: Gui Jianfeng &lt;guijianfeng@cn.fujitsu.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: use the correct RCU API for PROVE_RCU=y</title>
<updated>2010-05-17T09:18:01+00:00</updated>
<author>
<name>Lai Jiangshan</name>
<email>laijs@cn.fujitsu.com</email>
</author>
<published>2010-04-19T09:41:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=90d83dc3d49f5101addae962ccc1b4aff66b68d8'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: limit the number of pages per memory slot</title>
<updated>2010-05-17T09:17:41+00:00</updated>
<author>
<name>Takuya Yoshikawa</name>
<email>yoshikawa.takuya@oss.ntt.co.jp</email>
</author>
<published>2010-04-13T13:47:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=660c22c425cbe14badfb3b0a0206862577701ab7'/>
<id>660c22c425cbe14badfb3b0a0206862577701ab7</id>
<content type='text'>
This patch limits the number of pages per memory slot to make
us free from extra care about type issues.

Signed-off-by: Takuya Yoshikawa &lt;yoshikawa.takuya@oss.ntt.co.jp&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch limits the number of pages per memory slot to make
us free from extra care about type issues.

Signed-off-by: Takuya Yoshikawa &lt;yoshikawa.takuya@oss.ntt.co.jp&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: Increase NR_IOBUS_DEVS limit to 200</title>
<updated>2010-04-20T10:08:30+00:00</updated>
<author>
<name>Sridhar Samudrala</name>
<email>sri@us.ibm.com</email>
</author>
<published>2010-03-30T23:48:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e80e2a60ff7914dae691345a976c80bbbff3ec74'/>
<id>e80e2a60ff7914dae691345a976c80bbbff3ec74</id>
<content type='text'>
This patch increases the current hardcoded limit of NR_IOBUS_DEVS
from 6 to 200. We are hitting this limit when creating a guest with more
than 1 virtio-net device using vhost-net backend. Each virtio-net
device requires 2 such devices to service notifications from rx/tx queues.

Signed-off-by: Sridhar Samudrala &lt;sri@us.ibm.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch increases the current hardcoded limit of NR_IOBUS_DEVS
from 6 to 200. We are hitting this limit when creating a guest with more
than 1 virtio-net device using vhost-net backend. Each virtio-net
device requires 2 such devices to service notifications from rx/tx queues.

Signed-off-by: Sridhar Samudrala &lt;sri@us.ibm.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: fix the handling of dirty bitmaps to avoid overflows</title>
<updated>2010-04-20T10:06:55+00:00</updated>
<author>
<name>Takuya Yoshikawa</name>
<email>yoshikawa.takuya@oss.ntt.co.jp</email>
</author>
<published>2010-04-12T10:35:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=87bf6e7de1134f48681fd2ce4b7c1ec45458cb6d'/>
<id>87bf6e7de1134f48681fd2ce4b7c1ec45458cb6d</id>
<content type='text'>
Int is not long enough to store the size of a dirty bitmap.

This patch fixes this problem with the introduction of a wrapper
function to calculate the sizes of dirty bitmaps.

Note: in mark_page_dirty(), we have to consider the fact that
  __set_bit() takes the offset as int, not long.

Signed-off-by: Takuya Yoshikawa &lt;yoshikawa.takuya@oss.ntt.co.jp&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Int is not long enough to store the size of a dirty bitmap.

This patch fixes this problem with the introduction of a wrapper
function to calculate the sizes of dirty bitmaps.

Note: in mark_page_dirty(), we have to consider the fact that
  __set_bit() takes the offset as int, not long.

Signed-off-by: Takuya Yoshikawa &lt;yoshikawa.takuya@oss.ntt.co.jp&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: Convert kvm-&gt;requests_lock to raw_spinlock_t</title>
<updated>2010-03-01T15:36:13+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@redhat.com</email>
</author>
<published>2010-02-18T09:25:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=70e335e16882df5b5d6971022e63c3603a1e8c23'/>
<id>70e335e16882df5b5d6971022e63c3603a1e8c23</id>
<content type='text'>
The code relies on kvm-&gt;requests_lock inhibiting preemption.

Noted by Jan Kiszka.

Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code relies on kvm-&gt;requests_lock inhibiting preemption.

Noted by Jan Kiszka.

Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: Introduce kvm_host_page_size</title>
<updated>2010-03-01T15:36:08+00:00</updated>
<author>
<name>Joerg Roedel</name>
<email>joerg.roedel@amd.com</email>
</author>
<published>2010-01-28T11:37:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8f0b1ab6fb045a1324d9435ba00c2940783b0041'/>
<id>8f0b1ab6fb045a1324d9435ba00c2940783b0041</id>
<content type='text'>
This patch introduces a generic function to find out the
host page size for a given gfn. This function is needed by
the kvm iommu code. This patch also simplifies the x86
host_mapping_level function.

Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces a generic function to find out the
host page size for a given gfn. This function is needed by
the kvm iommu code. This patch also simplifies the x86
host_mapping_level function.

Signed-off-by: Joerg Roedel &lt;joerg.roedel@amd.com&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: enable PCI multiple-segments for pass-through device</title>
<updated>2010-03-01T15:36:06+00:00</updated>
<author>
<name>Zhai, Edwin</name>
<email>edwin.zhai@intel.com</email>
</author>
<published>2010-01-29T06:38:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ab9f4ecbb6d39a18e300a0d10a4968c37404aa76'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>KVM: Lazify fpu activation and deactivation</title>
<updated>2010-03-01T15:35:50+00:00</updated>
<author>
<name>Avi Kivity</name>
<email>avi@redhat.com</email>
</author>
<published>2009-12-30T10:40:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=02daab21d94dc4cf01b2fd09863d59a436900322'/>
<id>02daab21d94dc4cf01b2fd09863d59a436900322</id>
<content type='text'>
Defer fpu deactivation as much as possible - if the guest fpu is loaded, keep
it loaded until the next heavyweight exit (where we are forced to unload it).
This reduces unnecessary exits.

We also defer fpu activation on clts; while clts signals the intent to use the
fpu, we can't be sure the guest will actually use it.

Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Defer fpu deactivation as much as possible - if the guest fpu is loaded, keep
it loaded until the next heavyweight exit (where we are forced to unload it).
This reduces unnecessary exits.

We also defer fpu activation on clts; while clts signals the intent to use the
fpu, we can't be sure the guest will actually use it.

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