kvm-37 release
This release merges the pic/lapic/ioapic into mainline. While some known issues exist, we're now at the point where it's better to get some wider exposure rather than keep it alone on a branch.
Some regressions are expected; please report them as they appear. A new qmeu option -no-kvm-irqchip is available to disable the new functionality.
While many people are listed in the credits for this effort, I'd like to thank Eddie and Qing for persevering and doing the hard work of actually getting it in a form suitable for inclusion and fixing the bugs. This release is mostly their work.
Changes since kvm-36:
- in-kernel lapic, ioapic, and pic (Eddie Dong, Qing He, Sheng Yang, Gregory Haskins, Dor Laor, me)
- split segment reload (vmx microoptimization) (Laurent Vivier)
- fix vga redraw regression (Izik Eidus)
- fix testsuite compilation with older assemblers (H. Peter Anvin)
Notes:
If you use the modules bundled with kvm-37, you can use any version
of Linux from 2.6.9 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.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Quoted 7 lines · On Sun, 09 Sep 2007 14:05:13 +0300 Avi Kivity…
This release merges the pic/lapic/ioapic into mainline. While some known issues exist, we're now at the point where it's better to get some wider exposure rather than keep it alone on a branch.
Some regressions are expected; please report them as they appear. A new qmeu option -no-kvm-irqchip is available to disable the new functionality.
My experience so far:
On 32-bit Intel host, lapic fails to link due to missing 64bit division. I tried the attached patch to fix the build, but Windows XP froze before showing the booting screen. With -no-kvm-irqchip they work, except the IE plugins like Flash & Java, which are broken since kvm-29. With -no-kvm, qemu-system-x86_64 segfaults immediately.
Regards,
Signature · 1 line
Jindrich Makovicka
lapic.c renamed from lapic.c~ +3 -2
@@ -31,6 +31,7 @@#include <asm/current.h> #include <asm/apicdef.h> #include <asm/atomic.h> +#include <asm/div64.h> #include "irq.h" #define PRId64 "d"
@@ -511,8 +512,8 @@ }else passed =ktime_sub (now, apic->timer.last_update); - counter_passed =ktime_to_ns (passed) / - (APIC_BUS_CYCLE_NS * apic->timer.divide_count); + counter_passed =div64_64 (ktime_to_ns (passed), + (APIC_BUS_CYCLE_NS * apic->timer.divide_count)); tmcct -= counter_passed;if (tmcct <=0 ) {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
A message that is not in the archive (sent off-list or not yet received): 46E3D369.8000401-atKUWr5tajBWk0Htik3J/[email protected]
kvm-37 problem w/ 64-bit division in lapic.c
Quoted 7 lines · On Sun, 09 Sep 2007 14:05:13 +0300 Avi Kivity…
This release merges the pic/lapic/ioapic into mainline. While some known issues exist, we're now at the point where it's better to get some wider exposure rather than keep it alone on a branch.
Some regressions are expected; please report them as they appear. A new qmeu option -no-kvm-irqchip is available to disable the new functionality.
(message seems to get stuck at gmane, sorry if it appears twice eventually)
My experience so far:
On 32-bit Intel host, lapic fails to link due to missing 64bit division. I tried the attached patch to fix the build, but Windows XP froze before showing the booting screen. With -no-kvm-irqchip they work, except the IE plugins like Flash & Java, which are broken since kvm-29. With -no-kvm, qemu-system-x86_64 segfaults immediately.
Regards,
Signature · 1 line
Jindrich Makovicka
lapic.c renamed from lapic.c~ +3 -2
@@ -31,6 +31,7 @@#include <asm/current.h> #include <asm/apicdef.h> #include <asm/atomic.h> +#include <asm/div64.h> #include "irq.h" #define PRId64 "d"
@@ -511,8 +512,8 @@ }else passed =ktime_sub (now, apic->timer.last_update); - counter_passed =ktime_to_ns (passed) / - (APIC_BUS_CYCLE_NS * apic->timer.divide_count); + counter_passed =div64_64 (ktime_to_ns (passed), + (APIC_BUS_CYCLE_NS * apic->timer.divide_count)); tmcct -= counter_passed;if (tmcct <=0 ) {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
Avi Kivity
AppliedRe: kvm-37 problem w/ 64-bit division in lapic.c
Quoted 16 lines · Jindrich Makovicka
Quoted 8 lines · On Sun, 09 Sep 2007 14:05:13 +0300 Avi Kivity…
This release merges the pic/lapic/ioapic into mainline. While some known issues exist, we're now at the point where it's better to get some wider exposure rather than keep it alone on a branch.
Some regressions are expected; please report them as they appear. A new qmeu option -no-kvm-irqchip is available to disable the new functionality.
(message seems to get stuck at gmane, sorry if it appears twice eventually)
Quoted 9 lines
My experience so far:
On 32-bit Intel host, lapic fails to link due to missing 64bit division. I tried the attached patch to fix the build, but Windows XP froze before showing the booting screen. With -no-kvm-irqchip they work, except the IE plugins like Flash & Java, which are broken since kvm-29. With -no-kvm, qemu-system-x86_64 segfaults immediately.
Applied, thanks. Please supply a signed-off-by line with future patches.
Signature · 7 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Re: kvm-37 problem w/ 64-bit division in lapic.c
In reply to Jindrich MakovickaQuoted 22 lines · kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org wrote:
Quoted 7 lines · On Sun, 09 Sep 2007 14:05:13 +0300 Avi Kivity…
This release merges the pic/lapic/ioapic into mainline. While some known issues exist, we're now at the point where it's better to get some wider exposure rather than keep it alone on a branch.
Some regressions are expected; please report them as they appear. A new qmeu option -no-kvm-irqchip is available to disable the new functionality.
(message seems to get stuck at gmane, sorry if it appears twice eventually)
My experience so far:
On 32-bit Intel host, lapic fails to link due to missing 64bit division. I tried the attached patch to fix the build, but Windows XP froze before showing the booting screen. With -no-kvm-irqchip they work, except the IE plugins like Flash & Java, which are broken since kvm-29. With -no-kvm, qemu-system-x86_64 segfaults immediately.
Quoted 3 lines
Regards,
--
Jindrich Makovicka
div64_32 is enough, does this function exist?
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A02108583-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Re: kvm-37 problem w/ 64-bit division in lapic.c
Quoted 23 lines · Eddie
Quoted 22 lines · kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org wrote:
Quoted 7 lines · On Sun, 09 Sep 2007 14:05:13 +0300 Avi Kivity…
This release merges the pic/lapic/ioapic into mainline. While some known issues exist, we're now at the point where it's better to get some wider exposure rather than keep it alone on a branch.
Some regressions are expected; please report them as they appear. A new qmeu option -no-kvm-irqchip is available to disable the new functionality.
(message seems to get stuck at gmane, sorry if it appears twice eventually)
My experience so far:
On 32-bit Intel host, lapic fails to link due to missing 64bit division. I tried the attached patch to fix the build, but Windows XP froze before showing the booting screen. With -no-kvm-irqchip they work, except the IE plugins like Flash & Java, which are broken since kvm-29. With -no-kvm, qemu-system-x86_64 segfaults immediately.
Quoted 5 lines
Quoted 3 lines
Regards,
--
Jindrich Makovicka
div64_32is enough, does this function exist?
afaik, __div64_32 is architecture specific, but do_div() could be actually used here.
Signature · 6 lines
Jindrich Makovicka ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
A message that is not in the archive (sent off-list or not yet received): 5f0e26840709100249y239692c2gcdd3938fc6b23b6c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Re: kvm-37 problem w/ 64-bit division in lapic.c
Quoted 5 lines · On Mon, 10 Sep 2007 11:49:02 +0200 "Jindrich Makovicka"…
Quoted 1 line · Eddie
div64_32is enough, does this function exist?afaik,
__div64_32is architecture specific, butdo_div()could be actually used here.
This version should be faster.
Signature · 1 line
Jindrich Makovicka
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: kvm-37 problem w/ 64-bit division in lapic.c
Quoted 6 lines · Jindrich Makovicka
Quoted 2 lines · On Mon, 10 Sep 2007 11:49:02 +0200 "Jindrich Makovicka"…
On 9/10/07, Dong, Eddie <[email protected]> wrote:
Quoted 9 lines
Quoted 5 lines
Quoted 2 lines
div64_32is enough, does this function exist?afaik,
__div64_32is architecture specific, butdo_div()could be actually used here.This version should be faster.
[please don't post patches with extensions like ".diff2", which don't show in the mail reader]
Quoted 6 lines
(quoted diff) +1
-1- u32 counter_passed; + u64 counter_passed; ktime_t passed, now = apic->timer.dev.base->get_time(); u32 tmcct = apic_get_reg(apic, APIC_TMICT);
Review static u32 apic_get_tmcct(struct kvm_lapic *apic) · line 519
Quoted 10 lines
(quoted diff) +2
-2@@ -512,8 +512,8 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic) } else passed = ktime_sub(now, apic->timer.last_update); - counter_passed = div64_64(ktime_to_ns(passed), - (APIC_BUS_CYCLE_NS * apic->timer.divide_count)); + counter_passed = ktime_to_ns(passed); + do_div(counter_passed, APIC_BUS_CYCLE_NS * apic->timer.divide_count); tmcct -= counter_passed;
What if counter_passed overflows? Sure, that means kvm wasn't scheduled for 4 seconds, but it could happen.
Signature · 7 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
A message that is not in the archive (sent off-list or not yet received): 46E79DCA.70101-atKUWr5tajBWk0Htik3J/[email protected]
Re: kvm-37 problem w/ 64-bit division in lapic.c
Quoted 29 lines · kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org wrote:
Quoted 6 lines · Jindrich Makovicka
Quoted 2 lines · On Mon, 10 Sep 2007 11:49:02 +0200 "Jindrich Makovicka"…
On 9/10/07, Dong, Eddie <[email protected]> wrote:
Quoted 9 lines
Quoted 5 lines
Quoted 2 lines
div64_32is enough, does this function exist?afaik,
__div64_32is architecture specific, butdo_div()could be actually used here.This version should be faster.
[please don't post patches with extensions like ".diff2", which don't show in the mail reader]
Quoted 9 lines
(quoted diff) +1
-1- u32 counter_passed; + u64 counter_passed; ktime_t passed, now = apic->timer.dev.base->get_time(); u32 tmcct = apic_get_reg(apic, APIC_TMICT);@@ -512,8 +512,8 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic) } else passed = ktime_sub(now, apic->timer.last_update);
Quoted 11 lines
Quoted 6 lines
(quoted diff) +0
-2- counter_passed = div64_64(ktime_to_ns(passed), - (APIC_BUS_CYCLE_NS *
apic->timer.divide_count)); +counter_passed=ktime_to_ns(passed); + do_div(counter_passed,APIC_BUS_CYCLE_NS * apic->timer.divide_count); tmcct -= counter_passed;What if
counter_passedoverflows? Sure, that means kvm wasn't scheduled for 4 seconds, but it could happen.
It won't happen. see
passed = ktime_sub(now, apic->timer.last_update);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
A message that is not in the archive (sent off-list or not yet received): 10EA09EFD8728347A513008B6B0DA77A0210915A-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org
Re: kvm-37 problem w/ 64-bit division in lapic.c
Quoted 48 lines · Eddie
Quoted 34 lines · kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org wrote:
Quoted 8 lines · Jindrich Makovicka
Quoted 3 lines · On Mon, 10 Sep 2007 11:49:02 +0200 "Jindrich Makovicka"…
On 9/10/07, Dong, Eddie <[email protected]> wrote:
Quoted 11 lines
Quoted 7 lines
Quoted 3 lines
div64_32is enough, does this function exist?afaik,
__div64_32is architecture specific, butdo_div()could be actually used here.This version should be faster.
[please don't post patches with extensions like ".diff2", which don't show in the mail reader]
Quoted 9 lines
(quoted diff) +1
-1- u32 counter_passed; + u64 counter_passed; ktime_t passed, now = apic->timer.dev.base->get_time(); u32 tmcct = apic_get_reg(apic, APIC_TMICT);@@ -512,8 +512,8 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic) } else passed = ktime_sub(now, apic->timer.last_update);Quoted 12 lines
Quoted 7 lines
(quoted diff) +0
-2- counter_passed = div64_64(ktime_to_ns(passed), - (APIC_BUS_CYCLE_NS *
apic->timer.divide_count)); +counter_passed=ktime_to_ns(passed); + do_div(counter_passed,APIC_BUS_CYCLE_NS * apic->timer.divide_count); tmcct -= counter_passed;What if
counter_passedoverflows? Sure, that means kvm wasn't scheduled for 4 seconds, but it could happen.
Quoted 3 lines
It won't happen. see
passed =ktime_sub(now, apic->timer.last_update);
Ah, okay.
I'll clean it up later. I'd like to proceed with the more important fixes first.
Signature · 7 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/