From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Tokarev Subject: Re: VGA pass-through Date: Tue, 30 Jun 2009 12:56:14 +0400 Message-ID: <4A49D32E.20603@msgid.tls.msk.ru> References: <9B4771B4D9FB73498B40311D4E7E8EE50EBCEFBF@atl-ms2.us.megatrends.com> <715D42877B251141A38726ABF5CABF2C0545A1FAD1@pdsmsx503.ccr.corp.intel.com> <4A49B5E7.2010509@redhat.com> <715D42877B251141A38726ABF5CABF2C0545A1FB28@pdsmsx503.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: 'Avi Kivity' , 'Subash Kalbarga' , "'kvm@vger.kernel.org'" To: "Han, Weidong" Return-path: Received: from isrv.corpit.ru ([81.13.33.159]:59558 "EHLO isrv.corpit.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751065AbZF3I4N (ORCPT ); Tue, 30 Jun 2009 04:56:13 -0400 In-Reply-To: <715D42877B251141A38726ABF5CABF2C0545A1FB28@pdsmsx503.ccr.corp.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Han, Weidong wrote: [] >>> Currently VGA pass-through is not supported in KVM. It needs much >>> work to support it. >>> >> What does it need? >> >> Here's what I know of: >> >> - load the vga bios at 0xc0000 >> - implement whatever main bios interfaces the vga vios expects >> - pass through the vga I/O ports >> >> Anything else? > > I think it also needs: > - map video RAM: 0xa0000 - 0xbffff > - remove Qemu VGA device emulation > - reserve enough guest memory space for PCI BARs (most graphics cards has more than 256M memory, I didn't check how much guest memory kvm reserve for PCI BARs) > > In addition, some graphics cards are specific, such as pBAR must equal to vBAR. To my feeling, there are some tricks to make it work. That all seems to be necessary for "console" support, i.e., so that the guest bios etc will know this device as "primary display" or whatever it is called. But how about using it as a "secondary" video card? Like, I can plug another add-on vga card into a free PCI slot and tell X to use that one instead of "default" card. Can kvm work like this? Thanks. /mjt