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

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


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • 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
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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


 


Rackspace

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