From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: "Pasi Kärkkäinen" <pasik@iki.fi>
Cc: David Vrabel <david.vrabel@citrix.com>, xen-devel@lists.xen.org
Subject: Re: Linux 3.4 dom0 kernel error loading xen-acpi-processor: Input/output error
Date: Tue, 5 Mar 2013 12:45:15 -0500 [thread overview]
Message-ID: <20130305174515.GA24062@phenom.dumpdata.com> (raw)
In-Reply-To: <20130303185347.GH8912@reaktio.net>
On Sun, Mar 03, 2013 at 08:53:47PM +0200, Pasi Kärkkäinen wrote:
> On Mon, Feb 25, 2013 at 12:05:24AM +0200, Pasi Kärkkäinen wrote:
> > On Thu, Feb 21, 2013 at 07:29:13AM -0500, Konrad Rzeszutek Wilk wrote:
> > > On Thu, Feb 21, 2013 at 11:24:34AM +0200, Pasi Kärkkäinen wrote:
> > > > Hello,
> > > >
> > > > Does anyone know why loading xen-acpi-processor driver fails like this?:
> > > >
> > > > # modprobe xen-acpi-processor
> > > > FATAL: Error inserting xen_acpi_processor (/lib/modules/3.4.32-6.el6.centos.alt.x86_64/kernel/drivers/xen/xen-acpi-processor.ko): Input/output error
> > > >
> > > > Using "modprobe -v" doesn't provide any more information about the problem.
> > > > Also there's nothing in dom0 kernel dmesg.
> > > >
> > > > Hardware is Dell R510 server with Intel Xeon 5600 series CPU.
> > > > Xen 4.2.1.
> > > >
> > > > Kernel is based on 3.4.32 (so the upstream kernel.org longterm stable version)
> > > > with some additional Xen patches backported from later upstream kernels.
> > > > Any tips how to troubleshoot this?
> > >
> > > Rebuild the module and add this
> > > diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> > > index 316df65..5d824a2 100644
> > > --- a/drivers/xen/xen-acpi-processor.c
> > > +++ b/drivers/xen/xen-acpi-processor.c
> > > @@ -16,6 +16,7 @@
> > > * more details.
> > > *
> > > */
> > > +#define DEBUG 1
> > >
> > > #include <linux/cpumask.h>
> > > #include <linux/cpufreq.h>
> > >
> > >
> > > That should help in figuring it out.
> > >
> >
> > This is what I get with DEBUG enabled:
> >
> > # modprobe -v xen-acpi-processor
> > insmod /lib/modules/3.4.32-6.dbg1.el6.x86_64/kernel/drivers/xen/xen-acpi-processor.ko
> > FATAL: Error inserting xen_acpi_processor (/lib/modules/3.4.32-6.dbg1.el6.x86_64/kernel/drivers/xen/xen-acpi-processor.ko): Input/output error
> >
> > in dom0 kernel dmesg:
> > xen-acpi-processor: Max ACPI ID: 24
> >
> > .. and that's all.
> >
> > Adding more debug options on the kernel cmdline I see this:
> > initcall xen_acpi_processor_init+0x0/0x6b0 [xen_acpi_processor] returned -5 after 67 usecs
> > initcall xen_acpi_processor_init+0x0/0x6b0 [xen_acpi_processor] returned with error code -5
> >
> > And enabling some ACPI debug options:
> > processor_perflib-0430 [00] processor_get_performa: ACPI-based processor performance control unavailable
> >
> >
> > I added a bunch of more calls to pr_debug() in xen_acpi_processor_init() and it seems:
> >
> > /* Do initialization in ACPI core. It is OK to fail here. */
> > (void)acpi_processor_preregister_performance(acpi_perf_data);
> >
> > for_each_possible_cpu(i) {
> > struct acpi_processor_performance *perf;
> >
> > perf = per_cpu_ptr(acpi_perf_data, i);
> > rc = acpi_processor_register_performance(perf, i);
> > if (rc)
> > goto err_out;
> > }
> >
> > "goto err_out" is the path taken from here..
> > It seems acpi_processor_register_performance() returns -EIO.
> >
> > .. which means in acpi_processor_register_performance()
> >
> > if (acpi_processor_get_performance_info(pr)) {
> > pr->performance = NULL;
> > mutex_unlock(&performance_mutex);
> > return -EIO;
> > }
> >
> >
> > It seems acpi_processor_get_performance_info() returns -ENODEV:
> >
> > if (ACPI_FAILURE(status)) {
> > ACPI_DEBUG_PRINT((ACPI_DB_INFO,
> > "ACPI-based processor performance control unavailable\n"));
> > return -ENODEV;
> > }
> >
> >
> > Does this ring any bells?
> >
>
> so in acpi_processor_get_performance_info():
>
> status = acpi_get_handle(pr->handle, "_PCT", &handle);
> if (ACPI_FAILURE(status)) {
> ACPI_DEBUG_PRINT((ACPI_DB_INFO,
> "ACPI-based processor performance control unavailable\n"));
> return -ENODEV;
> }
>
> This is the issue I'm hitting.
> acpi_get_handle() returns an error so -ENODEV is returned from acpi_processor_get_performance_info().
>
> Debugging acpi_get_handle() reveals the pathname[] ("_PCT") passed isn't valid for some reason,
> so acpi_ns_valid_root_prefix(pathname[0]) returns false, and a bunch of code is skipped in acpi_get_handle().
>
> Later in acpi_get_handle(): status = acpi_ns_get_node() shows this in dmesg:
>
> nsutils-0363 [82933056] [00] ns_build_internal_name: Returning [ffff8800040f6240] (rel) "_PCT"
> utmutex-0261 [82933056] [00] ut_acquire_mutex : Thread 82933056 attempting to acquire Mutex [ACPI_MTX_Namespace]
> osl-1058 [82933056] [00] os_wait_semaphore : Waiting for semaphore[ffff880039c01aa0|1|65535]
> osl-1077 [82933056] [00] os_wait_semaphore : Acquired semaphore[ffff880039c01aa0|1|65535] utmutex-0269 [82933056] [00] ut_acquire_mutex : Thread 82933056 acquired Mutex [ACPI_MTX_Namespace]
> nsaccess-0398 [82933056] [00] ns_lookup : Searching relative to prefix scope [CPU1] (ffff880039699240)
> nsaccess-0510 [82933056] [00] ns_lookup : Simple Pathname (1 segment, Flags=2)
> nsdump-0087 [82933056] [00] ns_print_pathname : [_PCT]
> nssearch-0114 [82933056] [00] ns_search_one_scope : Searching \_PR_.CPU1 (ffff880039699240) For [_PCT] (Untyped)
> nssearch-0168 [82933056] [00] ns_search_one_scope : Name [_PCT] (Untyped) not found in search in scope [CPU1] ffff880039699240 first child ffff8800396a4e48
> nssearch-0379 [82933056] [00] ns_search_and_enter : _PCT Not found in ffff880039699240 [Not adding]
> nsaccess-0571 [82933056] [00] ns_lookup : Name [_PCT] not found in scope [CPU1] ffff880039699240
> nsutils-0743 [82933056] [00] ns_get_node : _PCT, AE_NOT_FOUND
> utmutex-0300 [82933056] [00] ut_release_mutex : Thread 82933056 releasing Mutex [ACPI_MTX_Namespace]
> osl-1097 [82933056] [00] os_signal_semaphore : Signaling semaphore[ffff880039c01aa0|1]
>
>
> .. and thus ACPI_SUCCESS(status) is false. _PCT was not found.
> Any ideas why the Performance Control stuff can't be found?
No, but I usually do one more thing to check my assumptions. I extract
the SSDT and DSDT:
cat /sys/firmware/acpi/DSDT > /tmp/dsdt
iasl -d /tmp/dsdt
and search for the _PCT to make sure they are actually there.
Independetly of this I was looking at seeing why on v3.9-rc1 it would not work, and
found out that this patch:
d5aaffa9dd531c978c6f3fea06a2972653bd7fc8
Author: Dirk Brandewie <dirk.j.brandewie@intel.com>
Date: Thu Jan 17 16:22:21 2013 +0000
cpufreq: handle cpufreq being disabled for all exported function.
makes acpi_processor_register_performance return -22. Which is b/c
824 if (!(acpi_processor_ppc_status & PPC_REGISTERED)) {
and that is b/c:
227 void acpi_processor_ppc_init(void)
228 {
229 if (!cpufreq_register_notifier
230 (&acpi_ppc_notifier_block, CPUFREQ_POLICY_NOTIFIER))
231 acpi_processor_ppc_status |= PPC_REGISTERED;
232 else
233 printk(KERN_DEBUG
234 "Warning: Processor Platform Limit not supported.\n");
235 }
'cpufreq_register_notifier' fails and acpi_processor_ppc_status is not set
to PPC_REGISTERED.
>
> Thanks,
>
> -- Pasi
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
>
next prev parent reply other threads:[~2013-03-05 17:45 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 9:24 Linux 3.4 dom0 kernel error loading xen-acpi-processor: Input/output error Pasi Kärkkäinen
2013-02-21 12:29 ` Konrad Rzeszutek Wilk
2013-02-21 12:42 ` Pasi Kärkkäinen
2013-02-25 17:03 ` Konrad Rzeszutek Wilk
2013-02-25 19:08 ` Pasi Kärkkäinen
2013-02-24 22:05 ` Pasi Kärkkäinen
2013-03-03 18:53 ` Pasi Kärkkäinen
2013-03-05 17:45 ` Konrad Rzeszutek Wilk [this message]
2013-03-06 20:41 ` Pasi Kärkkäinen
2013-03-06 21:01 ` Pasi Kärkkäinen
2013-03-06 21:21 ` Pasi Kärkkäinen
2013-03-07 0:29 ` Konrad Rzeszutek Wilk
2013-03-07 7:48 ` Pasi Kärkkäinen
2013-03-08 20:24 ` Konrad Rzeszutek Wilk
2013-03-08 22:18 ` Pasi Kärkkäinen
2013-03-12 20:51 ` Pasi Kärkkäinen
2013-03-15 15:05 ` Konrad Rzeszutek Wilk
2013-03-15 15:19 ` Pasi Kärkkäinen
2013-03-15 19:37 ` Pasi Kärkkäinen
2013-03-15 21:15 ` Konrad Rzeszutek Wilk
2013-03-15 21:32 ` Pasi Kärkkäinen
2013-03-17 17:00 ` Konrad Rzeszutek Wilk
2013-03-18 13:06 ` Konrad Rzeszutek Wilk
2013-03-18 17:02 ` Pasi Kärkkäinen
2013-03-18 20:20 ` Konrad Rzeszutek Wilk
2013-05-12 16:51 ` Pasi Kärkkäinen
2013-05-13 13:46 ` Konrad Rzeszutek Wilk
2013-05-13 15:03 ` Pasi Kärkkäinen
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=20130305174515.GA24062@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=pasik@iki.fi \
--cc=xen-devel@lists.xen.org \
/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.