From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: qemu/hw/device-assignment: questions about msix_table_page Date: Tue, 5 May 2009 07:19:45 -0300 Message-ID: <20090505101945.GA11426@amt.cnet> References: <20090427104117.GB29082@redhat.com> <200904272203.59909.sheng@linux.intel.com> <20090427141504.GC2504@redhat.com> <200904272230.18253.sheng@linux.intel.com> <20090505095136.GA12797@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Sheng Yang , Avi Kivity , kvm@vger.kernel.org To: "Michael S. Tsirkin" Return-path: Received: from mx2.redhat.com ([66.187.237.31]:57441 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753289AbZEEKUP (ORCPT ); Tue, 5 May 2009 06:20:15 -0400 Content-Disposition: inline In-Reply-To: <20090505095136.GA12797@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, May 05, 2009 at 12:51:36PM +0300, Michael S. Tsirkin wrote: > On Mon, Apr 27, 2009 at 10:30:17PM +0800, Sheng Yang wrote: > > > > > > If guest can write to the real device MSI-X table directly, it would > > > > > > cause chaos on interrupt delivery, for what guest see is totally > > > > > > different with what's host see... > > > > > > > > > > Obviously. > > > > > > > > > > Thanks, > > > > What's the reason that this page is unmapped from the qemu memory space? > Specifically what do these lines do: > int offset = r_dev->msix_table_addr - real_region->base_addr; > ret = munmap(region->u.r_virtbase + offset, TARGET_PAGE_SIZE); I believe this allows accesses to this page (the MSI-X table), which is part of the guest address space (through kvm memory slots), to be trapped by qemu. Since there is no actual page in this guest address, KVM treats accesses as MMIO and forwards them to QEMU.