Ed Swierk
ffde22ac53
KVM: Xen PV-on-HVM guest support
...
Support for Xen PV-on-HVM guests can be implemented almost entirely in
userspace, except for handling one annoying MSR that maps a Xen
hypercall blob into guest address space.
A generic mechanism to delegate MSR writes to userspace seems overkill
and risks encouraging similar MSR abuse in the future. Thus this patch
adds special support for the Xen HVM MSR.
I implemented a new ioctl, KVM_XEN_HVM_CONFIG, that lets userspace tell
KVM which MSR the guest will write to, as well as the starting address
and size of the hypercall blobs (one each for 32-bit and 64-bit) that
userspace has loaded from files. When the guest writes to the MSR, KVM
copies one page of the blob from userspace to the guest.
I've tested this patch with a hacked-up version of Gerd's userspace
code, booting a number of guests (CentOS 5.3 i386 and x86_64, and
FreeBSD 8.0-RC1 amd64) and exercising PV network and block devices.
[jan: fix i386 build warning]
[avi: future proof abi with a flags field]
Signed-off-by: Ed Swierk <eswierk@aristanetworks.com >
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com >
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com >
Signed-off-by: Avi Kivity <avi@redhat.com >
2009-12-03 09:32:18 +02:00
..
2009-09-22 20:49:04 +01:00
2009-09-19 00:51:34 -03:00
2009-10-09 13:32:24 -07:00
2009-09-22 07:54:33 -07:00
2009-12-01 11:24:19 +01:00
2009-10-11 11:20:58 -07:00
2009-09-20 05:55:36 -07:00
2009-09-23 07:39:29 -07:00
2009-09-22 13:32:45 +01:00
2009-09-26 10:49:42 -07:00
2009-09-23 14:36:38 -04:00
2009-09-24 07:21:05 -07:00
2009-10-09 13:52:05 -07:00
2009-09-19 02:14:45 -04:00
2009-09-27 11:39:25 -07:00
2009-09-20 16:09:20 +05:30
2009-09-23 07:39:29 -07:00
2009-10-06 00:26:26 -04:00
2009-09-30 16:12:20 -07:00
2009-09-26 00:10:40 +02:00
2009-09-21 21:03:58 +01:00
2009-09-24 07:21:01 -07:00
2009-10-05 11:03:58 +02:00
2009-10-01 21:19:34 +02:00
2009-09-22 07:17:38 -07:00
2009-09-21 15:14:51 +02:00
2009-10-01 16:11:11 -07:00
2009-09-23 07:39:29 -07:00
2009-09-24 07:20:57 -07:00
2009-10-02 10:54:05 -07:00
2009-10-29 07:39:24 -07:00
2009-09-24 09:34:53 +09:30
2009-09-23 11:01:25 -07:00
2009-09-19 13:13:31 -07:00
2009-09-24 07:20:57 -07:00
2009-09-18 09:48:52 -07:00
2009-10-30 14:59:51 -07:00
2009-10-06 10:35:10 +02:00
2009-09-23 07:39:29 -07:00
2009-11-11 15:22:49 +01:00
2009-11-12 07:25:56 -08:00
2009-09-22 07:17:47 -07:00
2009-10-04 12:39:14 -07:00
2009-11-19 18:12:05 +00:00
2009-11-19 18:11:35 +00:00
2009-09-18 07:25:44 +02:00
2009-10-07 15:52:09 -04:00
2009-10-08 12:16:35 -07:00
2009-10-06 20:16:55 +02:00
2009-09-23 07:39:29 -07:00
2009-09-23 07:39:46 -07:00
2009-09-19 13:13:31 -07:00
2009-09-17 15:15:11 +02:00
2009-09-27 11:39:25 -07:00
2009-09-19 00:16:14 -03:00
2009-11-20 00:25:42 +00:00
2009-11-07 13:10:46 +01:00
2009-09-17 23:23:45 -07:00
2009-09-26 20:28:07 -07:00
2009-09-21 14:28:04 +02:00
2009-10-02 15:42:19 +02:00
2009-11-10 21:13:32 -08:00
2009-10-11 11:20:58 -07:00
2009-09-23 07:39:41 -07:00
2009-09-26 10:17:19 -07:00
2009-11-15 22:23:47 -08:00
2009-09-30 00:32:06 -04:00
2009-09-23 07:39:58 -07:00
2009-10-22 16:39:28 +10:30
2009-10-11 23:21:25 +02:00
2009-09-19 13:13:17 -07:00
2009-09-23 07:39:29 -07:00
2009-09-26 10:17:19 -07:00
2009-09-22 07:17:33 -07:00
2009-12-03 09:32:17 +02:00
2009-12-03 09:32:18 +02:00
2009-10-06 00:26:27 -04:00
2009-09-17 23:23:45 -07:00
2009-09-21 06:27:08 +02:00
2009-09-22 07:17:48 -07:00
2009-09-23 07:39:42 -07:00
2009-09-24 07:20:59 -07:00
2009-09-23 07:39:41 -07:00
2009-09-22 07:17:35 -07:00
2009-09-19 12:50:38 -07:00
2009-09-21 15:14:56 +02:00
2009-09-22 07:17:37 -07:00
2009-09-27 11:39:25 -07:00
2009-09-24 17:20:20 -07:00
2009-09-22 07:17:42 -07:00
2009-09-22 07:17:31 -07:00
2009-09-24 07:21:04 -07:00
2009-09-23 07:39:43 -07:00
2009-09-25 00:32:58 +09:30
2009-10-29 08:56:17 +10:30
2009-09-30 16:12:20 -07:00
2009-09-30 16:12:20 -07:00
2009-09-21 15:14:51 +02:00
2009-09-30 16:12:20 -07:00
2009-10-07 13:53:11 -07:00
2009-09-30 16:12:20 -07:00
2009-09-24 15:44:05 -07:00
2009-09-22 07:54:33 -07:00
2009-09-26 10:17:19 -07:00
2009-11-15 17:17:38 +09:00
2009-09-22 07:17:38 -07:00
2009-09-24 07:20:58 -07:00
2009-09-24 07:53:22 -07:00
2009-11-12 07:25:57 -08:00
2009-09-22 15:42:01 +02:00
2009-10-23 09:35:02 +02:00
2009-09-24 15:38:57 -07:00
2009-09-22 07:17:49 -07:00
2009-09-22 07:17:47 -07:00
2009-10-04 15:05:10 -07:00
2009-10-04 03:23:17 +02:00
2009-09-23 07:39:41 -07:00
2009-09-22 07:17:24 -07:00
2009-09-27 11:39:25 -07:00
2009-09-19 08:53:22 +02:00
2009-10-05 21:02:02 +02:00
2009-10-15 11:17:17 +02:00
2009-09-24 07:20:57 -07:00
2009-10-01 16:11:13 -07:00
2009-09-24 07:53:22 -07:00
2009-09-24 07:53:22 -07:00
2009-09-24 07:21:04 -07:00
2009-09-24 07:47:35 -04:00
2009-09-19 13:13:19 -07:00
2009-09-30 21:46:59 +02:00
2009-09-19 13:13:30 -07:00
2009-09-24 07:21:01 -07:00
2009-10-30 12:25:12 -07:00
2009-12-01 08:20:31 -08:00
2009-09-24 09:34:40 +09:30
2009-10-05 00:24:36 -07:00
2009-10-29 07:39:25 -07:00
2009-11-17 17:40:33 -08:00
2009-09-24 07:53:22 -07:00
2009-09-23 09:21:05 -07:00
2009-09-24 07:21:04 -07:00
2009-09-18 09:48:52 -07:00
2009-09-24 07:20:56 -07:00
2009-10-14 15:02:34 +02:00
2009-10-24 11:07:51 +02:00
2009-09-24 07:21:00 -07:00
2009-09-24 07:20:57 -07:00
2009-09-27 13:35:16 -07:00
2009-09-19 13:13:35 -07:00
2009-09-23 07:39:48 -07:00
2009-09-23 06:46:23 -07:00
2009-09-23 06:46:39 -07:00
2009-11-29 22:03:04 +01:00
2009-09-23 18:13:10 -07:00
2009-09-24 09:57:08 -07:00
2009-09-19 00:18:36 -03:00
2009-10-22 16:39:28 +10:30
2009-10-22 16:39:28 +10:30
2009-10-22 16:39:30 +10:30
2009-09-23 07:39:29 -07:00
2009-10-22 16:39:28 +10:30
2009-09-23 22:26:32 +09:30
2009-10-22 16:39:28 +10:30
2009-10-22 16:39:28 +10:30
2009-09-23 22:26:31 +09:30
2009-09-22 07:17:30 -07:00
2009-09-19 13:13:25 -07:00
2009-11-19 13:43:06 -08:00
2009-09-23 03:49:27 +04:00
2009-10-14 09:16:42 -07:00
2009-09-24 07:21:04 -07:00