qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] pc: Clean up PIC-to-APIC IRQ path


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH] pc: Clean up PIC-to-APIC IRQ path
Date: Wed, 31 Aug 2011 17:41:16 +0000

On Wed, Aug 31, 2011 at 10:53 AM, Jan Kiszka <address@hidden> wrote:
> On 2011-08-31 10:25, Peter Maydell wrote:
>> On 30 August 2011 20:28, Jan Kiszka <address@hidden> wrote:
>>> Yes, that's the current state. Once we have bidirectional IRQ links in
>>> place (pushing downward, querying upward - required to skip IRQ routers
>>> for fast, lockless deliveries), that should change again.
>>
>> Can you elaborate a bit more on this? I don't think anybody has
>> proposed links with their own internal state before in the qdev/qom
>> discussions...
>
> That basic idea is to allow
>
> a) a discovery of the currently active IRQ path from source to sink
>   (that would be possible via QOM just using forward links)

Why, only for b)? This is not possible with real hardware.

> b) skip updating the states of IRQ routers in the common case, just
>   signaling directly the sink from the source (to allow in-kernel IRQ
>   delivery or to skip taking some device locks). Whenever some router
>   is queried for its current IRQ line state, it would have to ask the
>   preceding IRQ source for its state. So we need a backward link.

I think this would need pretty heavy changes everywhere. At board
level the full path needs to be identified and special versions of
IRQs installed along the way. The routers would need to use callbacks
to inform other parties about routing changes.

> We haven't thought about how this could be implemented in details yet
> though. Among other things, it heavily depends on the final QOM design.

Perhaps a global IRQ manager could help. It would keep track of the
whole IRQ matrix, what are input (x axis) and output (y axis) states
and what each matrix node (router state) looks like (or able to
compute) if asked. I don't think backward links would be needed with
this approach.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]