From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38935 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OVgE9-000259-FY for qemu-devel@nongnu.org; Mon, 05 Jul 2010 03:36:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OVgE8-0007Xw-3i for qemu-devel@nongnu.org; Mon, 05 Jul 2010 03:36:29 -0400 Received: from fmmailgate01.web.de ([217.72.192.221]:47880) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OVgE7-0007Xe-Lq for qemu-devel@nongnu.org; Mon, 05 Jul 2010 03:36:28 -0400 Message-ID: <4C318B74.3040403@web.de> Date: Mon, 05 Jul 2010 09:36:20 +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> In-Reply-To: <20100705070017.GJ4689@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigC04BC92300CD4A4FA2AF0A5A" Sender: jan.kiszka@web.de List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gleb Natapov Cc: Blue Swirl , Paul Brook , qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigC04BC92300CD4A4FA2AF0A5A Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Gleb Natapov wrote: > On Mon, Jul 05, 2010 at 08:49:31AM +0200, Jan Kiszka wrote: >> Gleb Natapov wrote: >>> On Mon, Jul 05, 2010 at 08:39:38AM +0200, Jan Kiszka wrote: >>>> Paul Brook wrote: >>>>>> Blue Swirl wrote: >>>>>>> On Sat, Jul 3, 2010 at 7:39 AM, Jan Kiszka wr= ote: >>>>>>>> Paul Brook wrote: >>>>>>>>>> I really see no tangible objection to Jan's patches. They don= 't >>>>>>>>>> impact any other code. They don't inhibit flexibility in the >>>>>>>>>> infrastructure. You might consider it to be a "hack" but so wh= at.=20 >>>>>>>>>> QEMU is filled with hacks. It would be useless without them b= ecause >>>>>>>>>> there would be very little code. >>>>>>>>> I object strongly to anything that makes qemu_irq a message pas= sing >>>>>>>>> API. if you want message passing then you should not be using >>>>>>>>> qemu_irq. >>>>>>>> Blueswirl objected to the straightforward return-value approach = I first >>>>>>>> posted. You seems to be more open towards this, right? Still loo= ks like >>>>>>>> I cannot make you both happy at the same time. So what to do? >>>>>>> I have withdrawn my objection. We can do message passing with som= e >>>>>>> different API later, for simple coalescing needs the return value= >>>>>>> approach is enough. >>>>>> Great! I'll respin my patches ASAP. >>>>> Note that I still have some concerns over the semantics of that API= =2E >>>>> I believe this should be fundamentally state based, not event based= =2E >>>> For the caller of qemu_set_irq, it will be like that. >>>> >>> Unfortunately just having qemu_set_irq() return value is not enough t= o >>> fix timedrift problem for all Windows. For some of them you need to k= now >>> _which_ CPU accepted IRQ. >> Return values: >> < 0 - no state change, specifically due to masking or latching >> >=3D 0 - first CPU (lowest index) on which a state change was achieve= d >> >> Sufficient? >> > To problem specific for such generic interface. Doesn't allow to > distinguish between masking and coalescing. It does (return values < 0 are specified to differentiate between them and more). > Assumes that CPU with > lowest index is BSP (that one we can actually guaranty if we want > to). Well, the generic solution would be returning a bitmap of the CPUs that were affected, but this is impractical. However, at least x86 should be fine with the information "state change also on BSP", e.g. like this: 0 - state change on one or more CPUs, none of them is the BSP 1 - state change on BSP (and possible more CPUs) > And what about PIC mode where interrupt receiver is not CPU? In the end, there's always a CPU (or several of them). Jan --------------enigC04BC92300CD4A4FA2AF0A5A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkwxi3kACgkQitSsb3rl5xSr5gCeLFGEo1kDWGv4EGJHav5Xy1K2 drcAoJRpeAYqHiVh2oZlWqpwKlZXledQ =77iE -----END PGP SIGNATURE----- --------------enigC04BC92300CD4A4FA2AF0A5A--