RE: 4.9-rc1: [TMP_] ACPI namespace lookup failure, AE_ALREADY_EXISTS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Zheng, Lv
> Sent: Monday, October 24, 2016 12:36 AM
> To: Deak, Imre <imre.deak@xxxxxxxxx>; Moore, Robert
> <robert.moore@xxxxxxxxx>; Wysocki, Rafael J
> <rafael.j.wysocki@xxxxxxxxx>; linux-acpi@xxxxxxxxxxxxxxx;
> devel@xxxxxxxxxx
> Subject: RE: 4.9-rc1: [TMP_] ACPI namespace lookup failure,
> AE_ALREADY_EXISTS
> 
> 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.
[Moore, Robert] 


We kept the original auto-serialize mechanism because the new one is not 100% deterministic. Thus, the original mechanism is a fallback case, that is why it is still there. It should not be removed.





> 
> 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
��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux