From: Jan Kiszka <jan.kiszka@siemens.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Avi Kivity <avi@redhat.com>, Gleb Natapov <gleb@redhat.com>,
Paul Brook <paul@codesourcery.com>
Subject: Re: [Qemu-devel] Re: [Bug 599958] Re: Timedrift problems with Win7: hpet missing time drift fixups
Date: Mon, 05 Jul 2010 19:32:46 +0200 [thread overview]
Message-ID: <4C32173E.1070704@siemens.com> (raw)
In-Reply-To: <AANLkTimsLNyBP34M0LFVYmM28rQBCDr1TEMlCHxYH1Ek@mail.gmail.com>
Blue Swirl wrote:
> On Mon, Jul 5, 2010 at 1:47 PM, Avi Kivity <avi@redhat.com> wrote:
>> On 07/05/2010 04:28 PM, Jan Kiszka wrote:
>>> Avi Kivity wrote:
>>>
>>>> On 07/05/2010 03:16 PM, Jan Kiszka wrote:
>>>>
>>>>>> It's also architecturally cleaner. Masks and acks are architectural
>>>>>> events. Injections are not - there's the edge on the LINT0 or INTI2
>>>>>> pins, generation of an APIC message, receipt of the APIC message, and
>>>>>> assertion of the APIC-to-core interrupt interface. I'm not sure how
>>>>>> the
>>>>>> proposed interface maps to that.
>>>>>>
>>>>>>
>>>>> Our emulation does not reflect every architectural detail of the
>>>>> delivery path anyway.
>>>>>
>>>> Usually, when that happens, we get an obscure bug.
>>>>
>>>> So if we add a facility, especially across the user/kernel boundary,
>>>> it's better to have it conform to the architecture. That reduces the
>>>> chance it has a serious hidden bug.
>>>>
>>> Neither ack/mask notifiers (past the IRQ controller) nor injection
>>> return values are part of any architecture we emulate.
>> Right. But placing a tap on something that exists architectually means it's
>> likely to survive implementation changes.
>>
>>> What is driving
>>> us are the requirements of the de-coalescing workarounds we want to
>>> build on top and the impact on existing design.
>>>
>> In the case of qemu<->kvm interfaces, also the longevity of these
>> interfaces.
>>
>> Note I'm not advocating a mask/ack solution. It's pretty complicated and
>> I'm not sure the benefits outweigh the complexity. But I want us to examine
>> all options, especially as I don't like delivery checks very much.
>
> Since you seem to have gone back to drawing board, how about the
> following design:
>
> Explicit qemu_irqs and muxes for the backwards channel
>
> Each participating device has a set of GPIOs (implemented with
> qemu_irq) for any backwards signals: delivered, coalesced, EOI'd,
> masked (short D/C/E/M). For each incoming IRQ line, there would be
> four backwards GPIOs (D/C/E/M).
>
> When a forward IRQ signal is propagated, any intermediate devices turn
> the internal 'mux' dial to point to the originating device GPIO.
>
> When a backwards signal (one of D/C/E/M) must be delivered, the mux
> forwards the D/C/E/M signal in question towards the last IRQ
> originator as indicated by the dial.
E & M can arrive in arbitrary order, so this does not yet improve the
dispatching issue we discussed during the day. D & C work just like
return values as they will be reported instantly.
>
> I think this design would cover the coalescing needs, it would not
> change qemu_irq design and it should be expandable. Drawbacks would be
> that a lot of signals would be needed and all these signal's routes
> should be set up by the board level.
The drawback of this approach compared to all others is that no
information about the accepting CPUs is reported back. That's obviously
required for some Windows SMP guests. At the bare minimum, you would
need another line that tells BSP delivery apart from delivery to other CPUs.
However, I do not see the benefits of this approach over specialized
ack/mask callbacks.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2010-07-05 17:32 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-29 21:18 [Qemu-devel] [Bug 599958] [NEW] Timedrift problems with Win7 + qemu-kvm Lucas Meneghel Rodrigues
2010-06-29 21:18 ` [Qemu-devel] [Bug 599958] " Lucas Meneghel Rodrigues
2010-06-29 21:18 ` Lucas Meneghel Rodrigues
2010-06-29 21:19 ` Lucas Meneghel Rodrigues
2010-06-29 21:45 ` Anthony Liguori
2010-06-29 21:53 ` Lucas Meneghel Rodrigues
2010-06-30 14:17 ` Lucas Meneghel Rodrigues
2010-06-30 14:38 ` [Qemu-devel] [Bug 599958] Re: Timedrift problems with Win7: hpet missing time drift fixups Anthony Liguori
2010-07-01 7:13 ` [Qemu-devel] " Jan Kiszka
2010-07-01 8:19 ` Gleb Natapov
2010-07-01 15:45 ` Paul Brook
2010-07-01 18:50 ` Anthony Liguori
2010-07-01 21:40 ` Paul Brook
2010-07-03 7:39 ` Jan Kiszka
2010-07-03 7:49 ` Blue Swirl
2010-07-03 7:55 ` Jan Kiszka
2010-07-04 22:06 ` Paul Brook
2010-07-05 6:39 ` Jan Kiszka
2010-07-05 6:42 ` Gleb Natapov
2010-07-05 6:49 ` Jan Kiszka
2010-07-05 7:00 ` Gleb Natapov
2010-07-05 7:36 ` Jan Kiszka
2010-07-05 8:47 ` Avi Kivity
2010-07-05 9:07 ` Jan Kiszka
2010-07-05 9:09 ` Gleb Natapov
2010-07-05 9:23 ` Avi Kivity
2010-07-05 11:13 ` Jan Kiszka
2010-07-05 11:40 ` Avi Kivity
2010-07-05 12:16 ` Jan Kiszka
2010-07-05 12:20 ` Gleb Natapov
2010-07-05 13:24 ` Jan Kiszka
2010-07-05 13:42 ` Avi Kivity
2010-07-05 13:44 ` Gleb Natapov
2010-07-05 12:23 ` Avi Kivity
2010-07-05 13:28 ` Jan Kiszka
2010-07-05 13:47 ` Avi Kivity
2010-07-05 17:12 ` Blue Swirl
2010-07-05 17:32 ` Jan Kiszka [this message]
2010-07-05 17:45 ` Avi Kivity
2010-07-01 18:42 ` Anthony Liguori
2010-06-30 15:40 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2013-10-01 9:34 ` Ben A
2013-10-01 15:56 ` Gleb Natapov
2013-10-01 16:23 ` Ben "Root" Anderson
2013-10-01 16:33 ` Gleb Natapov
2013-10-01 16:36 ` Ben "Root" Anderson
2013-10-01 16:47 ` Gleb Natapov
2013-10-01 9:35 ` Ben A
2014-06-15 23:31 ` AndCycle
2019-05-22 7:27 ` Thomas Huth
2019-05-24 14:58 ` Lucas Meneghel Rodrigues
2019-07-24 4:17 ` Launchpad Bug Tracker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C32173E.1070704@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=gleb@redhat.com \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).