apic: avoid warning message for ancient single-core, non-HT processors. fixes #985
wvm: improve diagnostics if allocation failed This was SVN commit r10374.
This commit is contained in:
parent
39e5cb5dc9
commit
a106b9da0b
@ -52,7 +52,9 @@ static Status GetAndValidateApicIds()
|
||||
const size_t numUnique = end-sortedApicIds;
|
||||
|
||||
// all IDs are zero - system lacks an xAPIC.
|
||||
if(numUnique == 1 && sortedApicIds[0] == 0)
|
||||
// (NB: we exclude single-processor systems in this test -
|
||||
// having one zero-valued ID is legitimate)
|
||||
if(numUnique == 1 && sortedApicIds[0] == 0 && numIds != 1)
|
||||
{
|
||||
debug_printf(L"APIC: all zero\n");
|
||||
return ERR::CPU_FEATURE_MISSING; // NOWARN
|
||||
|
@ -287,6 +287,7 @@ CACHE_ALIGNED(struct AddressRangeDescriptor) // POD
|
||||
base = (intptr_t)AllocateLargeOrSmallPages(0, totalSize, MEM_RESERVE);
|
||||
if(!base)
|
||||
{
|
||||
debug_printf(L"AllocateLargeOrSmallPages of %lld failed\n", (u64)totalSize);
|
||||
DEBUG_DISPLAY_ERROR(ErrorString());
|
||||
return ERR::NO_MEM; // NOWARN (error string is more helpful)
|
||||
}
|
||||
@ -344,7 +345,7 @@ CACHE_ALIGNED(struct AddressRangeDescriptor) // POD
|
||||
static const wchar_t* ErrorString()
|
||||
{
|
||||
#if ARCH_IA32
|
||||
return L"Out of address space (64-bit OS is required)";
|
||||
return L"Out of address space (64-bit OS may help)";
|
||||
#elif OS_WIN
|
||||
// because early AMD64 lacked CMPXCHG16B, the Windows lock-free slist
|
||||
// must squeeze the address, ABA tag and list length (a questionable
|
||||
|
Loading…
Reference in New Issue
Block a user