From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: RFC/patch 2/3 portability: move x86 emulation and mmio device hook to x86.c Date: Wed, 31 Oct 2007 02:24:50 +0200 Message-ID: <4727CB52.8040501@qumranet.com> References: <1193763784.7800.17.camel@cotte.boeblingen.de.ibm.com> <1193766261.7800.45.camel@cotte.boeblingen.de.ibm.com> <1193767959.26183.26.camel@basalt> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: "kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org" , Carsten Otte , "Zhang, Xiantao" To: Hollis Blanchard Return-path: In-Reply-To: <1193767959.26183.26.camel@basalt> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Hollis Blanchard wrote: > On Tue, 2007-10-30 at 18:44 +0100, Carsten Otte wrote: > >> -/* >> - * Only apic need an MMIO device hook, so shortcut now.. >> - */ >> -static struct kvm_io_device *vcpu_find_pervcpu_dev(struct kvm_vcpu *vcpu, >> - gpa_t addr) >> -{ >> - struct kvm_io_device *dev; >> - >> - if (vcpu->apic) { >> - dev = &vcpu->apic->dev; >> - if (dev->in_range(dev, addr)) >> - return dev; >> - } >> - return NULL; >> -} >> - >> -static struct kvm_io_device *vcpu_find_mmio_dev(struct kvm_vcpu *vcpu, >> - gpa_t addr) >> -{ >> - struct kvm_io_device *dev; >> - >> - dev = vcpu_find_pervcpu_dev(vcpu, addr); >> - if (dev == NULL) >> - dev = kvm_io_bus_find_dev(&vcpu->kvm->mmio_bus, addr); >> - return dev; >> -} >> - >> static struct kvm_io_device *vcpu_find_pio_dev(struct kvm_vcpu *vcpu, >> gpa_t addr) >> { >> return kvm_io_bus_find_dev(&vcpu->kvm->pio_bus, addr); >> } >> > > These are APIC-specific for now, but as the "shortcut" comment implies > they should be generalized in the future, and I expect they will be > useful for PowerPC. > > For x86 there are two kinds of mmio devices: one is the expected system-wide mmio, and the other is mmio that depends not only on the address, but also on which cpu originated the request. This type is only needed for the local apic. Is the second type also useful for ppc? -- Any sufficiently difficult bug is indistinguishable from a feature. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/