All of lore.kernel.org
 help / color / mirror / Atom feed
From: beth kon <eak@us.ibm.com>
To: Xen-devel@lists.xensource.com
Subject: Problem with ACPI recognzing CPUs
Date: Tue, 07 Aug 2007 13:54:14 -0400	[thread overview]
Message-ID: <46B8B1C6.4080807@us.ibm.com> (raw)

We are seeing an issue with dom0 ACPI recognizing all CPUs in the 
system. This is being seen on x86_64, xen-3.1-testing, on an IBM x3950. 
The machine is 128-way and I'd expect dom0 to see 32 CPUs. /proc/cpuinfo 
does show 32 CPUs, but /proc/acpi/processor does not, and dom0 dmesg 
shows error messages like:

ACPI Exception (acpi_processor-0681): AE_NOT_FOUND, Processor Device is 
not present [20060707]
ACPI: Getting cpuindex for acpiid 0x10

I have traced the problem to the following:

acpi_processor_start leads to a call to convert_acpiid_to_cpu, which 
translates from acpiid to cpu using  2 tables:

 1) arch_acpiid_to_apicid[acpi_id] - translates from acpiid to apic_id. 
This table is initialized via the ACPI MADT table. apic_ids on this box 
range from 0 to 247;

2) arch_cpu_to_apicid - translates from apic_id found above to cpu. This 
table is initialized in drivers/xen/core/smpboot.c:

void __init smp_prepare_cpus(unsigned int max_cpus)
{
  ...
  x86_cpu_to_apicid[cpu] = cpu;
  ...
}

The contents of this table increase linearly, in this case from 0 to 31. 

So, when apic_ids are above 31, as found in the MADT, they can not be found in the x86_cpu_to_apicid table by convert_acpiid_to_cpu, leading to the processor being "NOT_FOUND" by ACPI.

Can anyone explain why xen/core/smpboot.c linearly correlates cpu to apic_id, causing problems for machines that have large apic_ids? I'm not sure what the right solution to this problem is. 





                  

-- 
Elizabeth Kon (Beth)
IBM Linux Technology Center
Open Hypervisor Team
email: eak@us.ibm.com

             reply	other threads:[~2007-08-07 17:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-07 17:54 beth kon [this message]
2007-08-08  7:09 ` Problem with ACPI recognzing CPUs Keir Fraser

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46B8B1C6.4080807@us.ibm.com \
    --to=eak@us.ibm.com \
    --cc=Xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.