|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH]Check the values of MAX_VIRT_CPUS and NR_CPUS for
Le Vendredi 21 Avril 2006 03:31, Atsushi SAKAI a écrit :
> Hi, All
>
> This is a patch for checking # of CPUs consistency.
> This patch compares the values of MAX_VIRT_CPU and NR_CPUS.
> The object of this patch is to avoid boot error for SMP case.
>
> Reason for the need of this patch
>
> When we were testing SMP system, Boot sequence was failed
> in the case of using BVT scheduler.
> Each CPU assumed to have idle_vcpu in scheduler.
> But these two values inconsistency makes the cpus which is not assigned
> idle_vcpu. This case is occurred MAX_VIRT_CPUS is less than # of Real CPU.
> (for example MAX_VIRT_CPUS = 4 and Real CPU = 8
> 4Real CPUs are not assigned to idle_vcpu)
> Currently, no check routine exists in scheduler for this problem.
> To solve this problem, I added check routine in xen/sched.h.
>
>
>
> Current situations
>
> This problem is currently solved in IA64 by CSET;9495 patch by
> expanding both CPUS value to 64.
> (Previously MAX_VIRT_CPUS = 8 and NR_CPUS = 4)
>
> #define MAX_VIRT_CPUS 64 in xen/include/public/arch-ia64.h
> and
> #define NR_CPUS 64 in xen/include/asm-ia64/config.h
>
> But the logical limit of the IA64 Max CPU is larger than 64.
> If someone change these values, some possibility make this error again.
>
> To avoid this problem, I believe this check code should be exists.
Please also note that this problem is currently worked around in xen/ia64:
/* A vcpu is created for the idle domain on every physical cpu.
Limit the number of cpus to the maximum number of vcpus. */
if (max_cpus > MAX_VIRT_CPUS)
max_cpus = MAX_VIRT_CPUS;
Of course, the Keir method is better!
Tristan.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|