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

[Xen-devel] struct shared_info extensibility (or lack thereof)

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] struct shared_info extensibility (or lack thereof)
From: Rik van Riel <riel@xxxxxxxxxx>
Date: Mon, 28 Nov 2005 11:47:59 -0500 (EST)
Delivery-date: Mon, 28 Nov 2005 16:47:50 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
While looking at "steal" cpu time accounting, I am running
into problems with struct shared_info.  Right now it looks
like I need to modify struct shared_info, but this is not
possible in a backwards compatible way.

I think we should change struct shared_info to be extensible,
so we can expand it at a future date without breaking the
interface.  Right now (before 3.0) would be the best time to
change the data structure to something extensible.

I am thinking it should look something like this:

struct shared_info {
        single variables;
        padding[];
        { vcpu_data, vcpu_time, padding[] }  [ MAX_VIRT_CPUS ];
}

The reason for putting the vcpu_* structures together on a per
virtual cpu basis is that this way we can extend the number of
virtual CPUs in the future, without breaking the interface with
older guests.

The current stared_info struct of two [MAX_VIRT_CPUS] arrays
followed by the single variables is just impossible to extend
in the future.

Any objections to changing the interface now ?

-- 
All Rights Reversed

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