Re: [PATCH 03/13] qemu-kvm: Drop -enable-nesting command line switch

2011-06-28 Thread Avi Kivity
On 06/28/2011 01:52 PM, Jan Kiszka wrote: On 2011-06-28 12:48, Roedel, Joerg wrote: > On Mon, Jun 27, 2011 at 02:19:46PM -0400, Jan Kiszka wrote: >> From: Jan Kiszka >> >> Link it is already handling in upstream, this feature can be controlled Ugh, I must have been drunken. "Like it is alrea

Re: [RFC v2 01/20] Hierarchical memory region API

2011-06-28 Thread Avi Kivity
On 06/28/2011 01:03 PM, Michael S. Tsirkin wrote: On Mon, Jun 27, 2011 at 04:21:48PM +0300, Avi Kivity wrote: ... > +static bool memory_region_access_valid(MemoryRegion *mr, > + target_phys_addr_t addr, > +

Re: [RFC v2 01/20] Hierarchical memory region API

2011-06-28 Thread Avi Kivity
On 06/28/2011 01:28 PM, Jan Kiszka wrote: On 2011-06-28 12:03, Michael S. Tsirkin wrote: >> +struct MemoryRegion { >> +/* All fields are private - violators will be prosecuted */ >> +const MemoryRegionOps *ops; >> +MemoryRegion *parent; >> +uint64_t size; >> +target_phys

Re: [RFC v2 01/20] Hierarchical memory region API

2011-06-28 Thread Avi Kivity
On 06/28/2011 03:07 PM, Jan Kiszka wrote: > > The point is that different buses have different widths. > target_phys_addr_t matches just one bus in the system. It needs to be > the maximum size of all buses present to be useful. Then we need a type for that. Or we need to demand that target_

Re: [RFC v2 01/20] Hierarchical memory region API

2011-06-28 Thread Avi Kivity
On 06/28/2011 03:46 PM, Jan Kiszka wrote: > Do we want to support a 32-bit variant of pci? It certainly existed at > some point. As long as making everything 64 bit in the implementation of the device models is not guest visible, I don't think that should be a problem. How would it become

Re: [Qemu-devel] [RFC v2 01/20] Hierarchical memory region API

2011-06-28 Thread Avi Kivity
On 06/28/2011 04:25 PM, Peter Maydell wrote: On 28 June 2011 13:09, Avi Kivity wrote: > Okay, let's make t_p_a_t max(bus size in system). If you want a type for that, can't you give it a sensible (ie different) name? target_phys_addr_t is pretty clearly "the type of a ph

Re: [Qemu-devel] KVM call agenda for June 28

2011-06-28 Thread Avi Kivity
On 06/28/2011 04:43 PM, Anthony Liguori wrote: FYI, I'm in an all-day meeting so I can't attend. Did you do something really bad? -- 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 majord

Re: [PATCH v2 00/11] KVM in-guest performance monitoring

2011-06-29 Thread Avi Kivity
On 06/13/2011 04:34 PM, Avi Kivity wrote: This patchset exposes an emulated version 1 architectural performance monitoring unit to KVM guests. The PMU is emulated using perf_events, so the host kernel can multiplex host-wide, host-user, and the guest on available resources. Caveats: - counters

Re: [PATCH v2 03/22] KVM: x86: fix broken read emulation spans a page boundary

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:29 PM, Xiao Guangrong wrote: If the range spans a boundary, the mmio access can be broke, fix it as write emulation. And we already get the guest physical address, so use it to read guest data directly to avoid walking guest page table again Signed-off-by: Xiao Guangrong ---

Re: [PATCH v2 04/22] KVM: x86: introduce vcpu_gva_to_gpa to cleanup the code

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:29 PM, Xiao Guangrong wrote: Introduce vcpu_gva_to_gpa to translate the gva to gpa, we can use it to cleanup the code between read emulation and write emulation Signed-off-by: Xiao Guangrong --- arch/x86/kvm/x86.c | 38 +- 1 files changed

Re: [PATCH v2 05/22] KVM: x86: abstract the operation for read/write emulation

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:30 PM, Xiao Guangrong wrote: The operations of read emulation and write emulation are very similar, so we can abstract the operation of them, in larter patch, it is used to cleanup the same code Signed-off-by: Xiao Guangrong --- arch/x86/kvm/x86.c | 72 ++

Re: [PATCH v2 07/22] KVM: MMU: cache mmio info on page fault path

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:31 PM, Xiao Guangrong wrote: If the page fault is caused by mmio, we can cache the mmio info, later, we do not need to walk guest page table and quickly know it is a mmio fault while we emulate the mmio instruction Does this work if the mmio spans two pages? -- error compiling

Re: [PATCH v2 19/22] KVM: MMU: lockless walking shadow page table

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:35 PM, Xiao Guangrong wrote: Use rcu to protect shadow pages table to be freed, so we can safely walk it, it should run fastly and is needed by mmio page fault static void kvm_mmu_commit_zap_page(struct kvm *kvm, struct list_head *invalid

Re: [PATCH v2 21/22] KVM: MMU: mmio page fault support

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:36 PM, Xiao Guangrong wrote: The idea is from Avi: | We could cache the result of a miss in an spte by using a reserved bit, and | checking the page fault error code (or seeing if we get an ept violation or | ept misconfiguration), so if we get repeated mmio on a page, we don't

Re: [PATCH v2 0/22] KVM: optimize for MMIO handled

2011-06-29 Thread Avi Kivity
On 06/22/2011 05:27 PM, Xiao Guangrong wrote: In this version, we fix the bugs in the v1: - fix broken read emulation spans a page boundary - fix invalid spte point is got if we walk shadow page table out of the mmu lock And, we also introduce some rules to modify spte in this version, then i

Re: [PATCH v2 00/11] KVM in-guest performance monitoring

2011-06-29 Thread Avi Kivity
On 06/29/2011 11:38 AM, Peter Zijlstra wrote: > > Peter, can you look at 1-3 please? Queued them, thanks! I was more or less waiting for a next iteration of the series because of those problems reported, but those three stand well on their own. Thanks. I'm mired in other work but will retur

Re: [PATCH 0/5] perf support for amd guest/host-only bits v2

2011-06-29 Thread Avi Kivity
On 06/29/2011 12:02 PM, Peter Zijlstra wrote: > > have you had a chance to look at this patch-set? Are any changes > required? I would feel a lot more comfortable by having it implemented on all of x86 as well as at least one !x86 platform. Avi graciously volunteered for the Intel bits. Sill

Re: [PATCH v2 04/22] KVM: x86: introduce vcpu_gva_to_gpa to cleanup the code

2011-06-29 Thread Avi Kivity
On 06/29/2011 01:56 PM, Xiao Guangrong wrote: On 06/29/2011 04:24 PM, Avi Kivity wrote: >> +static int vcpu_gva_to_gpa(struct kvm_vcpu *vcpu, unsigned long gva, >> + gpa_t *gpa, struct x86_exception *exception, >> + bool write) >>

Re: [PATCH v2 07/22] KVM: MMU: cache mmio info on page fault path

2011-06-29 Thread Avi Kivity
On 06/29/2011 02:09 PM, Xiao Guangrong wrote: On 06/29/2011 04:48 PM, Avi Kivity wrote: > On 06/22/2011 05:31 PM, Xiao Guangrong wrote: >> If the page fault is caused by mmio, we can cache the mmio info, later, we do >> not need to walk guest page table and quickly know it

Re: [PATCH v2 19/22] KVM: MMU: lockless walking shadow page table

2011-06-29 Thread Avi Kivity
On 06/29/2011 02:16 PM, Xiao Guangrong wrote: >> @@ -1767,6 +1874,14 @@ static void kvm_mmu_commit_zap_page(struct kvm *kvm, >> >>kvm_flush_remote_tlbs(kvm); >> >> +if (atomic_read(&kvm->arch.reader_counter)) { >> +kvm_mmu_isolate_pages(invalid_list); >> +sp = list

Re: [PATCH v2 03/22] KVM: x86: fix broken read emulation spans a page boundary

2011-06-29 Thread Avi Kivity
On 06/29/2011 01:53 PM, Xiao Guangrong wrote: On 06/29/2011 04:21 PM, Avi Kivity wrote: >> >> -if (kvm_read_guest_virt(ctxt, addr, val, bytes, exception) >> -== X86EMUL_CONTINUE) >> +if (!kvm_read_guest(vcpu->kvm, gpa, val, bytes)) >>

Re: [PATCH v2 04/22] KVM: x86: introduce vcpu_gva_to_gpa to cleanup the code

2011-06-29 Thread Avi Kivity
On 06/29/2011 02:26 PM, Xiao Guangrong wrote: On 06/29/2011 07:09 PM, Avi Kivity wrote: > On 06/29/2011 01:56 PM, Xiao Guangrong wrote: >> On 06/29/2011 04:24 PM, Avi Kivity wrote: >> >> >> +static int vcpu_gva_to_gpa(struct kvm_vcpu *vcpu, unsigned long gva, >

[GIT PULL] KVM fix for Linux 3.0-rc5

2011-06-29 Thread Avi Kivity
; this is now fixed. Avi Kivity (1): KVM: x86 emulator: fix %rip-relative addressing with immediate source operand arch/x86/kvm/emulate.c | 12 +++- 1 files changed, 7 insertions(+), 5 deletions(-) -- error compiling committee.c: too many arguments to function -- To

Re: [PATCH v2 19/22] KVM: MMU: lockless walking shadow page table

2011-06-29 Thread Avi Kivity
On 06/29/2011 02:50 PM, Xiao Guangrong wrote: >> > >> > I think we should do this unconditionally. The cost of ping-ponging the shared cache line containing reader_counter will increase with large smp counts. On the other hand, zap_page is very rare, so it can be a little slower. Also, l

Re: [PATCH v2 19/22] KVM: MMU: lockless walking shadow page table

2011-06-29 Thread Avi Kivity
On 06/29/2011 03:28 PM, Xiao Guangrong wrote: On 06/29/2011 08:18 PM, Avi Kivity wrote: > On 06/29/2011 02:50 PM, Xiao Guangrong wrote: >> >> > >> >> >I think we should do this unconditionally. The cost of ping-ponging the shared cache line contai

Re: [PATCH v2 19/22] KVM: MMU: lockless walking shadow page table

2011-06-29 Thread Avi Kivity
On 06/29/2011 03:39 PM, Xiao Guangrong wrote: > > Ok. Let's drop the two paths, and put this improvement on the TODO instead. > Avi, i am sorry, i do not understand it clearly, it means keep the patch as the original way and do the improvement after it merged? I mean, do all freeing using RC

[PATCH 0/3] Preparatory perf patches for KVM PMU support

2011-06-29 Thread Avi Kivity
further work on the KVM PMU easier. Avi Kivity (3): perf: add context field to perf_event x86, perf: add constraints for architectural PMU v1 perf: export perf_event_refresh() to modules arch/arm/kernel/ptrace.c|3 ++- arch/powerpc/kernel/ptrace.c|2

[PATCH 1/3] perf: add context field to perf_event

2011-06-29 Thread Avi Kivity
er to perf_event_create_kernel_counter() (and derived hardware breakpoints APIs) and storing it in the perf_event. The field can be accessed from the callback as event->overflow_handler_context. All callers are updated. Signed-off-by: Avi Kivity --- arch/arm/kernel/ptrace.c|3 ++- arch

[PATCH 3/3] perf: export perf_event_refresh() to modules

2011-06-29 Thread Avi Kivity
KVM needs one-shot samples, since a PMC programmed to -X will fire after X events and then again after 2^40 events (i.e. variable period). Signed-off-by: Avi Kivity --- include/linux/perf_event.h |5 + kernel/events/core.c |3 ++- 2 files changed, 7 insertions(+), 1 deletions

[PATCH 2/3] x86, perf: add constraints for architectural PMU v1

2011-06-29 Thread Avi Kivity
The v1 PMU does not have any fixed counters. Using the v2 constraints, which do have fixed counters, causes an additional choice to be present in the weight calculation, but not when actually scheduling the event, leading to an event being not scheduled at all. Signed-off-by: Avi Kivity

Re: [PATCH 1/3] perf: add context field to perf_event

2011-06-29 Thread Avi Kivity
On 06/29/2011 07:08 PM, Frederic Weisbecker wrote: On Wed, Jun 29, 2011 at 06:42:35PM +0300, Avi Kivity wrote: > The perf_event overflow handler does not receive any caller-derived > argument, so many callers need to resort to looking up the perf_event > in their local data structu

Re: [PATCH 3/9] kvm tools: Allow giving instance names

2011-06-30 Thread Avi Kivity
On 06/30/2011 10:53 AM, Pekka Enberg wrote: On Wed, 29 Jun 2011, Sasha Levin wrote: This will allow tracking instance names and sending commands to specific instances if multiple instances are running. Signed-off-by: Sasha Levin I skipped this and related patches because I really would like

Re: [PATCH v3 2/9] KVM-HDR Add constant to represent KVM MSRs enabled bit

2011-06-30 Thread Avi Kivity
On 06/30/2011 12:56 AM, Eric B Munson wrote: My mail provider seems to have dropped patch 1 of the series so I can't reply directly to it, please add my Tested-by there as well. How did you test it then? -- error compiling committee.c: too many arguments to function -- To unsubscribe from thi

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-06-30 Thread Avi Kivity
On 06/29/2011 02:58 PM, Josh Boyer wrote: >> This makes me wonder if a similar thing might eventually be usable for >> running an i686 or x32 guest on an x86_64 KVM host. I have no idea if >> that is even theoretically possible, but if it is it might be better to >> rename the ioctl to be ar

Re: [PATCH 3/9] kvm tools: Allow giving instance names

2011-06-30 Thread Avi Kivity
On 06/30/2011 06:00 PM, Sasha Levin wrote: On Thu, 2011-06-30 at 11:30 +0300, Avi Kivity wrote: > On 06/30/2011 10:53 AM, Pekka Enberg wrote: > > On Wed, 29 Jun 2011, Sasha Levin wrote: > >> This will allow tracking instance names and sending commands > >>

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-06-30 Thread Avi Kivity
On 06/30/2011 06:04 PM, Alexander Graf wrote: +4.64 KVM_PPC_SET_PLATFORM + +Capability: none +Architectures: powerpc +Type: vm ioctl +Parameters: struct kvm_ppc_set_platform (in) +Returns: 0, or -1 on error + +This is used by userspace to tell KVM what sort of platform it should +emulate. The re

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-06-30 Thread Avi Kivity
On 06/30/2011 06:22 PM, Alexander Graf wrote: Regarding that. There's another option - the ioctl code embeds the structure size. So if we extend the ioctl parsing to pad up (or truncate down) from the user's size to our size, and similarly in the other direction, we can get away from this ugl

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-07-03 Thread Avi Kivity
On 06/30/2011 07:33 PM, Alexander Graf wrote: On 30.06.2011, at 18:00, Avi Kivity wrote: > On 06/30/2011 06:22 PM, Alexander Graf wrote: >>> Regarding that. There's another option - the ioctl code embeds the structure size. So if we extend the ioctl parsing to pad up

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-07-03 Thread Avi Kivity
On 07/03/2011 11:34 AM, Alexander Graf wrote: >> >> Yup, which requires knowledge in the code on what actually fits :). Logic we don't have today. > > I don't follow. What knowledge is required? Please give an example. Sure. Let's take an easy example Currently we have for get_pvinfo:

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-07-03 Thread Avi Kivity
On 07/03/2011 12:00 PM, Alexander Graf wrote: >> } >> >> Otherwise we might write over data the user expected. And that logic that tells to copy_to_user how much data it actually takes to put all the information in is not there today and would have to be added. You can even verify tha

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-07-03 Thread Avi Kivity
On 07/03/2011 12:09 PM, Alexander Graf wrote: > > Right. The idea is that if KVM_FLAG_BLAH implies a field kvm_struct::blah, then either both are present in the headers, or none of them. Yup, makes sense. I like the idea :). Gets rid of all the useless paddings and reserved fields. We could

Re: [PATCH v4 8/9] KVM-GST: adjust scheduler cpu power

2011-07-03 Thread Avi Kivity
On 07/02/2011 01:24 PM, Peter Zijlstra wrote: static void update_rq_clock_task(struct rq *rq, s64 delta) { s64 irq_delta = 0, steal = 0; rq->clock_task += delta; if ((irq_delta + steal)&& sched_feat(NONTASK_POWER)) sched_rt_avg_update(rq, irq_delta + ste

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-03 Thread Avi Kivity
On 07/03/2011 08:04 PM, Sasha Levin wrote: The new flag allows passing a write side of a pipe instead of an eventfd to be notified of writes to the specified memory region. Instead of signaling an event, the value written to the memory region is written to the pipe. Using a pipe instead of an e

Re: [fedora-virt] Windows 7 guest dying

2011-07-03 Thread Avi Kivity
On 07/03/2011 06:45 PM, Ian Pilcher wrote: I'm having a problem with my Windows 7 guest dying (the VM itself, not the guest OS). The only thing in the log is: qemu-kvm: virtio: trying to map MMIO memory 2011-07-03 10:40:19.033: shutting down Is there any way to figure out what is happeni

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/03/2011 08:44 PM, Sasha Levin wrote: On Sun, 2011-07-03 at 20:16 +0300, Avi Kivity wrote: > On 07/03/2011 08:04 PM, Sasha Levin wrote: > > The new flag allows passing a write side of a pipe instead of an > > eventfd to be notified of writes to the specifie

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/04/2011 01:32 PM, Michael S. Tsirkin wrote: On Sun, Jul 03, 2011 at 08:04:49PM +0300, Sasha Levin wrote: > The new flag allows passing a write side of a pipe instead of an > eventfd to be notified of writes to the specified memory region. > > Instead of signaling an event, the value writ

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/04/2011 01:49 PM, Michael S. Tsirkin wrote: On Mon, Jul 04, 2011 at 01:27:45PM +0300, Avi Kivity wrote: > I'd like to be able to forward an entire PCI BAR > over a pipe. That means sending the address/data/length tuple, and > both read and write support. > >

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/04/2011 02:07 PM, Michael S. Tsirkin wrote: On Mon, Jul 04, 2011 at 01:45:07PM +0300, Avi Kivity wrote: > On 07/04/2011 01:32 PM, Michael S. Tsirkin wrote: > >On Sun, Jul 03, 2011 at 08:04:49PM +0300, Sasha Levin wrote: > >> The new flag allows passing a write side

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-07-04 Thread Avi Kivity
On 07/04/2011 01:59 PM, Alexander Graf wrote: On 03.07.2011, at 11:12, Avi Kivity wrote: > On 07/03/2011 12:09 PM, Alexander Graf wrote: >> > >> > Right. The idea is that if KVM_FLAG_BLAH implies a field kvm_struct::blah, then either both are present in the head

Re: [RFC PATCH 17/17] KVM: PPC: Add an ioctl for userspace to select which platform to emulate

2011-07-04 Thread Avi Kivity
On 07/04/2011 02:36 PM, Alexander Graf wrote: > > What intermediate steps? We can't add fields to the structure before we get the extensibility infrastructure, but that's all. If we add it now without extensibility code, we will have a kernel that only knows the ioctl with the size as it is

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/04/2011 02:45 PM, Michael S. Tsirkin wrote: On Mon, Jul 04, 2011 at 02:19:39PM +0300, Avi Kivity wrote: > >Also noting that the fd can be set not to block, or that > >a signal can interrupt the write. Both cases are not errors. > > One thing we can do is ret

Re: [PATCH 1/3] perf: add context field to perf_event

2011-07-04 Thread Avi Kivity
On 07/04/2011 04:58 PM, Frederic Weisbecker wrote: Another thing I would like to do in the even longer term is to not use perf anymore for ptrace breakpoints, because that involves a heavy dependency and few people are happy with that. Instead we should just have a generic hook into the sched_

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/04/2011 05:38 PM, Sasha Levin wrote: > > In general incremental development is great, but I don't want to > fragment the ABI. I'd like to be able to forward an entire PCI BAR over > a pipe. That means sending the address/data/length tuple, and both read > and write support. Would thi

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-04 Thread Avi Kivity
On 07/04/2011 05:52 PM, Sasha Levin wrote: > > I can't really see that as useful. eventfds destroy information; > without datamatch, you have no idea what value was written. Even with > datamatch, you have no idea how many times it was written. With a > range, you also have no idea which a

Re: [PATCH 1/2] vmx,svm: Add module parameter to ignore the 'in use' check

2011-07-05 Thread Avi Kivity
On 07/05/2011 02:09 AM, Sasha Levin wrote: Add a module parameter 'check_inuse' to allow disabling the check of whether virtualization has already been enabled on the given cpu. This is needed to deal with broken BIOS which set the SVM/VMX bit by default. Please split the vmx and svm parts. W

Re: [PATCH 1/2] vmx,svm: Add module parameter to ignore the 'in use' check

2011-07-05 Thread Avi Kivity
On 07/05/2011 12:32 PM, Sasha Levin wrote: On Tue, 2011-07-05 at 11:11 +0200, Joerg Roedel wrote: > On Tue, Jul 05, 2011 at 11:14:43AM +0300, Sasha Levin wrote: > > I have no information about the machine. It was the result of trying > > to debug an issue reported on IRC where we found that

Re: PowerPoint performance degrade greatly when logon on through rdesktop to winxp, and when lotus notes is running.

2011-07-05 Thread Avi Kivity
On 07/05/2011 12:40 PM, ya su wrote: I am using qemu-kvm, cli as the following: qemu-system-x86_64 -drive file=test-notes.img,if=virtio,cache=none,boot=on -net nic,macaddr=00:00:00:11:22:88,model=virtio -net tap -m 1024 -vnc :3 I open powerpoint 2007, and drag a rectangel, it moves

Re: [PATCH 1/2] vmx,svm: Add module parameter to ignore the 'in use' check

2011-07-05 Thread Avi Kivity
On 07/05/2011 12:56 PM, Sasha Levin wrote: Please note that I don't have access to the hardware in question, this was done over IRC. I understand that. Can you get in contact with the reporter again? Here are the steps taken in debugging this issue: 1. Looking at the dmesg ( http://pastebi

Re: [PATCH 1/2] vmx,svm: Add module parameter to ignore the 'in use' check

2011-07-05 Thread Avi Kivity
On 07/05/2011 02:07 PM, Sasha Levin wrote: > > - was a BIOS update attempted? at least VMware uses the same check as > kvm, and probably virtualbox as well, so this problem should have been > seen before. We didn't update the BIOS. virtualbox was installed previously and didn't work properl

Re: [PATCH] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_PIPE

2011-07-06 Thread Avi Kivity
On 07/06/2011 07:37 AM, Sasha Levin wrote: Instead of making these flags user configurable, they could be implicitly defined according to the choice of eventfd or socket, I couldn't decide which method was better so just went with the first one. Explicit is better than implicit, so I agree wit

Re: [PATCH 5/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_SOCKET

2011-07-06 Thread Avi Kivity
On 07/06/2011 07:37 AM, Sasha Levin wrote: The new flag allows passing a connected socket instead of an eventfd to be notified of writes or reads to the specified memory region. Instead of signaling an event, On write - the value written to the memory region is written to the pipe. On read - a n

Re: [PATCH 5/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_SOCKET

2011-07-06 Thread Avi Kivity
On 07/06/2011 07:37 AM, Sasha Levin wrote: The new flag allows passing a connected socket instead of an eventfd to be notified of writes or reads to the specified memory region. Instead of signaling an event, On write - the value written to the memory region is written to the pipe. On read - a n

Re: [PATCH 5/5] ioeventfd: Introduce KVM_IOEVENTFD_FLAG_SOCKET

2011-07-06 Thread Avi Kivity
On 07/06/2011 03:58 PM, Sasha Levin wrote: What about something as follows: This requires an addition of a mutex to struct ioeventfd. 1. When adding a new ioeventfd, scan exiting ioeventfds (we already do it anyway) and check whether another ioeventfd is using the socket already. 2. If the exi

[RFC v3 07/56] memory: late initialization of ram_addr

2011-07-10 Thread Avi Kivity
is unified with the memory API. Signed-off-by: Avi Kivity --- memory.c | 24 memory.h |1 + 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/memory.c b/memory.c index 5fda4a0..bc8bfa2 100644 --- a/memory.c +++ b/memory.c @@ -158,10 +158,14 @@ static

[RFC v3 04/56] Internal interfaces for memory API

2011-07-10 Thread Avi Kivity
routing. Signed-off-by: Avi Kivity --- exec-memory.h | 23 +++ memory.c |7 +++ 2 files changed, 30 insertions(+), 0 deletions(-) create mode 100644 exec-memory.h diff --git a/exec-memory.h b/exec-memory.h new file mode 100644 index 000..7eb9085 --- /dev

[RFC v3 13/56] pc: move global memory map out of pc_init1() and into its callers

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/pc_piix.c | 15 --- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/hw/pc_piix.c b/hw/pc_piix.c index d83854c..f2d0476 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -68,7 +68,8 @@ static void ioapic_init(IsaIrqState *isa_irq_state

[RFC v3 12/56] pc: convert pc_memory_init() to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/pc.c | 59 --- hw/pc.h |1 + 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/hw/pc.c b/hw/pc.c index 369566a..1c9d89a 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -41,6 +41,7 @@ #include

[RFC v3 03/56] memory: merge adjacent segments of a single memory region

2011-07-10 Thread Avi Kivity
Simple implementations of memory routers, for example the Cirrus VGA memory banks or the 440FX PAM registers can generate adjacent memory regions which are contiguous. Detect these and merge them; this saves kvm memory slots and shortens lookup times. Signed-off-by: Avi Kivity --- memory.c

[RFC v3 00/56] Memory API

2011-07-10 Thread Avi Kivity
ing after one or two lookups. MMIO will tend to take more (three to five, depending on tree width), but they will be cached. The subpage logic can be completely eliminated with this. Avi Kivity (56): Hierarchical memory region API memory: implement dirty tracking memory: merge adjacent segment

[RFC v3 30/56] rtl8139: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/rtl8139.c | 172 +- 1 files changed, 51 insertions(+), 121 deletions(-) diff --git a/hw/rtl8139.c b/hw/rtl8139.c index 5214b8c..fa661fc 100644 --- a/hw/rtl8139.c +++ b/hw/rtl8139.c @@ -474,7 +474,6

[RFC v3 25/56] cirrus: simplify linear framebuffer access functions

2011-07-10 Thread Avi Kivity
Make use of the memory API's ability to satisfy multi-byte accesses via multiple single-byte accesses. Signed-off-by: Avi Kivity --- hw/cirrus_vga.c | 74 ++- 1 files changed, 8 insertions(+), 66 deletions(-) diff --git a/hw/cirrus_vg

[RFC v3 28/56] pci: pass I/O address space to new PCI bus

2011-07-10 Thread Avi Kivity
This lets us register BARs in the I/O address space. Signed-off-by: Avi Kivity --- hw/apb_pci.c |1 + hw/bonito.c|1 + hw/grackle_pci.c |8 ++-- hw/gt64xxx.c |4 +++- hw/pc.h|4 +++- hw/pc_piix.c |6 +- hw/pci.c

[RFC v3 35/56] ide: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/ide/cmd646.c | 208 +++ hw/ide/pci.c| 25 --- hw/ide/pci.h| 19 - hw/ide/piix.c | 64 + hw/ide/via.c| 65 + 5 files changed, 261 insertions(+), 120

[RFC v3 32/56] e1000: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/e1000.c | 114 +-- 1 files changed, 48 insertions(+), 66 deletions(-) diff --git a/hw/e1000.c b/hw/e1000.c index 96d84f9..8e4830f 100644 --- a/hw/e1000.c +++ b/hw/e1000.c @@ -82,7 +82,8 @@ typedef struct

[RFC v3 34/56] es1370: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/es1370.c | 62 -- 1 files changed, 43 insertions(+), 19 deletions(-) diff --git a/hw/es1370.c b/hw/es1370.c index 1ed62b7..a696eb2 100644 --- a/hw/es1370.c +++ b/hw/es1370.c @@ -268,6 +268,7 @@ struct

[RFC v3 38/56] virtio-pci: convert to memory API

2011-07-10 Thread Avi Kivity
except msix. Signed-off-by: Avi Kivity --- hw/virtio-pci.c | 84 +- hw/virtio-pci.h |2 +- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c index b3e7ba5..20e6c5b 100644 --- a/hw/virtio

[RFC v3 39/56] ahci: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/ide/ahci.c | 31 +-- hw/ide/ahci.h |2 +- hw/ide/ich.c |3 +-- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 1f008a3..e207ca0 100644 --- a/hw/ide/ahci.c +++ b/hw/ide

[RFC v3 37/56] ivshmem: convert to memory API

2011-07-10 Thread Avi Kivity
excluding msix. Signed-off-by: Avi Kivity --- hw/ivshmem.c | 148 -- 1 files changed, 50 insertions(+), 98 deletions(-) diff --git a/hw/ivshmem.c b/hw/ivshmem.c index 3055dd2..e028b19 100644 --- a/hw/ivshmem.c +++ b/hw/ivshmem.c

[RFC v3 42/56] ppc: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/cuda.c |6 ++- hw/escc.c | 42 +-- hw/escc.h |2 +- hw/heathrow_pic.c | 29 -- hw/ide.h |2 +- hw/ide/macio.c| 50 ++-- hw/mac_dbdma.c

[RFC v3 44/56] pcnet: convert to memory API

2011-07-10 Thread Avi Kivity
Also related chips. Signed-off-by: Avi Kivity --- hw/lance.c | 31 -- hw/pcnet-pci.c | 98 ++- hw/pcnet.h |4 ++- 3 files changed, 85 insertions(+), 48 deletions(-) diff --git a/hw/lance.c b/hw/lance.c index

[RFC v3 54/56] pci: remove pci_register_bar()

2011-07-10 Thread Avi Kivity
Superceded by pci_register_bar_region(). The implementations are folded together. Signed-off-by: Avi Kivity --- hw/pci.c | 42 +- hw/pci.h |3 --- 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index 8c7a418

[RFC v3 56/56] pci: rename pci_register_bar_region() to pci_register_bar()

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/ac97.c |4 ++-- hw/cirrus_vga.c |5 ++--- hw/e1000.c|5 ++--- hw/eepro100.c |7 +++ hw/es1370.c |2 +- hw/ide/cmd646.c | 14 +- hw/ide/ich.c |2 +- hw/ide/piix.c |3 +-- hw/ide

[RFC v3 50/56] xen-platform: convert to memory API

2011-07-10 Thread Avi Kivity
Since this device bypasses PCI and registers I/O ports directly with the system bus, it needs further attention. Signed-off-by: Avi Kivity --- hw/xen_platform.c | 110 1 files changed, 76 insertions(+), 34 deletions(-) diff --git a/hw

[RFC v3 52/56] pci: remove pci_register_bar_simple()

2011-07-10 Thread Avi Kivity
Superceded by pci_register_bar_region(). Signed-off-by: Avi Kivity --- hw/pci.c | 16 hw/pci.h |2 -- 2 files changed, 0 insertions(+), 18 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index 980840f..9db6fc8 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -923,13 +923,6 @@ void

[RFC v3 55/56] pci: fold BAR mapping function into its caller

2011-07-10 Thread Avi Kivity
There is only one function, so no need for a function pointer. Signed-off-by: Avi Kivity --- hw/pci.c | 25 + hw/pci.h |1 - 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index 2543ced..04b6372 100644 --- a/hw/pci.c +++ b/hw

[RFC v3 40/56] intel-hda: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/intel-hda.c | 49 ++--- 1 files changed, 34 insertions(+), 15 deletions(-) diff --git a/hw/intel-hda.c b/hw/intel-hda.c index 0ce..0f5c6c4 100644 --- a/hw/intel-hda.c +++ b/hw/intel-hda.c @@ -177,7 +177,7

[RFC v3 49/56] uhci: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/usb-uhci.c | 57 + 1 files changed, 45 insertions(+), 12 deletions(-) diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c index 405fa7b..95ef260 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -132,6 +132,7

[RFC v3 51/56] msix: convert to memory API

2011-07-10 Thread Avi Kivity
The msix table is defined as a subregion, to allow for a BAR that mixes device specific regions with the msix table. Signed-off-by: Avi Kivity --- hw/ivshmem.c| 11 + hw/msix.c | 64 +++ hw/msix.h |6 +--- hw

[RFC v3 48/56] ehci: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/usb-ehci.c | 53 + 1 files changed, 29 insertions(+), 24 deletions(-) diff --git a/hw/usb-ehci.c b/hw/usb-ehci.c index 91fb7de..bd7fdcb 100644 --- a/hw/usb-ehci.c +++ b/hw/usb-ehci.c @@ -371,8 +371,7

[RFC v3 43/56] ne2000: convert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/ne2000-isa.c | 14 +++--- hw/ne2000.c | 77 +- hw/ne2000.h |8 + 3 files changed, 59 insertions(+), 40 deletions(-) diff --git a/hw/ne2000-isa.c b/hw/ne2000-isa.c index e41dbba..ce7b365

[RFC v3 45/56] i6300esb: convert to memory API

2011-07-10 Thread Avi Kivity
Also add missing destructor. Signed-off-by: Avi Kivity --- hw/wdt_i6300esb.c | 59 1 files changed, 45 insertions(+), 14 deletions(-) diff --git a/hw/wdt_i6300esb.c b/hw/wdt_i6300esb.c index 53786ce..242a8fa 100644 --- a/hw/wdt_i6300esb.c

[RFC v3 47/56] sun4u: convert to memory API

2011-07-10 Thread Avi Kivity
fixes memory leak on repeated BAR map/unmap Signed-off-by: Avi Kivity --- hw/sun4u.c | 55 +-- 1 files changed, 25 insertions(+), 30 deletions(-) diff --git a/hw/sun4u.c b/hw/sun4u.c index d7dcaf0..74a06a8 100644 --- a/hw/sun4u.c +++ b/hw

[RFC v3 53/56] pci: convert pci rom to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/pci.c | 20 +++- hw/pci.h |3 ++- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index 9db6fc8..8c7a418 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -1858,11 +1858,6 @@ static uint8_t pci_find_capability_list

[RFC v3 36/56] memory: add ioeventfd support

2011-07-10 Thread Avi Kivity
As with the rest of the memory API, the caller associates an eventfd with an address, and the memory API takes care of registering or unregistering when the address is made visible or invisible to the guest. Signed-off-by: Avi Kivity --- memory.c | 218

[RFC v3 41/56] lsi53c895a: convert to memory API

2011-07-10 Thread Avi Kivity
An optimization that fast-pathed DMA reads from the SCRIPTS memory was removed int the process. Likely it breaks with iommus anyway. Signed-off-by: Avi Kivity --- hw/lsi53c895a.c | 258 --- 1 files changed, 56 insertions(+), 202 deletions

[RFC v3 46/56] isa-mmio: concert to memory API

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- hw/isa.h |2 + hw/isa_mmio.c | 67 +++-- 2 files changed, 29 insertions(+), 40 deletions(-) diff --git a/hw/isa.h b/hw/isa.h index d2b6126..f1f2181 100644 --- a/hw/isa.h +++ b/hw/isa.h @@ -4,6 +4,7

[RFC v3 33/56] eepro100: convert to memory API

2011-07-10 Thread Avi Kivity
Note: the existing code aliases the flash BAR into the MMIO bar. This is probably a bug. This patch does not correct the problem. Signed-off-by: Avi Kivity --- hw/eepro100.c | 182 - 1 files changed, 37 insertions(+), 145 deletions

[RFC v3 20/56] vga: convert vga and its derivatives to the memory API

2011-07-10 Thread Avi Kivity
Convert all vga memory to the memory API. Note we need to fall back to get_system_memory(), since the various buses don't pass the vga window as a memory region. Signed-off-by: Avi Kivity --- hw/cirrus_vga.c | 345 +-- hw/qxl-render.c |

[RFC v3 26/56] Integrate I/O memory regions into qemu

2011-07-10 Thread Avi Kivity
get_system_io() returns the root I/O memory region. Signed-off-by: Avi Kivity --- exec-memory.h |2 ++ exec.c| 10 ++ 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/exec-memory.h b/exec-memory.h index aad21b5..3acb15f 100644 --- a/exec-memory.h +++ b/exec

[RFC v3 27/56] exec.c: fix initialization of system I/O memory region

2011-07-10 Thread Avi Kivity
Signed-off-by: Avi Kivity --- exec.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/exec.c b/exec.c index e949c91..10ed931 100644 --- a/exec.c +++ b/exec.c @@ -3820,7 +3820,7 @@ static void memory_map_init(void) set_system_memory_map(system_memory

<    6   7   8   9   10   11   12   13   14   15   >