Xiao Guangrong
87da7e66a4
KVM: x86: fix vcpu->mmio_fragments overflow
...
After commit b3356bf0dbb349 (KVM: emulator: optimize "rep ins" handling),
the pieces of io data can be collected and write them to the guest memory
or MMIO together
Unfortunately, kvm splits the mmio access into 8 bytes and store them to
vcpu->mmio_fragments. If the guest uses "rep ins" to move large data, it
will cause vcpu->mmio_fragments overflow
The bug can be exposed by isapc (-M isapc):
[23154.818733] general protection fault: 0000 [#1 ] SMP DEBUG_PAGEALLOC
[ ......]
[23154.858083] Call Trace:
[23154.859874] [<ffffffffa04f0e17>] kvm_get_cr8+0x1d/0x28 [kvm]
[23154.861677] [<ffffffffa04fa6d4>] kvm_arch_vcpu_ioctl_run+0xcda/0xe45 [kvm]
[23154.863604] [<ffffffffa04f5a1a>] ? kvm_arch_vcpu_load+0x17b/0x180 [kvm]
Actually, we can use one mmio_fragment to store a large mmio access then
split it when we pass the mmio-exit-info to userspace. After that, we only
need two entries to store mmio info for the cross-mmio pages access
Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2012-10-31 20:36:30 -02:00
..
2012-10-02 17:26:42 -07:00
2012-10-09 15:04:25 +01:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-08 06:38:18 +09:00
2012-10-02 18:01:25 +01:00
2012-10-17 10:00:29 -03:00
2012-10-09 09:48:44 +01:00
2012-10-11 10:27:51 +09:00
2012-10-19 16:12:38 +01:00
2012-10-02 17:16:10 -07:00
2012-10-17 12:31:15 +01:00
2012-10-23 16:32:16 +09:00
2012-09-30 20:33:43 -07:00
2012-10-17 12:31:15 +01:00
2012-10-09 15:04:25 +01:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-03 13:45:43 -07:00
2012-10-13 11:27:59 +09:00
2012-10-07 17:29:24 +09:00
2012-09-28 14:45:07 +01:00
2012-10-24 18:00:17 -07:00
2012-10-17 12:31:15 +01:00
2012-10-17 12:31:15 +01:00
2012-10-13 14:15:08 -07:00
2012-10-17 12:31:15 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-08 13:50:19 +10:30
2012-10-08 13:50:20 +10:30
2012-10-08 13:50:19 +10:30
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:46 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-02 10:52:28 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:51 +09:00
2012-10-10 12:02:25 +09:00
2012-10-12 10:27:27 +09:00
2012-10-13 10:46:48 +01:00
2012-10-12 06:37:36 -05:00
2012-10-19 14:07:47 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-02 18:32:35 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-02 18:01:25 +01:00
2012-09-27 15:35:23 +05:30
2012-10-24 15:57:14 -07:00
2012-10-13 10:46:48 +01:00
2012-09-29 12:21:03 -07:00
2012-09-29 12:21:03 -07:00
2012-10-16 18:49:15 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-22 11:28:10 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-09-26 21:10:00 -04:00
2012-09-26 22:20:08 -04:00
2012-10-13 10:46:48 +01:00
2012-09-28 11:47:42 +02:00
2012-10-13 10:46:48 +01:00
2012-10-16 13:37:17 -04:00
2012-10-13 10:46:48 +01:00
2012-10-12 00:32:03 -04:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-06 03:04:57 +09:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:23:01 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:23:02 +09:00
2012-10-06 13:14:36 +02:00
2012-10-13 10:46:48 +01:00
2012-10-05 22:23:54 +02:00
2012-10-05 22:23:51 +02:00
2012-10-06 13:43:38 +02:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-06 03:04:56 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-06 03:04:37 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:40 +09:00
2012-10-09 16:22:39 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-01 09:06:36 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-12 22:17:48 +09:00
2012-10-13 10:46:48 +01:00
2012-10-17 12:31:15 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-08 13:49:48 +10:30
2012-10-13 10:46:48 +01:00
2012-10-31 20:36:30 -02:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-10 20:14:07 +09:00
2012-10-10 01:15:44 -04:00
2012-10-02 19:01:32 -07:00
2012-10-06 02:48:09 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-24 11:52:21 -07:00
2012-10-11 08:50:16 +09:00
2012-10-09 16:23:02 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:39 +09:00
2012-10-09 16:22:54 +09:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:58 +09:00
2012-10-09 16:23:00 +09:00
2012-10-01 18:02:07 -07:00
2012-10-10 20:00:55 +10:30
2012-09-28 14:31:03 +09:30
2012-10-08 13:50:21 +10:30
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-01 15:33:33 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-02 14:56:19 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-17 15:53:01 -05:00
2012-10-17 15:53:02 -05:00
2012-10-10 22:41:05 -04:00
2012-10-17 15:53:00 -05:00
2012-10-08 13:50:18 +10:30
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:52 +09:00
2012-10-11 08:50:14 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-05 22:23:53 +02:00
2012-10-13 10:46:48 +01:00
2012-10-28 10:59:36 -07:00
2012-10-06 03:04:44 +09:00
2012-10-24 10:01:59 +02:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-19 14:07:47 -07:00
2012-10-13 10:46:48 +01:00
2012-10-02 18:32:35 -07:00
2012-10-13 10:46:48 +01:00
2012-10-03 13:52:52 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-05 09:26:01 -07:00
2012-10-25 14:37:52 -07:00
2012-10-09 16:22:40 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-06 03:05:21 +09:00
2012-10-11 08:50:16 +09:00
2012-10-09 16:22:43 +09:00
2012-10-06 03:05:01 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-09-27 12:45:28 +02:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-11 20:02:04 -04:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-07 00:40:54 -04:00
2012-09-29 10:02:27 +03:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:55 +09:00
2012-10-13 10:46:48 +01:00
2012-10-12 13:35:07 -04:00
2012-10-13 10:46:48 +01:00
2012-10-22 15:16:06 -04:00
2012-10-13 10:46:48 +01:00
2012-10-09 16:22:32 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-07 21:19:42 +02:00
2012-10-17 11:16:13 -07:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-09 11:24:47 +01:00
2012-09-28 15:05:15 +09:30
2012-10-09 16:22:59 +09:00
2012-10-09 16:22:59 +09:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00
2012-10-13 10:46:48 +01:00