You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(33) |
Nov
(325) |
Dec
(320) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(484) |
Feb
(438) |
Mar
(407) |
Apr
(713) |
May
(831) |
Jun
(806) |
Jul
(1023) |
Aug
(1184) |
Sep
(1118) |
Oct
(1461) |
Nov
(1224) |
Dec
(1042) |
2008 |
Jan
(1449) |
Feb
(1110) |
Mar
(1428) |
Apr
(1643) |
May
(682) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Avi K. <av...@qu...> - 2008-04-28 17:01:15
|
Hollis Blanchard wrote: > This reduces host CPU usage when the guest is idle. However, the guest must > set MSR[WE] in its idle loop, which Linux did not do until 2.6.26. > > Applied, thanks. -- error compiling committee.c: too many arguments to function |
From: Jan L. <jl...@la...> - 2008-04-28 16:51:07
|
Hi! I'm preparing kvm-67 for debian. While testing i noticed a problem: When booting the debian installer from the official CD [1] this problem: CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 2048K Compat vDSO mapped to ffffe000. CPU: Intel QEMU Virtual CPU version 0.9.1 stepping 03 Checking 'hlt' instruction... OK. ACPI: Core revision 20060707 invalid opcode: 0000 [#1] Modules linked in: CPU: 0 EIP: 0060:[<c01467be>] Not tainted VLI EFLAGS: 00010202 (2.6.18-6-486 #1) EIP is at kmem_cache_zalloc+0x2a0x53 eax: 0000000a ebx: c7fe75c0 ecx: c7fe9e00 edx: 000000d0 esi: c02c50c0 edi: 00000202 ebp: c036bd20 esp: c030ff80 ds: 007b es: 007b ss: 0068 Process swapper (pid: 0, ti=c030e000 task=c02bd7a0 task.ti=c030e000) Stack: 00000004 c028f968 c029c49a c0146d5b 00000004 00000000 00000014 c029c499 00000046 c030ffc4 00000046 00000046 00000000 00000000 00039100 c0302800 003a7007 c01c7e90 00000000 00000000 00000000 c01db3b5 c0378ce8 c01dcf07 Call Trace: [<c0146d5b>] kmem_cache_create+0x15e0x410 [<c01c7e90>] acpi_os_create_cache+0x100x1c [<c01db3b5>] acpi_ut_create_caches+0x190x93 [<c01dcf07>] acpi_ut_init_globals+0x50x1de [<c01dc5d1>] acpi_initialize_subsystem+0x1b0x56 [<c0323a73>] acpi_early_init+0x450xfe [<c03105f5>] start_kernel+0x26b0x272 Code: c3 57 56 53 89 c6 9c 5f fa 8b 08 83 39 00 74 12 c7 41 0c 01 00 00 00 8b 01 48 89 01 8b 5c 81 10 eb 07 e8 a5 fb ff ff 89 c3 57 9d <0f> 0d 0b 90 85 db 74 1b 8b 56 10 31 c0 89 d1 c1 e9 02 89 df f3 EIP: [<c01467be>] kmem_cache_zalloc+0x2a0x53 SS:ESP 0068:c030ff80 <0>Kernel panic - not syncing: Attempted to kill the idle task! Similar errors in acpi-functions also happen with all other linux kernels i have here (2.6.22-25). -no-acpi makes no difference. Userspace 66 works (with -66 and -67 kernel module), userspace 67 has this problem (with -66 and -67 kernel module). Host is an ThinkPad X60 (Core Duo), kernel 2.6.25. I've tried to bisect the userspace, but the bug seems to be introduced with the merge from qemu-cvs. Any tips on how to bisect the individual commits on the qemu-cvs branch? Thanks, Jan Lübbe [1]: http:cdimage.debian.orgdebian-cd4.0_r3i386iso-cddebian-40r3-i386-businesscard.iso |
From: Chris L. <cla...@re...> - 2008-04-28 16:48:17
|
Attached is a patch that fixes a guest crash when booting older Linux kernels. The problem stems from the fact that we are currently emulating MSR_K7_EVNTSEL[0-3], but not emulating MSR_K7_PERFCTR[0-3]. Because of this, setup_k7_watchdog() in the Linux kernel receives a GPF when it attempts to write into MSR_K7_PERFCTR, which causes an OOPs. The patch fixes it by just "fake" emulating the appropriate MSRs, throwing away the data in the process. This causes the NMI watchdog to not actually work, but it's not such a big deal in a virtualized environment. Tested by myself on a RHEL-4 guest, and Joerg Roedel on a Windows XP 64-bit guest. Signed-off-by: Chris Lalancette <cla...@re...> |
From: Andi K. <an...@fi...> - 2008-04-28 16:42:10
|
Chris Lalancette <cla...@re...> writes: > this allows my RHEL-4 guest to successfully boot, although obviously the NMI > watchdog which it thinks it set up is not actually working. That's fine. On a virtualized environment you don't really need a NMI watchdog because you can always debug from the outside -Andi |
From: Chris L. <cla...@re...> - 2008-04-28 16:41:33
|
Joerg Roedel wrote: >> OK, yeah, I read some of those threads over the weekend. It is a larger >> problem than just this crash, and probably one to be solved later. >> I have attached a patch which just discards all writes, as you suggested; >> this allows my RHEL-4 guest to successfully boot, although obviously the NMI >> watchdog which it thinks it set up is not actually working. Joerg, can you test >> this on your 64-bit Windows XP guest to make sure it is still working? > > XP 64 bit installs and works fine with your patch. Great, thanks for testing, I'll post the patch again with a proper changelog for Avi. Chris Lalancette |
From: Avi K. <av...@qu...> - 2008-04-28 16:10:42
|
Izik Eidus wrote: > Avi Kivity wrote: > >> Harvey Harrison wrote: >> >>> arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant >>> value (100 becomes 0) >>> arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant >>> value (100 becomes 0) >>> >>> The problem: >>> cseg_desc.type &= ~(1 << 8); //clear the B flag >>> nseg_desc.type |= (1 << 8); >>> >>> type is a 4-bit bitfield on x86....please look into this. >>> >>> >>> >> I think it ought to be (1 << 1), not (1 << 8), as it refers to the >> "busy" bit of the task type. Izik? >> >> >> > From cf6e76c69a38a983df0c84a3dcc2336042eb3436 Mon Sep 17 00:00:00 2001 > From: Izik Eidus <iz...@qu...> > Date: Mon, 28 Apr 2008 18:16:08 +0300 > Subject: [PATCH] KVM: x86: task switch: fix wrong bit setting for the busy flag. > the busy bit is in offset of 1 inside type and not in 8. > Applied, thanks. -- error compiling committee.c: too many arguments to function |
From: Joerg R. <joe...@am...> - 2008-04-28 15:58:30
|
On Mon, Apr 28, 2008 at 10:17:37AM -0400, Chris Lalancette wrote: > Joerg Roedel wrote: > > We already discussed the emulation of the performance counter registers > > in the past. The conclusion is, that we loose live migration with that > > emulation because performance monitoring is implemented differently > > between AMD and Intel systems. Maybe discarding _any_ writes to > > the performance counter MSRs will fix the guest crash. What we should > > not do is injecting GPF on zero writes to the MSRs because that will > > break Windows XP 64bit installation. > > OK, yeah, I read some of those threads over the weekend. It is a larger > problem than just this crash, and probably one to be solved later. > I have attached a patch which just discards all writes, as you suggested; > this allows my RHEL-4 guest to successfully boot, although obviously the NMI > watchdog which it thinks it set up is not actually working. Joerg, can you test > this on your 64-bit Windows XP guest to make sure it is still working? XP 64 bit installs and works fine with your patch. Joerg -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy |
From: Izik E. <iz...@qu...> - 2008-04-28 15:33:49
|
Avi Kivity wrote: > Harvey Harrison wrote: >> arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant >> value (100 becomes 0) >> arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant >> value (100 becomes 0) >> >> The problem: >> cseg_desc.type &= ~(1 << 8); //clear the B flag >> nseg_desc.type |= (1 << 8); >> >> type is a 4-bit bitfield on x86....please look into this. >> >> > > I think it ought to be (1 << 1), not (1 << 8), as it refers to the > "busy" bit of the task type. Izik? > > >From cf6e76c69a38a983df0c84a3dcc2336042eb3436 Mon Sep 17 00:00:00 2001 From: Izik Eidus <iz...@qu...> Date: Mon, 28 Apr 2008 18:16:08 +0300 Subject: [PATCH] KVM: x86: task switch: fix wrong bit setting for the busy flag. the busy bit is in offset of 1 inside type and not in 8. Signed-off-by: Izik Eidus <iz...@qu...> --- arch/x86/kvm/x86.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 0ce5563..5c360bb 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -3481,7 +3481,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason) } if (reason == TASK_SWITCH_IRET || reason == TASK_SWITCH_JMP) { - cseg_desc.type &= ~(1 << 8); //clear the B flag + cseg_desc.type &= ~(1 << 1); //clear the B flag save_guest_segment_descriptor(vcpu, tr_seg.selector, &cseg_desc); } @@ -3507,7 +3507,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason) } if (reason != TASK_SWITCH_IRET) { - nseg_desc.type |= (1 << 8); + nseg_desc.type |= (1 << 1); save_guest_segment_descriptor(vcpu, tss_selector, &nseg_desc); } -- 1.5.3.6 -- woof. |
From: Marcelo T. <mto...@re...> - 2008-04-28 14:46:38
|
Hi Andrea, Looks good. Acked-by: Marcelo Tosatti <mto...@re...> |
From: Отдел д. < <pm...@en...> - 2008-04-28 14:43:26
|
Бухгалтеру o дoгoвoрнoй рабoте oрганизации - правoвые oснoвы и налoгoвый аспект 7 мая 2008, г. Мoсква Прoграмма семинара 1. Как правильнo oфoрмить дoгoвoр, oбязательные и дoпoлнительные услoвия дoгoвoрoв. Кoгда мoжнo считать сoблюденнoй прoстую письменную фoрму дoгoвoра. Кoгда дoгoвoр требует гoсударственнoй регистрации или нoтариальнoгo заверения. Рамoчные дoгoвoры. oферта (oднoстoрoннее предлoжение заключить сделку). Пoдписание дoгoвoра. 2. Гарантийные услoвия в дoгoвoрах - залoг, задатoк, неустoйка (налoгoвые преимущества гарантий пo сравнению с авансами пo дoгoвoру). Регулирoвание в дoгoвoрах и ╚пo умoлчанию╩ вoпрoсoв вoзмещения ущерба oт неиспoлнения дoгoвoра. Упущенная выгoда. Ничтoжнoсть прoтивoзакoнных услoвий сделoк и ее налoгoвые пoследствия. 3. Разрешение спoрoв пo дoгoвoрам. Претензиoнная рабoта. Признание дoлга сoмнительным, безнадежным, списание дoлга. Срoки искoвoй давнoсти. 4. Цена в дoгoвoре - спoсoбы oбoзначения (дoлжна ли быть указана oпределенная цена), единицы изменения (рубли, инoстранная валюта, услoвные единицы), oбoснoвание рынoчнoй цены. Скидки - разoвые и накoпительные - пoрядoк предoставления и учета. 5. Пoрядoк расчетoв пo дoгoвoру, наличные и безналичные платежи с учетoм изменений пoрядка расчета наличными сoгласнo Указанию ЦБ oт 20.06.2007 N 1843-У "o предельнoм размере расчетoв наличными деньгами и расхoдoвании наличных денег, пoступивших в кассу юридическoгo лица или кассу индивидуальнoгo предпринимателя". Даты признания дoхoдoв и расхoдoв пo дoгoвoрам. Расчетные дoкументы в рублях, валюте, услoвных единицах. Сoпрoвoдительные и расчетные дoкументы в электрoннoм виде. Акты: oбязательнo ли сoставлять акт, ждать ли oкoнчания дoгoвoра или сoставлять акт пoэтапнo, фoрма акта, пoзиция Минфина oтнoсительнo пoрядка запoлнения актoв и детализации сведений в них. 6. Дoгoвoры между юридическими лицами - oфoрмление, учет и налoгooблoжение. Зависимoсть налoгoвoгo бремени oт вида и сoдержания дoгoвoра. Дoгoвoр и налoг на прибыль. Дoгoвoр и НДС. - дoгoвoр купли-прoдажи (предмет, oбязательные услoвия, oфoрмление и пoследствия вoзврата тoвара), - дoгoвoр мены (oбмен и мена - в чем oтличия, рынoчная цена сделки), - дoгoвoр аренды (регистрация дoгoвoрoв, аренда автoтранспoртнoгo средства, аренда oфиса), - дoгoвoр страхoвания (личнoе и имущественнoе страхoвание, страхoвание oтветственнoсти, налoгoвые льгoты), - дoгoвoры займа (признание расхoдoв, беспрoцентные займы), - дoгoвoры безвoзмезднoй передачи и безвoзмезднoгo пoльзoвания (oграничения в сфере применения и признания расхoдoв), - пoсреднические дoгoвoры (oсoбеннoсти дoгoвoрoв кoмиссии, агентирoвания, пoручения), - дoгoвoр прoстoгo тoварищества (участники, налoгoвые преимущества, дoля участника и распределение расхoдoв и дoхoдoв), - дoгoвoр вoзмезднoгo oказания услуг (существенные услoвия дoгoвoра, разнoвиднoсти дoгoвoрoв услуг, преимущества перед дoгoвoрoм пoдряда). 6. Дoгoвoры oрганизации с физическими лицами: кoллективные, трудoвые, гражданскo-правoвые, дoгoвoры с индивидуальными предпринимателями - учет и налoгooблoжение, выплаты пo таким дoгoвoрам. Вoзмoжнoсть управления налoгoвoй нагрузкoй на предприятие с пoмoщью таких дoгoвoрoв. Пpoдoлжительнoсть oбучения: с 10 дo 17 часoв (с пеpеpывoм на oбед и кoфе-паузу). Местo oбучения: г. Мoсква, 5 мин. пешкoм oт м. Академическая. Стoимoсть oбучения: 4900 pуб. (с НДС). (В стoимoсть вxoдит: pаздатoчный матеpиал, кoфе-пауза, oбед в pестopане). Пpи oтсутствии вoзмoжнoсти пoсетить семинаp, мы пpедлагаем пpиoбpести егo видеoвеpсию на DVD/CD дискаx или видеoкассетаx (пpилагается автopский pаздатoчный матеpиал). Цена видеoкуpса - 3500 pублей, с учетoм НДС. Для pегистpации на семинаp неoбxoдимo oтпpавить нам пo факсу: pеквизиты opганизации, тему и дату семинаpа, пoлнoе ФИo участникoв, кoнтактный телефoн и факс. Для заказа видеoкуpса неoбxoдимo oтпpавить нам пo факсу: pеквизиты opганизации, тему видеoкуpса, указать нoситель (ДВД или СД диски), телефoн, факс, кoнтактнoе лицo и тoчный адpес дoставки. Пoлучить дoпoлнительную инфopмацию и заpегистpиpoваться мoжнo: пo т/ф: ( 4 9 5 ) 54 3 - 8 8 - 4 6 |
From: Chris L. <cla...@re...> - 2008-04-28 14:19:57
|
Joerg Roedel wrote: > We already discussed the emulation of the performance counter registers > in the past. The conclusion is, that we loose live migration with that > emulation because performance monitoring is implemented differently > between AMD and Intel systems. Maybe discarding _any_ writes to > the performance counter MSRs will fix the guest crash. What we should > not do is injecting GPF on zero writes to the MSRs because that will > break Windows XP 64bit installation. OK, yeah, I read some of those threads over the weekend. It is a larger problem than just this crash, and probably one to be solved later. I have attached a patch which just discards all writes, as you suggested; this allows my RHEL-4 guest to successfully boot, although obviously the NMI watchdog which it thinks it set up is not actually working. Joerg, can you test this on your 64-bit Windows XP guest to make sure it is still working? Thanks, Chris Lalancette |
From: Joerg R. <joe...@am...> - 2008-04-28 12:46:17
|
On Fri, Apr 25, 2008 at 02:43:19PM -0400, Chris Lalancette wrote: > Unfortunately, we can't just "fake emulate" MSR_K7_PERFCTR[0-3] like we are > doing for MSR_K7_EVNTSEL[0-3]; if they are there, linux expects to be able to > put values into them. I think the correct solution here is to emulate > MSR_K7_PERFCTR[0-3] and MSR_K7_EVNTSEL[0-3] for real. I'm working on a patch to > do this now. We already discussed the emulation of the performance counter registers in the past. The conclusion is, that we loose live migration with that emulation because performance monitoring is implemented differently between AMD and Intel systems. Maybe discarding _any_ writes to the performance counter MSRs will fix the guest crash. What we should not do is injecting GPF on zero writes to the MSRs because that will break Windows XP 64bit installation. Joerg -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy |
From: Gerd H. <kr...@re...> - 2008-04-28 12:09:35
|
Avi Kivity wrote: > The patches look good, but pleasy copy Jeremy and virtualization@ for > patches which touch things outside kvm. Will do for the next round. > It's perhaps better to reverse the order: first fix kvm to be > compatible, then merge the Xen and kvm implementations into a single one. Fixing kvm (guest side) would be copying parts of the xen guest code, so that doesn't make much sense to me ... cheers, Gerd -- http://kraxel.fedorapeople.org/xenner/ |
From: SourceForge.net <no...@so...> - 2008-04-28 11:50:41
|
Bugs item #1953353, was opened at 2008-04-28 13:50 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1953353&group_id=180599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Rafal Wijata (ravpl) Assigned to: Nobody/Anonymous (nobody) Summary: could not load PC BIOS '/path/to/bios.bin' on "-m 4096" Initial Comment: The maximum amount of memory I can give to kvm is ~3560M I run custom compiled kvm-66 on F8 box with Linux mailhub 2.6.24.4-64.fc8 #1 SMP Sat Mar 29 09:15:49 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux The modules are loaded from F8 kernel, rather than those shipped with kvm-66 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1953353&group_id=180599 |
From: SourceForge.net <no...@so...> - 2008-04-28 11:44:17
|
Bugs item #1850037, was opened at 2007-12-13 14:25 Message generated for change (Comment added) made by ravpl You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1850037&group_id=180599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Technologov (technologov) Assigned to: Nobody/Anonymous (nobody) Summary: SMP 8-way doesn't works, and returns incorrect error Initial Comment: Host: AMD Barcelona, 8-way SMP (Octo Core), 8 GB of RAM, Fedora 7/x64. KVM-56. [alexeye@qu0045 scripts]$ ./qemu-kvm -hda /isos/disks-vm/alexeye/openSUSE-10.3-test32.vmdk -cdrom /isos/openSuse-10.3-GM-x86_64.iso -m 9000 -smp 8 -boot d (VMDK) image open: flags=0x2 filename=/isos/disks-vm/alexeye/openSUSE-10.3-test32.vmdk kvm_create_vcpu: Invalid argument kvm_create_vcpu: Invalid argument kvm_run: Bad file descriptor kvm_create_vcpu: Invalid argument kvm_run returned -9 kvm_create_vcpu: Invalid argument [alexeye@qu0045 scripts]$ free total used free shared buffers cached Mem: 8255648 8213812 41836 0 55376 6573508 -/+ buffers/cache: 1584928 6670720 Swap: 4194288 0 4194288 Output of dmesg: SIPI to vcpu 1 vector 0x10 SIPI to vcpu 2 vector 0x10 SIPI to vcpu 3 vector 0x10 kvm: 16024: cpu0 unhandled rdmsr: 0x417 Ignoring de-assert INIT to vcpu 1 SIPI to vcpu 1 vector 0x06 SIPI to vcpu 1 vector 0x06 kvm: 16024: cpu1 unhandled rdmsr: 0x417 Ignoring de-assert INIT to vcpu 2 SIPI to vcpu 2 vector 0x06 SIPI to vcpu 2 vector 0x06 kvm: 16024: cpu2 unhandled rdmsr: 0x417 Ignoring de-assert INIT to vcpu 3 SIPI to vcpu 3 vector 0x06 SIPI to vcpu 3 vector 0x06 kvm: 16024: cpu3 unhandled rdmsr: 0x417 Machine check events logged ================================================== Expected Behavior: It must either work, or return proper error message, that SMP beyond 4-way is not supported. -Alexey "Technologov", 13.12.2007. ---------------------------------------------------------------------- Comment By: Rafal Wijata (ravpl) Date: 2008-04-28 13:44 Message: Logged In: YES user_id=996150 Originator: NO I have dual quad core model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz and can confirm, that I can't run kvm with more than 4 vcpus. I run custom compiled kvm-66 on Linux mailhub 2.6.24.4-64.fc8 #1 SMP Sat Mar 29 09:15:49 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux Modules are from FC8 rather than kvm-66. Browsing kvm sources showed static array for 16 cpus. Maybe those four it kernel's module limit? ---------------------------------------------------------------------- Comment By: Technologov (technologov) Date: 2008-02-26 14:28 Message: Logged In: YES user_id=1839746 Originator: YES FIXED in KVM-62. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1850037&group_id=180599 |
From: Avi K. <av...@qu...> - 2008-04-28 11:44:11
|
Harvey Harrison wrote: > arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant value (100 becomes 0) > arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant value (100 becomes 0) > > The problem: > cseg_desc.type &= ~(1 << 8); //clear the B flag > nseg_desc.type |= (1 << 8); > > type is a 4-bit bitfield on x86....please look into this. > > I think it ought to be (1 << 1), not (1 << 8), as it refers to the "busy" bit of the task type. Izik? -- error compiling committee.c: too many arguments to function |
From: Avi K. <av...@qu...> - 2008-04-28 09:19:22
|
Yang, Sheng wrote: > The updated patch also moved ept_load_pdptrs() from critical region to > kvm_handle_vmexit(). > > Thanks; applied all EPT patches. -- error compiling committee.c: too many arguments to function |
From: Avi K. <av...@qu...> - 2008-04-28 08:56:06
|
This release adds support for the ppc 44x embedded processors. Like s390 and ia64, it is only provided in the git tree, not in the tarball. Linux guests are supported. Changes from kvm-66: - s390/ia64: compile fix (Christian Borntraeger) - s390: change virtio interrupt to follow arch specification (Christian Borntraeger) - close vcpu refcounting race (Al Viro) - code cleanups (Hollis Blanchard, Christian Borntraeger) - ppc 44x support (Hollis Blanchard, Jerone Young) - reduce cr8 intercepts on AMD (Joerg Roedel) - speeds up Vista x64 - fix locking in paravirt mmu support (Marcelo Tosatti) - fix ppc build on non-44x (Stephen Rothwell) - fix PIT time-drift compensation with multiple guests (Marcelo Tosatti) - merge qemu-svn - spin up vcpu threads before setting lapic contents - pass disk geometery to extboot loader (Ryan Harper) - separate header copying from source copying in 'make sync' - implement 'hypervisor present' cpuid bit - fix address truncation on ia64 (Jes Sorensen) - handle nic/storage hotplug failure gracefully (Chris Wright) - more kvm_stat display options - fix qemu system_powerdown with Linux guests Notes: If you use the modules bundled with kvm-67, you can use any version of Linux from 2.6.17 upwards. If you use the modules bundled with Linux 2.6.20, you need to use kvm-12. If you use the modules bundled with Linux 2.6.21, you need to use kvm-17. Modules from Linux 2.6.22 and up will work with any kvm version from kvm-22. Some features may only be available in newer releases. For best performance, use Linux 2.6.23-rc2 or later as the host. http://kvm.qumranet.com |
From: Gerd H. <kr...@re...> - 2008-04-28 08:54:52
|
Glauber Costa wrote: > This is not exactly what kvm does. For us, wallclock read and system > time reads are decoupled operations, controlled by different msrs. Same for xen. Although both live in the shared_info page they are updated independently (and the wall clock is updated much less frequently). > This function might exist, but in this case, it have to be wrapped > around a kvm_read_wallclock(), that does the msr read. (I'm not sure > whether or not you do it in your later patches, doing sequential reads > :-) ) It is, as you have seen in the kvm patch ;) What is the reason to handle the two clock msrs in different ways btw? I think it would be better to have both msrs work the same way though, i.e. the wallclock msr should have a enable bit and should auto-update too. cheers, Gerd -- http://kraxel.fedorapeople.org/xenner/ |
From: Yang, S. <she...@in...> - 2008-04-28 04:41:44
|
On Sunday 27 April 2008 17:37:47 Avi Kivity wrote: > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > > index 3dbedf1..7a8640a 100644 > > --- a/arch/x86/kvm/mmu.c > > +++ b/arch/x86/kvm/mmu.c > > @@ -1177,8 +1177,15 @@ static int __direct_map(struct kvm_vcpu *vcpu, > > gpa_t v, int write, > > return -ENOMEM; > > } > > > > - table[index] = __pa(new_table->spt) | > > PT_PRESENT_MASK - | PT_WRITABLE_MASK | > > shadow_user_mask; + if (shadow_user_mask) > > + table[index] = __pa(new_table->spt) > > + | PT_PRESENT_MASK | > > PT_WRITABLE_MASK + | > > shadow_user_mask; > > + else > > + table[index] = __pa(new_table->spt) > > + | PT_PRESENT_MASK | > > PT_WRITABLE_MASK + | shadow_x_mask; > > Why not do, unconditionally: > > + table[index] = __pa(new_table->spt) | > PT_PRESENT_MASK + | PT_WRITABLE_MASK | > shadow_user_mask | shadow_x_mask; > > ? In fact, I just don't like the method that shadow_x_mask and shadow_user_mask was controlled by programmer rather than the function logical. But I can't find more proper method. I merged them now. The updated patch also moved ept_load_pdptrs() from critical region to kvm_handle_vmexit(). -- From c10e92efd8db22d90f71a370e2300efbd4aeb3a9 Mon Sep 17 00:00:00 2001 From: Sheng Yang <she...@in...> Date: Mon, 28 Apr 2008 12:24:45 +0800 Subject: [PATCH] KVM: VMX: Enable EPT feature for KVM Signed-off-by: Sheng Yang <she...@in...> --- arch/x86/kvm/mmu.c | 5 +- arch/x86/kvm/vmx.c | 229 ++++++++++++++++++++++++++++++++++++++++++-- arch/x86/kvm/vmx.h | 9 ++ include/asm-x86/kvm_host.h | 1 + 4 files changed, 234 insertions(+), 10 deletions(-) diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 3dbedf1..d9344be 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -1177,8 +1177,9 @@ static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write, return -ENOMEM; } - table[index] = __pa(new_table->spt) | PT_PRESENT_MASK - | PT_WRITABLE_MASK | shadow_user_mask; + table[index] = __pa(new_table->spt) + | PT_PRESENT_MASK | PT_WRITABLE_MASK + | shadow_user_mask | shadow_x_mask; } table_addr = table[index] & PT64_BASE_ADDR_MASK; } diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index de5f615..bfe4db1 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -42,7 +42,7 @@ module_param(enable_vpid, bool, 0); static int flexpriority_enabled = 1; module_param(flexpriority_enabled, bool, 0); -static int enable_ept; +static int enable_ept = 1; module_param(enable_ept, bool, 0); struct vmcs { @@ -284,6 +284,18 @@ static inline void __invvpid(int ext, u16 vpid, gva_t gva) : : "a"(&operand), "c"(ext) : "cc", "memory"); } +static inline void __invept(int ext, u64 eptp, gpa_t gpa) +{ + struct { + u64 eptp, gpa; + } operand = {eptp, gpa}; + + asm volatile (ASM_VMX_INVEPT + /* CF==1 or ZF==1 --> rc = -1 */ + "; ja 1f ; ud2 ; 1:\n" + : : "a" (&operand), "c" (ext) : "cc", "memory"); +} + static struct kvm_msr_entry *find_msr_entry(struct vcpu_vmx *vmx, u32 msr) { int i; @@ -335,6 +347,33 @@ static inline void vpid_sync_vcpu_all(struct vcpu_vmx *vmx) __invvpid(VMX_VPID_EXTENT_SINGLE_CONTEXT, vmx->vpid, 0); } +static inline void ept_sync_global(void) +{ + if (cpu_has_vmx_invept_global()) + __invept(VMX_EPT_EXTENT_GLOBAL, 0, 0); +} + +static inline void ept_sync_context(u64 eptp) +{ + if (vm_need_ept()) { + if (cpu_has_vmx_invept_context()) + __invept(VMX_EPT_EXTENT_CONTEXT, eptp, 0); + else + ept_sync_global(); + } +} + +static inline void ept_sync_individual_addr(u64 eptp, gpa_t gpa) +{ + if (vm_need_ept()) { + if (cpu_has_vmx_invept_individual_addr()) + __invept(VMX_EPT_EXTENT_INDIVIDUAL_ADDR, + eptp, gpa); + else + ept_sync_context(eptp); + } +} + static unsigned long vmcs_readl(unsigned long field) { unsigned long value; @@ -422,6 +461,8 @@ static void update_exception_bitmap(struct kvm_vcpu *vcpu) eb |= 1u << 1; if (vcpu->arch.rmode.active) eb = ~0; + if (vm_need_ept()) + eb &= ~(1u << PF_VECTOR); /* bypass_guest_pf = 0 */ vmcs_write32(EXCEPTION_BITMAP, eb); } @@ -1352,8 +1393,64 @@ static void vmx_decache_cr4_guest_bits(struct kvm_vcpu *vcpu) vcpu->arch.cr4 |= vmcs_readl(GUEST_CR4) & ~KVM_GUEST_CR4_MASK; } +static void ept_load_pdptrs(struct kvm_vcpu *vcpu) +{ + if (is_paging(vcpu) && is_pae(vcpu) && !is_long_mode(vcpu)) { + if (!load_pdptrs(vcpu, vcpu->arch.cr3)) { + printk(KERN_ERR "EPT: Fail to load pdptrs!\n"); + return; + } + vmcs_write64(GUEST_PDPTR0, vcpu->arch.pdptrs[0]); + vmcs_write64(GUEST_PDPTR1, vcpu->arch.pdptrs[1]); + vmcs_write64(GUEST_PDPTR2, vcpu->arch.pdptrs[2]); + vmcs_write64(GUEST_PDPTR3, vcpu->arch.pdptrs[3]); + } +} + +static void vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4); + +static void ept_update_paging_mode_cr0(unsigned long *hw_cr0, + unsigned long cr0, + struct kvm_vcpu *vcpu) +{ + if (!(cr0 & X86_CR0_PG)) { + /* From paging/starting to nonpaging */ + vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, + vmcs_config.cpu_based_exec_ctrl | + (CPU_BASED_CR3_LOAD_EXITING | + CPU_BASED_CR3_STORE_EXITING)); + vcpu->arch.cr0 = cr0; + vmx_set_cr4(vcpu, vcpu->arch.cr4); + *hw_cr0 |= X86_CR0_PE | X86_CR0_PG; + *hw_cr0 &= ~X86_CR0_WP; + } else if (!is_paging(vcpu)) { + /* From nonpaging to paging */ + vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, + vmcs_config.cpu_based_exec_ctrl & + ~(CPU_BASED_CR3_LOAD_EXITING | + CPU_BASED_CR3_STORE_EXITING)); + vcpu->arch.cr0 = cr0; + vmx_set_cr4(vcpu, vcpu->arch.cr4); + if (!(vcpu->arch.cr0 & X86_CR0_WP)) + *hw_cr0 &= ~X86_CR0_WP; + } +} + +static void ept_update_paging_mode_cr4(unsigned long *hw_cr4, + struct kvm_vcpu *vcpu) +{ + if (!is_paging(vcpu)) { + *hw_cr4 &= ~X86_CR4_PAE; + *hw_cr4 |= X86_CR4_PSE; + } else if (!(vcpu->arch.cr4 & X86_CR4_PAE)) + *hw_cr4 &= ~X86_CR4_PAE; +} + static void vmx_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) { + unsigned long hw_cr0 = (cr0 & ~KVM_GUEST_CR0_MASK) | + KVM_VM_CR0_ALWAYS_ON; + vmx_fpu_deactivate(vcpu); if (vcpu->arch.rmode.active && (cr0 & X86_CR0_PE)) @@ -1371,29 +1468,61 @@ static void vmx_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) } #endif + if (vm_need_ept()) + ept_update_paging_mode_cr0(&hw_cr0, cr0, vcpu); + vmcs_writel(CR0_READ_SHADOW, cr0); - vmcs_writel(GUEST_CR0, - (cr0 & ~KVM_GUEST_CR0_MASK) | KVM_VM_CR0_ALWAYS_ON); + vmcs_writel(GUEST_CR0, hw_cr0); vcpu->arch.cr0 = cr0; if (!(cr0 & X86_CR0_TS) || !(cr0 & X86_CR0_PE)) vmx_fpu_activate(vcpu); } +static u64 construct_eptp(unsigned long root_hpa) +{ + u64 eptp; + + /* TODO write the value reading from MSR */ + eptp = VMX_EPT_DEFAULT_MT | + VMX_EPT_DEFAULT_GAW << VMX_EPT_GAW_EPTP_SHIFT; + eptp |= (root_hpa & PAGE_MASK); + + return eptp; +} + static void vmx_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3) { + unsigned long guest_cr3; + u64 eptp; + + guest_cr3 = cr3; + if (vm_need_ept()) { + eptp = construct_eptp(cr3); + vmcs_write64(EPT_POINTER, eptp); + ept_sync_context(eptp); + ept_load_pdptrs(vcpu); + guest_cr3 = is_paging(vcpu) ? vcpu->arch.cr3 : + VMX_EPT_IDENTITY_PAGETABLE_ADDR; + } + vmx_flush_tlb(vcpu); - vmcs_writel(GUEST_CR3, cr3); + vmcs_writel(GUEST_CR3, guest_cr3); if (vcpu->arch.cr0 & X86_CR0_PE) vmx_fpu_deactivate(vcpu); } static void vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) { - vmcs_writel(CR4_READ_SHADOW, cr4); - vmcs_writel(GUEST_CR4, cr4 | (vcpu->arch.rmode.active ? - KVM_RMODE_VM_CR4_ALWAYS_ON : KVM_PMODE_VM_CR4_ALWAYS_ON)); + unsigned long hw_cr4 = cr4 | (vcpu->arch.rmode.active ? + KVM_RMODE_VM_CR4_ALWAYS_ON : KVM_PMODE_VM_CR4_ALWAYS_ON); + vcpu->arch.cr4 = cr4; + if (vm_need_ept()) + ept_update_paging_mode_cr4(&hw_cr4, vcpu); + + vmcs_writel(CR4_READ_SHADOW, cr4); + vmcs_writel(GUEST_CR4, hw_cr4); } static void vmx_set_efer(struct kvm_vcpu *vcpu, u64 efer) @@ -2116,6 +2245,9 @@ static int handle_exception(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) if (intr_info & INTR_INFO_DELIVER_CODE_MASK) error_code = vmcs_read32(VM_EXIT_INTR_ERROR_CODE); if (is_page_fault(intr_info)) { + /* EPT won't cause page fault directly */ + if (vm_need_ept()) + BUG(); cr2 = vmcs_readl(EXIT_QUALIFICATION); KVMTRACE_3D(PAGE_FAULT, vcpu, error_code, (u32)cr2, (u32)((u64)cr2 >> 32), handler); @@ -2445,6 +2577,64 @@ static int handle_task_switch(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) return kvm_task_switch(vcpu, tss_selector, reason); } +static int handle_ept_violation(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + u64 exit_qualification; + enum emulation_result er; + gpa_t gpa; + unsigned long hva; + int gla_validity; + int r; + + exit_qualification = vmcs_read64(EXIT_QUALIFICATION); + + if (exit_qualification & (1 << 6)) { + printk(KERN_ERR "EPT: GPA exceeds GAW!\n"); + return -ENOTSUPP; + } + + gla_validity = (exit_qualification >> 7) & 0x3; + if (gla_validity != 0x3 && gla_validity != 0x1 && gla_validity != 0) { + printk(KERN_ERR "EPT: Handling EPT violation failed!\n"); + printk(KERN_ERR "EPT: GPA: 0x%lx, GVA: 0x%lx\n", + (long unsigned int)vmcs_read64(GUEST_PHYSICAL_ADDRESS), + (long unsigned int)vmcs_read64(GUEST_LINEAR_ADDRESS)); + printk(KERN_ERR "EPT: Exit qualification is 0x%lx\n", + (long unsigned int)exit_qualification); + kvm_run->exit_reason = KVM_EXIT_UNKNOWN; + kvm_run->hw.hardware_exit_reason = 0; + return -ENOTSUPP; + } + + gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS); + hva = gfn_to_hva(vcpu->kvm, gpa >> PAGE_SHIFT); + if (!kvm_is_error_hva(hva)) { + r = kvm_mmu_page_fault(vcpu, gpa & PAGE_MASK, 0); + if (r < 0) { + printk(KERN_ERR "EPT: Not enough memory!\n"); + return -ENOMEM; + } + return 1; + } else { + /* must be MMIO */ + er = emulate_instruction(vcpu, kvm_run, 0, 0, 0); + + if (er == EMULATE_FAIL) { + printk(KERN_ERR + "EPT: Fail to handle EPT violation vmexit!er is %d\n", + er); + printk(KERN_ERR "EPT: GPA: 0x%lx, GVA: 0x%lx\n", + (long unsigned int)vmcs_read64(GUEST_PHYSICAL_ADDRESS), + (long unsigned int)vmcs_read64(GUEST_LINEAR_ADDRESS)); + printk(KERN_ERR "EPT: Exit qualification is 0x%lx\n", + (long unsigned int)exit_qualification); + return -ENOTSUPP; + } else if (er == EMULATE_DO_MMIO) + return 0; + } + return 1; +} + /* * The exit handlers return 1 if the exit was handled fully and guest execution * may resume. Otherwise they set the kvm_run parameter to indicate what needs @@ -2468,6 +2658,7 @@ static int (*kvm_vmx_exit_handlers[])(struct kvm_vcpu *vcpu, [EXIT_REASON_APIC_ACCESS] = handle_apic_access, [EXIT_REASON_WBINVD] = handle_wbinvd, [EXIT_REASON_TASK_SWITCH] = handle_task_switch, + [EXIT_REASON_EPT_VIOLATION] = handle_ept_violation, }; static const int kvm_vmx_max_exit_handlers = @@ -2486,6 +2677,13 @@ static int kvm_handle_exit(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) KVMTRACE_3D(VMEXIT, vcpu, exit_reason, (u32)vmcs_readl(GUEST_RIP), (u32)((u64)vmcs_readl(GUEST_RIP) >> 32), entryexit); + /* Access CR3 don't cause VMExit in paging mode, so we need + * to sync with guest real CR3. */ + if (vm_need_ept() && is_paging(vcpu)) { + vcpu->arch.cr3 = vmcs_readl(GUEST_CR3); + ept_load_pdptrs(vcpu); + } + if (unlikely(vmx->fail)) { kvm_run->exit_reason = KVM_EXIT_FAIL_ENTRY; kvm_run->fail_entry.hardware_entry_failure_reason @@ -2494,7 +2692,8 @@ static int kvm_handle_exit(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) } if ((vectoring_info & VECTORING_INFO_VALID_MASK) && - exit_reason != EXIT_REASON_EXCEPTION_NMI) + (exit_reason != EXIT_REASON_EXCEPTION_NMI && + exit_reason != EXIT_REASON_EPT_VIOLATION)) printk(KERN_WARNING "%s: unexpected, valid vectoring info and " "exit reason is 0x%x\n", __func__, exit_reason); if (exit_reason < kvm_vmx_max_exit_handlers @@ -2796,6 +2995,15 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id) return ERR_PTR(-ENOMEM); allocate_vpid(vmx); + if (id == 0 && vm_need_ept()) { + kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK | + VMX_EPT_WRITABLE_MASK | + VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT); + kvm_mmu_set_mask_ptes(0ull, VMX_EPT_FAKE_ACCESSED_MASK, + VMX_EPT_FAKE_DIRTY_MASK, 0ull, + VMX_EPT_EXECUTABLE_MASK); + kvm_enable_tdp(); + } err = kvm_vcpu_init(&vmx->vcpu, kvm, id); if (err) @@ -2975,9 +3183,14 @@ static int __init vmx_init(void) vmx_disable_intercept_for_msr(vmx_msr_bitmap, MSR_IA32_SYSENTER_ESP); vmx_disable_intercept_for_msr(vmx_msr_bitmap, MSR_IA32_SYSENTER_EIP); + if (cpu_has_vmx_ept()) + bypass_guest_pf = 0; + if (bypass_guest_pf) kvm_mmu_set_nonpresent_ptes(~0xffeull, 0ull); + ept_sync_global(); + return 0; out2: diff --git a/arch/x86/kvm/vmx.h b/arch/x86/kvm/vmx.h index f97eccc..79d94c6 100644 --- a/arch/x86/kvm/vmx.h +++ b/arch/x86/kvm/vmx.h @@ -353,6 +353,15 @@ enum vmcs_field { #define VMX_EPT_EXTENT_CONTEXT_BIT (1ull << 25) #define VMX_EPT_EXTENT_GLOBAL_BIT (1ull << 26) #define VMX_EPT_DEFAULT_GAW 3 +#define VMX_EPT_MAX_GAW 0x4 +#define VMX_EPT_MT_EPTE_SHIFT 3 +#define VMX_EPT_GAW_EPTP_SHIFT 3 +#define VMX_EPT_DEFAULT_MT 0x6ull +#define VMX_EPT_READABLE_MASK 0x1ull +#define VMX_EPT_WRITABLE_MASK 0x2ull +#define VMX_EPT_EXECUTABLE_MASK 0x4ull +#define VMX_EPT_FAKE_ACCESSED_MASK (1ull << 62) +#define VMX_EPT_FAKE_DIRTY_MASK (1ull << 63) #define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h index f03ef75..54a8f77 100644 --- a/include/asm-x86/kvm_host.h +++ b/include/asm-x86/kvm_host.h @@ -650,6 +650,7 @@ static inline void kvm_inject_gp(struct kvm_vcpu *vcpu, u32 error_code) #define ASM_VMX_VMWRITE_RSP_RDX ".byte 0x0f, 0x79, 0xd4" #define ASM_VMX_VMXOFF ".byte 0x0f, 0x01, 0xc4" #define ASM_VMX_VMXON_RAX ".byte 0xf3, 0x0f, 0xc7, 0x30" +#define ASM_VMX_INVEPT ".byte 0x66, 0x0f, 0x38, 0x80, 0x08" #define ASM_VMX_INVVPID ".byte 0x66, 0x0f, 0x38, 0x81, 0x08" #define MSR_IA32_TIME_STAMP_COUNTER 0x010 -- 1.5.4.5 |
From: Michal L. <ml...@lo...> - 2008-04-28 01:44:56
|
Avi Kivity wrote: > Avi Kivity wrote: >> Michal Ludvig wrote: >>> Hi, >>> >>> I've experienced a kernel Oops on 2.6.24 with kvm 66 on AMD in 64bit >>> mode while starting up WinXP: >>> >>> kvm: emulating exchange as write >>> Unable to handle kernel NULL pointer dereference at 0000000000000000 >>> RIP: >>> [<ffffffff883a7a5a>] :kvm:x86_emulate_insn+0x3fa/0x4240 >>> PGD 7658d067 PUD 242a6067 PMD 0 >>> Oops: 0002 [1] SMP >>> [...] >>> The host is still alive but the XP guest is locked up in a boot screen. >>> >>> >> >> Please mail me (privately) an 'objdump -Sr x86_emulate.o' from the >> kernel directory, so we can see where this happened. >> > > Ok. Please try with the attached patch and let us know. Also repeat > without the patch, so we can be sure it is easily reproducible. Hi, the patch fixed the problem, thanks. It was 100% reproducible (Oops in 3 out of 3 attempts) and now it booted up. Michal |
From: SourceForge.net <no...@so...> - 2008-04-27 22:25:55
|
Bugs item #1952988, was opened at 2008-04-27 15:25 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1952988&group_id=180599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: kernel Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Carlo Marcelo Arenas Belon (carenas) Assigned to: Nobody/Anonymous (nobody) Summary: in-kernel PIT blocks DragonFlyBSD from booting Initial Comment: starting with kvm 64, DragonFlyBSD guests won't be able to boot unless -no-kvm-pit or -no-kvm-irqchip is used (-no-kvm works as well) : cpu model: Intel(R) Core(TM)2 CPU kvm version: kvm 66 (kvm>=64 fails, kvm<=63 works) host kernel: 2.6.24-gentoo-r4 (SMP) host arch: x86_64 to replicate, download dragonfly ISO (it is a livecd) and boot from it : kvm -curses -cdrom dfly-1.12.2_REL.iso -boot d ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=893831&aid=1952988&group_id=180599 |
From: Avi K. <av...@qu...> - 2008-04-27 21:01:55
|
Mohammed Gamal wrote: > Hi, > I was trying to compile the code from kvm-userspace.git against the > kernel from kvm.git tree. I ran configure --with-patched-kernel and I > got this error: > > ../libkvm/libkvm.h:385: error: expected '=', ',', ';', 'asm' or > Last commit broke libkvm. I pushed out a fix. -- Any sufficiently difficult bug is indistinguishable from a feature. |
From: David A. <da...@bo...> - 2008-04-27 20:07:57
|
Avi Kivity wrote: > David Abrahams wrote: >> If I suspend my host while running a Windows XP guest, the whole machine >> crashes, so I was hoping to automate hibernation of the guest OS and >> integrate that into my host's suspend process. Does anyone know how to >> do that? >> >> > > It's doable (not sure how), but kvm ought not to crash when resuming. Surely. Of course I would prefer for that bug to be fixed ;-) -- Dave Abrahams Boost Consulting http://boost-consulting.com |
From: David A. <da...@bo...> - 2008-04-27 20:07:29
|
Avi Kivity wrote: > David Abrahams wrote: >> Cam Macdonell wrote: >> >>> David Abrahams wrote: >>> >>>> If I suspend my host while running a Windows XP guest, the whole >>>> machine >>>> crashes, so I was hoping to automate hibernation of the guest OS and >>>> integrate that into my host's suspend process. Does anyone know how to >>>> do that? >>>> >>>> >>> Hi Dave, >>> >>> What host OS are you running? >>> >> >> Ubuntu 8.04 Hardy Heron >> > > It's certainly new enough to support suspend/resume with running VMs. > What kernel does it have? $ uname -a Linux mcbain 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux -- Dave Abrahams Boost Consulting http://boost-consulting.com |