From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sheng Yang Subject: Re: Date: Mon, 27 Apr 2009 21:16:14 +0800 Message-ID: <200904272116.15710.sheng@linux.intel.com> References: <20090427104117.GB29082@redhat.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Cc: Avi Kivity , Marcelo Tosatti , kvm@vger.kernel.org To: "Michael S. Tsirkin" Return-path: Received: from mga06.intel.com ([134.134.136.21]:51462 "EHLO orsmga101.jf.intel.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753089AbZD0NQR (ORCPT ); Mon, 27 Apr 2009 09:16:17 -0400 In-Reply-To: <20090427104117.GB29082@redhat.com> Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: On Monday 27 April 2009 18:41:17 Michael S. Tsirkin wrote: > Sheng, Marcelo, > I've been reading code in qemu/hw/device-assignment.c, and > I have a couple of questions about msi-x implementation: Hi Michael > 1. What is the reason that msix_table_page is allocated > with mmap and not with e.g. malloc? msix_table_page is a page, and mmap allocate memory on page boundary. So I use it. > 2. msix_table_page has the guest view of the msix table for the device. > However, even this memory isn't mapped into guest directly, instead > msix_mmio_read/msix_mmio_write perform the write in qemu. > Won't it be possible to map this page directly into > guest memory, reducing the overhead for table writes? First, Linux configured the real MSI-X table in device, which is out of our scope. KVM accepted the interrupt from Linux, then inject it to the guest according to the MSI-X table setting of guest. So KVM should know about the page modification. For example, MSI-X table got mask bit which can be written by guest at any time(this bit haven't been implement yet, but should be soon), then we should mask the correlated vector of real MSI-X table; then guest may modified the MSI address/data, that also should be intercepted by KVM and used to update our knowledge of guest. So we can't passthrough the modification. 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... -- regards Yang, Sheng > > Could you shed light on this for me please? > Thanks,