[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Linux 3.4 dom0 kernel error loading xen-acpi-processor: Input/output error
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? Thanks, -- Pasi _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |