All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.