[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs
From: |
Paul Brook |
Subject: |
Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs |
Date: |
Sun, 13 Jun 2010 17:34:24 +0100 |
User-agent: |
KMail/1.13.3 (Linux/2.6.33-2-amd64; KDE/4.4.4; x86_64; ; ) |
> TBH I preferred the original system whereby the source can query the state
> of the sink (i.e "are you ignoring this line?"). Note that conceptually
> this should be *querying* state, not responding to an event.
People are still pushing qemu_irq as an message passing interface, so I'm
going to expand a bit more on how I think this could be avoided.
Start with the assumption that qemu irq represents a single bit of
information. The current implementation is stateless, but in principle it
could remember its state and ignore redundant calls to qemu_set_irq.
In order to workaround the periodic timer issue, we need some way of for the
source device to interrogate the target device state relating to this link.
The suggestions so far are along the lines of "what happened when I made this
change". This makes me unhappy, because it's overlaying event semantics on top
of a state based system.
Instead I suggest that we should be describing what the target state
associated with this input is. Suitable return values could be:
* normal: This input effects the state of the target device. Note that this
need not imply that changing the input actually effects the output at this
time. e.g. if an interrupt controller is already processing a higher priority
input, the low priority inputs should still return "normal" - the input will
be processed once the unrelated high priority input is finished.
* latched: This input has already effected target device state, and will be
ignored until reset by some external event. Typically means an interrupt
controller latches its inputs, and this input has already been latched.
* masked: This input is ignored.
In practice these should give approximately the same information as event
based delivered/coalesced/dropped responses. The difference is that they are
consistent with the state based nature of qemu_irq.
Paul
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, (continued)
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Paul Brook, 2010/06/12
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Blue Swirl, 2010/06/12
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Paul Brook, 2010/06/12
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Blue Swirl, 2010/06/12
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Blue Swirl, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Paul Brook, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Blue Swirl, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Paul Brook, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Blue Swirl, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Paul Brook, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs,
Paul Brook <=
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Blue Swirl, 2010/06/13
- Re: [Qemu-devel] [PATCH 09/16] Enable message delivery via IRQs, Gleb Natapov, 2010/06/14
[Qemu-devel] [PATCH 10/16] x86: Refactor RTC IRQ coalescing workaround, Jan Kiszka, 2010/06/06
[Qemu-devel] [PATCH 11/16] hpet/rtc: Rework RTC IRQ replacement by HPET, Jan Kiszka, 2010/06/06
[Qemu-devel] [PATCH 12/16] hpet: Drop static state, Jan Kiszka, 2010/06/06
[Qemu-devel] [PATCH 14/16] vmstate: Add VMSTATE_STRUCT_VARRAY_UINT8, Jan Kiszka, 2010/06/06