
Hi, Dan Thank you for your suggestion. My concern is if patch for sysctl v4 is applied or not. Since previously Daniel commented, libvirt does not include the patch for Xen-unstable only includes for versioned like Xen-3.x. Thanks Atsushi SAKAI "Daniel P. Berrange" <berrange@redhat.com> wrote:
On Wed, Jul 18, 2007 at 10:40:06PM +0900, Atsushi SAKAI wrote:
Hi, Daniel
?$B!!I checked it and it works fine!
2 point of question (not related to this point)
1)I sometimes rewiriting xen_internal.c in my test environment. from xen/linux/privcmd.h to xen/sys/privcmd.h Is there any possibility to change the path?
2)xen-unstable 15482 changes sysctl version(from 3 to 4). Is there any possibility libvirt to work new sysctl version? At this moment, libvirt cannot not handle latest xen-unstable.
Looks like a pretty trivial thing to fix
@@ -85,6 +86,23 @@ struct xen_sysctl_physinfo { uint64_aligned_t free_pages; uint64_aligned_t scrub_pages; uint32_t hw_cap[8]; + + /* IN/OUT variables. */ + /* + * IN: maximum addressable entry in the caller-provided cpu_to_node array. + * OUT: largest cpu identifier in the system. + * If OUT is greater than IN then the cpu_to_node array is truncated! + */ + uint32_t max_cpu_id; + /* + * If not NULL, this array is filled with node identifier for each cpu. + * If a cpu has no node information (e.g., cpu not present) then the + * sentinel value ~0u is written. + * The size of this array is specified by the caller in @max_cpu_id. + * If the actual @max_cpu_id is smaller than the array then the trailing + * elements of the array will not be written by the sysctl. + */ + XEN_GUEST_HANDLE_64(uint32_t) cpu_to_node; };
So the struct basically grew 12 bytes larger. I guess libvirt is broken because we're not passing in a big enough memory block.
Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|