WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] iosapic virtualisation

On Wed, 2006-02-01 at 10:11 +0100, Tristan Gingold wrote:
> Le Mardi 31 Janvier 2006 20:53, Alex Williamson a écrit :

> >       * 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 ?

   Ah, I see it now.  I missed how we're ignoring the vector from the
domain when we call iosapic_register_intr() then we store it in rte->vec
for the call back to the domain.  Perfect.

> >       * 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.

  Doesn't iosapic_version() call iosapic_read() which writes to the
IOSAPIC_REG_SELECT register?  I was concerned that's where we'd run into
a problem, but maybe I'm forgetting something about how IOSAPICs work.
By the way, I don't see iosapic.h in the patch set, probably why it
didn't compile for me.  Thanks,

        Alex

-- 
Alex Williamson                             HP Linux & Open Source Lab


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