Hi, Imre > From: Deak, Imre > Subject: Re: 4.9-rc1: [TMP_] ACPI namespace lookup failure, AE_ALREADY_EXISTS > > On Fri, 2016-10-21 at 22:46 +0300, Zheng, Lv wrote: > > [...] > > I checked the code, only found one issue. > > And I'm not sure if it is related. > > Please send me the full dmesg containing the errors and the acpidump > > output. > > I attached the dmesg containing the error during boot (happened 1 out > of 200 boots), during reboot (20 out of 200 reboots), during suspend > (happened all the time). I just checked the error and the related code. 1. What the error is The error message is generated by an old method auto-serial mechanism. However this mechanism should have been disabled by new auto-serial approach. See: the error is generated by the code in drivers/acpi/acpica/psparse.c: if ((status == AE_ALREADY_EXISTS) && (!(walk_state->method_desc->method. info_flags & ACPI_METHOD_SERIALIZED))) { /* * Method is not serialized and tried to create an object * twice. The probable cause is that the method cannot * handle reentrancy. Mark as "pending serialized" now, and * then mark "serialized" when the last thread exits. */ walk_state->method_desc->method.info_flags |= ACPI_METHOD_SERIALIZED_PENDING; } It can only happen when ACPI_METHOD_SERIALIZED flag is not set. However, in the upstream kernel, this flag is set by the code in drivers/acpi/acpica/dsinit.c: if (obj_desc->method.info_flags & ACPI_METHOD_SERIALIZED) { info->serial_method_count++; break; } if (acpi_gbl_auto_serialize_methods) { /* Parse/scan method and serialize it if necessary */ acpi_ds_auto_serialize_method(node, obj_desc); if (obj_desc->method. info_flags & ACPI_METHOD_SERIALIZED) { /* Method was just converted to Serialized */ info->serial_method_count++; info->serialized_method_count++; break; } } Which is invoked by acpi_ds_initialize_objects(), always invoked in acpi_ns_load_table(). Unless acpi_gbl_auto_serialize_methods = false or acpi_ns_parse_table() failed, the flag won't be remained unset. The error message is generated by old auto-serialize implementation. And acpi_gbl_auto_serialize_methods is meant to mute the warnings. Both mechanism should work, thus this error message is not fatal. It just makes ACPICA to fall back to use old auto-serial method. So the issue is not urgent. 2. Why the error message is caused I couldn't see whether the bisected commit can be related to this feature. It seems we need your help to debug what the problem is. First, please try the mentioned branch here: https://github.com/zetalog/linux acpica-lock branch. As I may need to ask for several debugging steps, let me file a kernel Bugzilla bug for this. So that we can communicate there in order not to bother others: https://bugzilla.kernel.org/show_bug.cgi?id=180111 Thanks and best regards Lv > > I attached the acpidump output. > > > Please give the fix a try (see attachment). > > The patch didn't apply on 4.9-rc1 or Linus' master, please see the > attached patch for my attempt to resolve the conflicts. With the patch > applied I could still trigger the same problem during suspend. > > --Imre > > > I'm sorry for sending fix patch using attachment. > > It's not convenient for me due to my current working environment. > > > > Thanks and best regards > > Lv