From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44494 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OVjcd-0004UV-60 for qemu-devel@nongnu.org; Mon, 05 Jul 2010 07:14:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OVjcb-0005LB-VD for qemu-devel@nongnu.org; Mon, 05 Jul 2010 07:13:59 -0400 Received: from thoth.sbs.de ([192.35.17.2]:22280) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OVjcb-0005Kq-Lt for qemu-devel@nongnu.org; Mon, 05 Jul 2010 07:13:57 -0400 Message-ID: <4C31BE6A.70307@siemens.com> Date: Mon, 05 Jul 2010 13:13:46 +0200 From: Jan Kiszka MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [Bug 599958] Re: Timedrift problems with Win7: hpet missing time drift fixups References: <20100629211802.16137.10587.malonedeb@soybean.canonical.com> <4C2EECE8.8030305@web.de> <201007042306.57852.paul@codesourcery.com> <4C317E2A.7090101@web.de> <20100705064239.GI4689@redhat.com> <4C31807B.2030401@web.de> <20100705070017.GJ4689@redhat.com> <4C318B74.3040403@web.de> <4C319C30.30308@redhat.com> <4C31A0EC.7020803@web.de> <4C31A477.7010205@redhat.com> In-Reply-To: <4C31A477.7010205@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Blue Swirl , Paul Brook , Gleb Natapov , qemu-devel@nongnu.org Avi Kivity wrote: > On 07/05/2010 12:07 PM, Jan Kiszka wrote: >> >>> What about ack notifiers? Ask the APIC to notify you when an interrupt >>> is acked. That allows you to track the BSP, all cpus, or some subset. >>> Masking can be seen at the irq controller level. >>> >> So, if I understand you correctly, an IRQ state change that is ignored >> due to masking would invoke the ack notifier chain as well? >> > > No - the cpu doesn't ack, no ack notifier. > > We might need a separate mask notifier. Just add pomodoro sauce. Mask notifiers would be a must, otherwise you cannot tell apart if an IRQ was not yet ack'ed or is actually masked. On the other hand... see below. > >>> It's more involved, but provides more information. >>> >> Well, it requires to establish ack notifier chains in parallel to the >> existing IRQ delivery routes. Definitely more invasive. >> > > Right, and need to plumb it twice, once for qemu and once for kvm. > > But my feeling is you get a lot more information out of it. That decoupling between state change and acknowledgment worries me. Dispatching a source to multiple sinks or sharing a sink between multiple source is no longer cleanly manageable this way. Just look at the route of some ISA IRQ on x86: You may get an 'ack' from IOAPIC side and a 'masked' from the ISA side (or vice versa). And the 'masked' will arrive earlier. Not really straightforward to handle, is it? Moreover, it requires a concrete algorithm that takes advantage from the 'ack' information bit (that should be the only additional information you gain) to justify the additional effort. A "might have some advantages" is not enough IMO. Do we have such an algorithm already? Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux