public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* KVM: Patch series for in-kernel APIC support
@ 2007-04-20  3:09 Gregory Haskins
       [not found] ` <20070420030905.12408.40403.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Gregory Haskins @ 2007-04-20  3:09 UTC (permalink / raw)
  To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

The following is my patch series for adding in-kernel APIC support.  It
supports three "levels" of dynamic configuration (via a new ioctl):

 *  level 0 = (default) compatiblity mode (everything in userspace)
 *  level 1 = LAPIC in kernel, IOAPIC/i8259 in userspace
 *  level 2 = All three in kernel

This patch adds support for the basic framework for the new PIC models 
(level 0) as well as an implementation of level-1.  

level-0 is "code complete" and fully tested.  I have run this patchset
using existing QEMU on 64-bit linux, and 32 bit XP.  Both ran fine with no
discernable difference in behavior.

level-1 is "code complete" and compiles/links error free, but is otherwise
untested since I still do not have a functioning userspace component. I
include it here for review/feedback purposes.

level-2 is partially implemented downstream in my queue, but I did not include
it here since it is still TBD whether we will ever need it.

Note that the first patch (in-kernel-mmio.patch) is completely unchanged
through the last few rounds of review.  However, patch 2-5 are heavily
re-worked from the last time so pay particular attention there.  Most notably:

Patch #2: irqdevice changes:
  1) pending+read_vector are now combined into one call: ack().  Feedback and
     my own discoveries downstream indicated this was a superior design.
  2) raise_intr() is now set_intr() which can define more than one "pin" and
     which can be assert/de-asserted an edge or level triggered signal.  This
     significantly simplified the NMI handling logic (some of which you will
     see here in the series) as well as created a much more extensible model
     to work with.
  3) I merged a previously unpublished patch (deferred-irq.patch) into this
     one because it no longer made sense to keep them separate with the new
     design. This provides "push/pop" operations for IRQs to better handle
     injection failure scenarios.

Patch #3 (preemptible-cpu) you are familiar with, but it changed slightly 
to accommodate the changes in #2

#4 and #5 are debuting for the first time.  Feedback/comments/bugfixes on any
 of the code is more than welcome, but I am particular interested in comments
 on the handling of HRTIMERs in the lapic.c code.  I ran into a brick wall
 with the SLEx 2.6.16 kernel not supporting them (fully, which made it worse).
 However the extern-module-compat methodology seemed inadequate to solve the
 problem.  Please advise if there is a better way to solve that.

>From my perspective, this code could be considered for inclusion at this point
(pending review cycles, etc) since it can fully support the existing system.
I will leave that to the powers that be if they would prefer to see level-1 in
action first.

Signed-off-by: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>

  

-------------------------------------------------------------------------
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/

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2007-04-26 16:26 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-20  3:09 KVM: Patch series for in-kernel APIC support Gregory Haskins
     [not found] ` <20070420030905.12408.40403.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-04-20  3:09   ` [PATCH 1/5] Adds support for in-kernel mmio handlers Gregory Haskins
2007-04-20  3:09   ` [PATCH 2/5] KVM: Add irqdevice object Gregory Haskins
     [not found]     ` <20070420030916.12408.80159.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-04-22  8:42       ` Avi Kivity
     [not found]         ` <462B1FD8.4080004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-23 13:58           ` Gregory Haskins
     [not found]             ` <462C8333.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-04-24  9:09               ` Avi Kivity
     [not found]                 ` <462DC954.1020400-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-26 14:37                   ` Gregory Haskins
     [not found]                     ` <463080C8.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-04-26 16:26                       ` Avi Kivity
2007-04-20  3:09   ` [PATCH 3/5] KVM: Adds ability to preepmt an executing VCPU Gregory Haskins
     [not found]     ` <20070420030921.12408.97321.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-04-22  8:50       ` Avi Kivity
     [not found]         ` <462B21C7.2060007-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-23 15:42           ` Gregory Haskins
     [not found]             ` <462C9B94.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-04-24  9:17               ` Avi Kivity
     [not found]                 ` <462DCB3E.6070802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-26 14:40                   ` Gregory Haskins
2007-04-20  3:09   ` [PATCH 4/5] KVM: Local-APIC interface cleanup Gregory Haskins
     [not found]     ` <20070420030926.12408.27637.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-04-22  8:54       ` Avi Kivity
     [not found]         ` <462B22AE.4090108-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-23 15:55           ` Gregory Haskins
     [not found]             ` <462C9EAE.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-04-24  9:26               ` Avi Kivity
     [not found]                 ` <462DCD31.4030108-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-26 14:43                   ` Gregory Haskins
2007-04-20  3:09   ` [PATCH 5/5] KVM: Add support for in-kernel LAPIC model Gregory Haskins
     [not found]     ` <20070420030931.12408.88158.stgit-5CR4LY5GPkvLDviKLk5550HKjMygAv58XqFh9Ls21Oc@public.gmane.org>
2007-04-22  9:04       ` Avi Kivity
     [not found]         ` <462B250E.6050603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-23 15:57           ` Gregory Haskins
2007-04-22  9:06   ` KVM: Patch series for in-kernel APIC support Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox