"Daniel P. Berrange" <berrange(a)redhat.com> wrote:
On Wed, Dec 17, 2008 at 08:39:04AM +0100, Jim Meyering wrote:
> Daniel Veillard <veillard(a)redhat.com> wrote:
> ...
> >> All tests pass for me with that patch. Looks good.
> >
> > Same for me, +1 !
>
> Thanks.
> Pushed with this comment:
>
> fix numa-related (and kernel-dependent) test failures
> This change is required on some kernels due to the way a change in
> the kernel's CONFIG_NR_CPUS propagates through the numa library.
> * src/qemu_conf.c (qemudCapsInitNUMA): Pass numa_all_cpus_ptr->size/8
> as the buffer-length-in-bytes in the call to numa_node_to_cpus, since
> that's what is required on second and subseqent calls.
> * src/uml_conf.c (umlCapsInitNUMA): Likewise.
This change has broken the compile on Fedora 9 and earlier where the
numa_all_cpus_ptr symbol does not exist. So it needs to have a test
in configure.ac added, and if not present, go with our original code
of a fixed mask size. Fortunately on Fedora 9's libnuma, they don't
have the annoying mask size checks - that's a new Fedora 10 thing
Thanks for the heads-up.
While normally I'd prefer an autoconf test,
it might make sense to use an #if in this case.
Maybe this will do it:
#if LIBNUMA_API_VERSION <= 1
use old code
#else
use numa_all_cpus_ptr
#endif
I also just noticed that its only touching the size param passed
into
the numa_node_to_cpus, but not the actual size that's allocated for the
array. This is fairly harmless....until someone does a kernel build
with NR_CPUS > 4096
I'll deal with this, too.