[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-bugs] [Bug 655] New: physid_set() not always setting bit
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=655 Summary: physid_set() not always setting bit Product: Xen Version: unstable Platform: x86-64 OS/Version: Linux Status: NEW Severity: major Priority: P1 Component: Hardware Support AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx ReportedBy: habanero@xxxxxxxxxx CC: niv@xxxxxxxxxx It looks like physid_set() is not setting a bit in a position greater than the native word size. This is a problem for physid_mask_of_physid(), when we populate a "sparse" cpu-mask for phys_cpu_present_map. For some of our large systems, we cannot boot more than 16 cpus because the phys_cpu_present_map needs bits set beyond bit 63 (we have apic IDs greater than 63). The following change fixes the problem for us: --- xen-unstable.hg-9585/xen/include/asm-x86/mpspec.h 2006-04-10 12:49:03.000000000 -0500 +++ xen-unstable.hg-20060407/xen/include/asm-x86/mpspec.h 2006-04-10 11:26:35.000000000 -0500 @@ -71,7 +71,8 @@ typedef struct physid_mask physid_mask_t #define physid_mask_of_physid(physid) \ ({ \ physid_mask_t __physid_mask = PHYSID_MASK_NONE; \ - physid_set(physid, __physid_mask); \ + __physid_mask.mask[physid / BITS_PER_LONG] = \ + 1UL << (physid % BITS_PER_LONG); \ __physid_mask; \ }) -- Configure bugmail: http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. _______________________________________________ Xen-bugs mailing list Xen-bugs@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-bugs
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |