From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57399) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4VKY-0002Ng-8Z for qemu-devel@nongnu.org; Mon, 05 Mar 2012 05:40:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S4VKT-0006O6-GD for qemu-devel@nongnu.org; Mon, 05 Mar 2012 05:39:49 -0500 Received: from mx1.redhat.com ([209.132.183.28]:25053) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4VKT-0006Nw-7j for qemu-devel@nongnu.org; Mon, 05 Mar 2012 05:39:45 -0500 Date: Mon, 5 Mar 2012 12:39:40 +0200 From: Gleb Natapov Message-ID: <20120305103940.GT10743@redhat.com> References: <20120224231735.17761.31411.stgit@bling.home> <20120304185225.GB16058@redhat.com> <1330918200.29701.214.camel@bling.home> <20120305062622.GB22209@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120305062622.GB22209@redhat.com> Subject: Re: [Qemu-devel] [PATCH] seabios: acpi: Add _STA for PCI hotplug slots List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: Alex Williamson , seabios@seabios.org, ddutile@redhat.com, qemu-devel@nongnu.org On Mon, Mar 05, 2012 at 08:26:23AM +0200, Michael S. Tsirkin wrote: > On Sun, Mar 04, 2012 at 08:30:00PM -0700, Alex Williamson wrote: > > On Sun, 2012-03-04 at 20:53 +0200, Michael S. Tsirkin wrote: > > > On Fri, Feb 24, 2012 at 04:21:17PM -0700, Alex Williamson wrote: > > > > When a Status method is provided on a slot, the OSPM evaluates > > > > _STA in response to the device check notify on the slot. This > > > > allows some degree of a handshake between the platform and the > > > > OSPM that the hotplug has been acknowledged. > > > > > > > > In order to implement _STA, we need to know which slots have > > > > devices. A slot with device returns 0x0F, a slot without a > > > > device returns Zero. We get this information from Qemu using > > > > the 0xae08 I/O port register. This was previously the read-side > > > > of the register written to commit a device eject and always > > > > returned 0 on read. It now returns a bitmap of present slots, > > > > so we know that reading 0 means we have and old Qemu and > > > > dynamically modify our SSDT to rename the _STA methods. This > > > > is necessary to allow backwards compatibility. > > ... > > > > > The _STA method also writes the slot identifier to I/O port > > > > register 0xae00 as an acknowledgment of the hotplug request. > > > To summarize my previous messages, my notes are > - not clear that we want to implement _STA: yes we can tell hypervisor > what did _STA report to OSPM but this won't be needed without _STA > - assuming we do, it seems clear that we want hypervisor > to know what it is that we told OSPM about slot status > - the specific interface used for the above is fairly tricky > so it needs documentation explaining how both sides cooperate > Why have this up, down things at all? What's wrong with how CPU hotplug works. It has only one HW register that returns a single bitmask that has 1 for available cpu and 0 for non available. AML can figure out what changed by having local copy of the old register's value to compare new value with. -- Gleb.