Re: [PATCH 8/9] coalesce mmio regions with an explicit call
Glauber Costa wrote: Remove explicit calls to mmio coalescing. Rather, include it in the registration functions. OK. On real SVM HW this seems to work. However now i'm stumbled upon another problem wrt. NMI. See another mail. -- With best wishes Dmitry se -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] coalesce mmio regions with an explicit call
Glauber Costa wrote: Any ideas about what's up for the other hypervisors that may (we hope) be integrated in the future? Xen? Xen should benefit even more (much more). IIRC Windows wouldn't boot since it was spending all its time context switching when the splash screen with its KITT bar was displayed, so they hacked something for vga, but nothing generic. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] coalesce mmio regions with an explicit call
On Thu, Sep 25, 2008 at 10:08:53AM +0300, Avi Kivity wrote: Glauber Costa wrote: Any ideas about what's up for the other hypervisors that may (we hope) be integrated in the future? Xen? Xen should benefit even more (much more). IIRC Windows wouldn't boot since it was spending all its time context switching when the splash screen with its KITT bar was displayed, so they hacked something for vga, but nothing generic. That's the point. It's not just a word play between qemu and kvm, because if we introduce generic hooks that kvm happens to fill, but qemu not, other hypervirors may (we hope) fill it in the future. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] coalesce mmio regions with an explicit call
Glauber Costa wrote: You can't coalesce the registers which trigger device action. You'll destroy latency and/or functionality. which kills the goal of getting rid of explicit kvm code. It's a fact that coalescing helps kvm but not qemu. So maybe the solution here is to add calls in qemu to a memory coalescing function that in the raw qemu / kqemu case just don't do anything? That's just word games. s/kvm/qemu/ won't change the fact that this is a kvm specific hook. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] coalesce mmio regions with an explicit call
On Tue, Sep 23, 2008 at 10:29:48AM +0300, Avi Kivity wrote: Glauber Costa wrote: On Sat, Sep 20, 2008 at 11:39:44AM -0700, Avi Kivity wrote: Glauber Costa wrote: Remove explicit calls to mmio coalescing. Rather, include it in the registration functions. index 5ae3960..2d97b34 100644 --- a/qemu/hw/e1000.c +++ b/qemu/hw/e1000.c @@ -942,18 +942,6 @@ e1000_mmio_map(PCIDevice *pci_dev, int region_num, d-mmio_base = addr; cpu_register_physical_memory(addr, PNPMMIO_SIZE, d-mmio_index); - -if (kvm_enabled()) { - int i; -uint32_t excluded_regs[] = { -E1000_MDIC, E1000_ICR, E1000_ICS, E1000_IMS, -E1000_IMC, E1000_TCTL, E1000_TDT, PNPMMIO_SIZE -}; -qemu_kvm_register_coalesced_mmio(addr, excluded_regs[0]); -for (i = 0; excluded_regs[i] != PNPMMIO_SIZE; i++) -qemu_kvm_register_coalesced_mmio(addr + excluded_regs[i] + 4, - excluded_regs[i + 1] - excluded_regs[i] - 4); -} } Where did all of this go? All the region is coalesced (not just the pieces) automatically during memory registration. Or not at all, in case coalescing is disabled. You can't coalesce the registers which trigger device action. You'll destroy latency and/or functionality. which kills the goal of getting rid of explicit kvm code. So maybe the solution here is to add calls in qemu to a memory coalescing function that in the raw qemu / kqemu case just don't do anything? Anthony, do you have an opinion about it ? -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] coalesce mmio regions with an explicit call
On Sat, Sep 20, 2008 at 11:39:44AM -0700, Avi Kivity wrote: Glauber Costa wrote: Remove explicit calls to mmio coalescing. Rather, include it in the registration functions. index 5ae3960..2d97b34 100644 --- a/qemu/hw/e1000.c +++ b/qemu/hw/e1000.c @@ -942,18 +942,6 @@ e1000_mmio_map(PCIDevice *pci_dev, int region_num, d-mmio_base = addr; cpu_register_physical_memory(addr, PNPMMIO_SIZE, d-mmio_index); - -if (kvm_enabled()) { -int i; -uint32_t excluded_regs[] = { -E1000_MDIC, E1000_ICR, E1000_ICS, E1000_IMS, -E1000_IMC, E1000_TCTL, E1000_TDT, PNPMMIO_SIZE -}; -qemu_kvm_register_coalesced_mmio(addr, excluded_regs[0]); -for (i = 0; excluded_regs[i] != PNPMMIO_SIZE; i++) -qemu_kvm_register_coalesced_mmio(addr + excluded_regs[i] + 4, - excluded_regs[i + 1] - excluded_regs[i] - 4); -} } Where did all of this go? All the region is coalesced (not just the pieces) automatically during memory registration. Or not at all, in case coalescing is disabled. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 8/9] coalesce mmio regions with an explicit call
Glauber Costa wrote: Remove explicit calls to mmio coalescing. Rather, include it in the registration functions. index 5ae3960..2d97b34 100644 --- a/qemu/hw/e1000.c +++ b/qemu/hw/e1000.c @@ -942,18 +942,6 @@ e1000_mmio_map(PCIDevice *pci_dev, int region_num, d-mmio_base = addr; cpu_register_physical_memory(addr, PNPMMIO_SIZE, d-mmio_index); - -if (kvm_enabled()) { - int i; -uint32_t excluded_regs[] = { -E1000_MDIC, E1000_ICR, E1000_ICS, E1000_IMS, -E1000_IMC, E1000_TCTL, E1000_TDT, PNPMMIO_SIZE -}; -qemu_kvm_register_coalesced_mmio(addr, excluded_regs[0]); -for (i = 0; excluded_regs[i] != PNPMMIO_SIZE; i++) -qemu_kvm_register_coalesced_mmio(addr + excluded_regs[i] + 4, - excluded_regs[i + 1] - excluded_regs[i] - 4); -} } Where did all of this go? -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html