From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH v1 0/5] KVM in-guest performance monitoring Date: Thu, 12 May 2011 17:45:59 +0300 Message-ID: <4DCBF2A7.4010002@redhat.com> References: <1305129333-7456-1-git-send-email-avi@redhat.com> <20110512093309.GD8707@8bytes.org> <4DCBACC7.8080000@siemens.com> <20110512131130.GG8707@8bytes.org> <4DCBE13A.2050204@redhat.com> <20110512142449.GI8707@8bytes.org> <4DCBF0B7.7080102@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Jan Kiszka , linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo To: Joerg Roedel Return-path: In-Reply-To: <4DCBF0B7.7080102@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 05/12/2011 05:37 PM, Avi Kivity wrote: > > I've considered something similar for mmio - use hypercalls for > ordinary mmio to avoid calling into the emulator - but virtio uses pio > which isn't emulated and we don't have massive consumers of mmio > (except perhaps hpet). Say, enum { KVM_OP_MMIO_READ = 1, KVM_OP_MMIO_WRITE = 2, KVM_OP_PIO_READ = 3, KVM_OP_PIO_WRITE = 4, KVM_OP_MSR_READ = 5, KVM_OP_MSR_WRITE = 6, KVM_OP_HLT = 7, /* so we can program the apic timer and sleep */ } struct kvm_batch_op { u8 op; u8 result; u8 size; u8 reserved[5]; u64 address; u64 data; }; int kvm_batch(int nr, u64 kvm_batch_op_phys); This is really repeating Xen PV though (different ops), not sure it's worth the intrusiveness. -- error compiling committee.c: too many arguments to function