Thread (1 message) 1 message, 1 author, 2007-06-22

Re: In kernel PIC support: kernel patch

From: Avi Kivity <hidden>
Date: 2007-06-22 10:32:38

Dong, Eddie wrote:
Avi Kivity wrote:
  
quoted
Gregory Haskins wrote:
    
quoted
1) KVM_ISA_INTERRUPT:  In level-1 mode, this API allows the userspace
pic to dispatch a vector to the kernel.  In level-2 mode, this allows
any userspace app to tickle an isa based irq line (which feeds into
the inputs of the PIC and IOAPIC.  In other words, a level-2 based
userspace would substitute KVM_ISA_INTERRUPT for pic_set_irq().


      
Wait. Looks like APIs are changing meaning according to some mode.
Confusion. 

How about:

KVM_INTERRUPT == inject this vector now
KVM_EXTINT == drives the processor's interrupt pin (this is handled by
the lapic code). input is a vector and type
KVM_ISA_INTERRUPT == drives the irq inputs to the PIC. Input
is line number.
KVM_IOAPIC_INTERRUPT == drives the irq inputs to the IOAPIC. Input is
line number. KVM_APIC_MESSAGE == do something to the apic

That way, there is no mode (at least in the code), and the APIs keep
their meaning. 

Note that if an irq line is wired to both the ioapic and the
PIC, we may
be better off having a single ioctl that can combine the ISA
and IOAPIC
variants (driving two inputs at once).

Eddie, is that what you were driving at in your simplification
attempt? 

    
Yes, some minor thing:
KVM_ISA_INTERRUPT: Per VM I/F, and need an irq line and irq level.
KVM_IOAPIC_INTERRUPT: Per VM I/F, may also need irq level for level
triggered irq.
KVM_APIC_MESSAGE: Per VCPU I/F

Per step by step approach way, KVM_EXTINT (assume for LINT0/LINT1) can
be deferred to future implementation.

The PIC patch currently implemented KVM_ISA_INTERRUPT (original named
KVM_SET_ISA_IRQ_LEVEL). Need to confirm for the name considering level
information in the cmmand.
  
If we add a chip ID, then KVM_SET_IRQ_LEVEL is best.  If not, then
KVM_SET_ISA_IRQ_LEVEL is better.


-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help