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

Re: [Xen-ia64-devel] iosapic virtualisation



Le Mardi 31 Janvier 2006 20:53, Alex Williamson a Ãcrit :
> On Tue, 2006-01-31 at 12:29 +0100, Tristan Gingold wrote:
> > Hi,
> >
> > here is the path for iosapic virtualisation.
> > Currently this is just for review and comments.
>
> Hi Tristan,
>
>    Looks pretty good.  A few comments:
>
>       * The unmask patch of iosapic_guest_write() doesn't check the
>         domain before unmasking. Looks like maybe we could unmask
>         interrupts on the wrong domain.
Correct, I will add a check.
(However this can't happen currently, since only dom0 use iosapic).

>       * Please define a couple macros for the offset value used in
>         xen_iosapic_write(), rather than using 0 & 1.
Ok.

>       * There are a couple of debug additions to linux-xen/iosapic.c not
>         enclosed in #ifdef XEN.
Sorry, I will fix that.

>       * The vector-to-rte lookup in xen_reflect_interrupt_to_domain()
>         looks rather heavy weight.  It seems like we should be able to
>         construct the data structures for a direct look up here.  I
>         don't think we can afford to scan the rte list for every
>         interrupt.
I fully agree on the 'heavy weight' point.
I will create a global map.  I think this point should be revisited when we 
will switch from interrupts to event channel (if we do).

>       * Assigning vectors as defined by the domain; I think this is
>         covered by some of the comments included about future problems,
>         but maybe we should address this one now.  We should probably
>         start out with separate vector spaces between xen and each
>         domain and keep a mapping table between xen vectors (ie. what's
>         actually programmed into the IOSAPIC RTE) and what the domains
>         tried to program via iosapic_guest_write().  It's probably
>         reasonable to assign xen vectors from highest to lowest such
>         that xen will end up with the highest priority external
>         interrupts, dom0 the next highest, and so on.
I don't really understand your point here.
With the patch there is no relations between IOSAPIC vector and domain vector.  
That's the reason why there is an heavy weight look-up.  If we create a 
look-up table (see previous point), we do what you describe here, don't we ?

>       * We need to paravirtualize reads of the IOSAPIC as well as
>         writes.  Since the IOSAPICs use a windowing register scheme, a
>         domain reading an IOSAPIC could interfere with Xen writing or
>         cause races with other domains.  This will also enable us to
>         hide the physical IOSAPIC structure if we need to at some point.
Ok.  I think this point is rather moot because linux doesn't read IOSAPIC 
(except version, which is not windowed).  However for completion I will do 
it.

> I'll see if I can get this to build and run on my box.  Thanks,

Thank you for your comments,
Tristan.


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.