Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1125137yba; Wed, 24 Apr 2019 15:39:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqxvdz/9HSxMkXxQNgZcR0jDbyeC/ERRBgEVN02jgRnejcdA8FWwguJP5/+cW+jC/LaHuaKB X-Received: by 2002:a63:e042:: with SMTP id n2mr32869971pgj.45.1556145540391; Wed, 24 Apr 2019 15:39:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556145540; cv=none; d=google.com; s=arc-20160816; b=hgoNQM01nKfIX3s8I9H3hv3AREbaKXmRRYT9d/iOYhFdPoaZFU+S4z8ixH4I7P4K+G KAllAN94JIeX+P7IMSV0ZzPQbY2cWSE06RTtt/CYQmcixOvTk/RkuKJY2ddUovbb2nC8 biDdRXXKhvRX352N6S5K8xCs+q1v2rHeB5HqTniqWnrXN4FNWr1wKngVDO2esCatgY2Q G6T/0mEbZlN5bU3a4vHpzEUHpR/2fh7VteQI0zpCkO4Yg66kCqjO5ZtffrJqe/FwRkgt fBQE3+/oTAcbvOywyAJiXmnYSbizlP154N4a6ReQggcVz2q8v3zviKgsS3SLcSomhatb +NYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=w/jtUL2UwIAiSug/uDuwPLgpo9hP8cEfx3TAQeMyofM=; b=RoH/XJaN4V90Vc8o9R6sU+Ne67xqfh51GfpWdtIigqPvY95jdZRRHOxD1OYimBYQf2 UetC76An26+2LVOVNscherTKnnbiopZAekHZeD0IqnWGN7l+L2g3GxWiqS1GVn0RIKg+ LM0vGeG8MBiNFMN+PyVusaf+cQ8LKSmL7AZqfgIZIjTinQkHHXoeAHs20Mr/chqHxjF1 uKWphf/DqMQ+Q/pwdFANzvndZq2ptIa2sLGiMJX7eElq7/dGyXiz2HWN4nwT5svHbnQL 5eNFX7K1PlKXxWYAvYn4OgqkIKHk0I8OdKmei382fZoI5yfge99KzglofhQn94i+QULl meMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eObb8+Ej; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b8si854184pls.337.2019.04.24.15.38.45; Wed, 24 Apr 2019 15:39:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eObb8+Ej; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732913AbfDXQzN (ORCPT + 99 others); Wed, 24 Apr 2019 12:55:13 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:41950 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731366AbfDXQzM (ORCPT ); Wed, 24 Apr 2019 12:55:12 -0400 Received: by mail-pf1-f193.google.com with SMTP id 188so9605853pfd.8; Wed, 24 Apr 2019 09:55:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=w/jtUL2UwIAiSug/uDuwPLgpo9hP8cEfx3TAQeMyofM=; b=eObb8+Ejc2+phbdzVJpjl3TLS4XV7L8T75zKVrBSbfoRlhdoC7mH1qzrhtMGJFXFHX UMZ/sP/z2rfKE2MSYqFwDUhynrnHvpHDoYBej8cm+dnjTsuPNu86O96z+o0Xja7PFwru KHBXYC4P9ikEdc+Ujpt3I2wakHdyF++l0wnukGvH/2QpPDSE0obiloLeJi9q9kH6FEl6 ly0Pb7HkOaolBG20HCVF9DzsnI3AhhafRbCZfwMjUxwFExbHc1+F5s3Mf6vA96WH/XxL YpPBPeUxRmrhVmeYJagPuNyJyRbZ+KHhdExWrkmS8GDnJ3pKuKdyhEdJKOhRN8XJxFi4 6B2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=w/jtUL2UwIAiSug/uDuwPLgpo9hP8cEfx3TAQeMyofM=; b=r5TXtpvTMmH9AXLJD1rooT/gpJKQhwOMgQ757jsoE8tFbCIg5NNKAW1b+4kqIv6C4C rE4RemN8DtHtj7tKH1nY5cBv3zqrs/IDtUXpU2zJiMMbynUM1LP6it2OhgqwX1/LWJiN QouAXSApK+nsiZLuXWgjXKxIUuv6EFOHocpa9bP6OThS8dHRzFsTkeBIY/zHm6fyfrsJ R/KwIeJDclob1Hu+p45J86QvHpyBW3blyzjB14joGZDTe5rYGEyiM85feil4UN71vNAQ ZcfhwR+NZRqgNPglOC623ZXP9eInw9ShEgG63KlScna79WA49DZ2mObcBG7R4xUhY6JS igxQ== X-Gm-Message-State: APjAAAWa9MRbEGBtP7n6F2jmAlkFggZp7/DGT87HIwz4UZU7w5SRIl64 5t2chrOOFOVDp/DY1jQ5oaQ= X-Received: by 2002:aa7:82d6:: with SMTP id f22mr25557858pfn.190.1556124911180; Wed, 24 Apr 2019 09:55:11 -0700 (PDT) Received: from mail.google.com ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id b63sm54268925pfj.54.2019.04.24.09.55.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 24 Apr 2019 09:55:10 -0700 (PDT) Date: Thu, 25 Apr 2019 00:55:01 +0800 From: Changbin Du To: Mauro Carvalho Chehab Cc: Changbin Du , Jonathan Corbet , Bjorn Helgaas , rjw@rjwysocki.net, linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, x86@kernel.org, fenghua.yu@intel.com, linuxppc-dev@lists.ozlabs.org, linux-acpi@vger.kernel.org, linux-gpio@vger.kernel.org Subject: Re: [PATCH v4 17/63] Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST Message-ID: <20190424165459.npdedjxrdart7wyk@mail.google.com> References: <20190423162932.21428-1-changbin.du@gmail.com> <20190423162932.21428-18-changbin.du@gmail.com> <20190424112638.1b9f7cfb@coco.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190424112638.1b9f7cfb@coco.lan> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 24, 2019 at 11:26:38AM -0300, Mauro Carvalho Chehab wrote: > Em Wed, 24 Apr 2019 00:28:46 +0800 > Changbin Du escreveu: > > > This converts the plain text documentation to reStructuredText format and > > add it to Sphinx TOC tree. No essential content change. > > > > Signed-off-by: Changbin Du > > --- > > Documentation/acpi/method-tracing.txt | 192 --------------- > > Documentation/firmware-guide/acpi/index.rst | 1 + > > .../firmware-guide/acpi/method-tracing.rst | 225 ++++++++++++++++++ > > 3 files changed, 226 insertions(+), 192 deletions(-) > > delete mode 100644 Documentation/acpi/method-tracing.txt > > create mode 100644 Documentation/firmware-guide/acpi/method-tracing.rst > > > > diff --git a/Documentation/acpi/method-tracing.txt b/Documentation/acpi/method-tracing.txt > > deleted file mode 100644 > > index 0aba14c8f459..000000000000 > > --- a/Documentation/acpi/method-tracing.txt > > +++ /dev/null > > @@ -1,192 +0,0 @@ > > -ACPICA Trace Facility > > - > > -Copyright (C) 2015, Intel Corporation > > -Author: Lv Zheng > > - > > - > > -Abstract: > > - > > -This document describes the functions and the interfaces of the method > > -tracing facility. > > - > > -1. Functionalities and usage examples: > > - > > - ACPICA provides method tracing capability. And two functions are > > - currently implemented using this capability. > > - > > - A. Log reducer > > - ACPICA subsystem provides debugging outputs when CONFIG_ACPI_DEBUG is > > - enabled. The debugging messages which are deployed via > > - ACPI_DEBUG_PRINT() macro can be reduced at 2 levels - per-component > > - level (known as debug layer, configured via > > - /sys/module/acpi/parameters/debug_layer) and per-type level (known as > > - debug level, configured via /sys/module/acpi/parameters/debug_level). > > - > > - But when the particular layer/level is applied to the control method > > - evaluations, the quantity of the debugging outputs may still be too > > - large to be put into the kernel log buffer. The idea thus is worked out > > - to only enable the particular debug layer/level (normally more detailed) > > - logs when the control method evaluation is started, and disable the > > - detailed logging when the control method evaluation is stopped. > > - > > - The following command examples illustrate the usage of the "log reducer" > > - functionality: > > - a. Filter out the debug layer/level matched logs when control methods > > - are being evaluated: > > - # cd /sys/module/acpi/parameters > > - # echo "0xXXXXXXXX" > trace_debug_layer > > - # echo "0xYYYYYYYY" > trace_debug_level > > - # echo "enable" > trace_state > > - b. Filter out the debug layer/level matched logs when the specified > > - control method is being evaluated: > > - # cd /sys/module/acpi/parameters > > - # echo "0xXXXXXXXX" > trace_debug_layer > > - # echo "0xYYYYYYYY" > trace_debug_level > > - # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > - # echo "method" > /sys/module/acpi/parameters/trace_state > > - c. Filter out the debug layer/level matched logs when the specified > > - control method is being evaluated for the first time: > > - # cd /sys/module/acpi/parameters > > - # echo "0xXXXXXXXX" > trace_debug_layer > > - # echo "0xYYYYYYYY" > trace_debug_level > > - # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > - # echo "method-once" > /sys/module/acpi/parameters/trace_state > > - Where: > > - 0xXXXXXXXX/0xYYYYYYYY: Refer to Documentation/acpi/debug.txt for > > - possible debug layer/level masking values. > > - \PPPP.AAAA.TTTT.HHHH: Full path of a control method that can be found > > - in the ACPI namespace. It needn't be an entry > > - of a control method evaluation. > > - > > - B. AML tracer > > - > > - There are special log entries added by the method tracing facility at > > - the "trace points" the AML interpreter starts/stops to execute a control > > - method, or an AML opcode. Note that the format of the log entries are > > - subject to change: > > - [ 0.186427] exdebug-0398 ex_trace_point : Method Begin [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution. > > - [ 0.186630] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905c88:If] execution. > > - [ 0.186820] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905cc0:LEqual] execution. > > - [ 0.187010] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905a20:-NamePath-] execution. > > - [ 0.187214] exdebug-0398 ex_trace_point : Opcode End [0xf5905a20:-NamePath-] execution. > > - [ 0.187407] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905f60:One] execution. > > - [ 0.187594] exdebug-0398 ex_trace_point : Opcode End [0xf5905f60:One] execution. > > - [ 0.187789] exdebug-0398 ex_trace_point : Opcode End [0xf5905cc0:LEqual] execution. > > - [ 0.187980] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905cc0:Return] execution. > > - [ 0.188146] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905f60:One] execution. > > - [ 0.188334] exdebug-0398 ex_trace_point : Opcode End [0xf5905f60:One] execution. > > - [ 0.188524] exdebug-0398 ex_trace_point : Opcode End [0xf5905cc0:Return] execution. > > - [ 0.188712] exdebug-0398 ex_trace_point : Opcode End [0xf5905c88:If] execution. > > - [ 0.188903] exdebug-0398 ex_trace_point : Method End [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution. > > - > > - Developers can utilize these special log entries to track the AML > > - interpretion, thus can aid issue debugging and performance tuning. Note > > - that, as the "AML tracer" logs are implemented via ACPI_DEBUG_PRINT() > > - macro, CONFIG_ACPI_DEBUG is also required to be enabled for enabling > > - "AML tracer" logs. > > - > > - The following command examples illustrate the usage of the "AML tracer" > > - functionality: > > - a. Filter out the method start/stop "AML tracer" logs when control > > - methods are being evaluated: > > - # cd /sys/module/acpi/parameters > > - # echo "0x80" > trace_debug_layer > > - # echo "0x10" > trace_debug_level > > - # echo "enable" > trace_state > > - b. Filter out the method start/stop "AML tracer" when the specified > > - control method is being evaluated: > > - # cd /sys/module/acpi/parameters > > - # echo "0x80" > trace_debug_layer > > - # echo "0x10" > trace_debug_level > > - # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > - # echo "method" > trace_state > > - c. Filter out the method start/stop "AML tracer" logs when the specified > > - control method is being evaluated for the first time: > > - # cd /sys/module/acpi/parameters > > - # echo "0x80" > trace_debug_layer > > - # echo "0x10" > trace_debug_level > > - # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > - # echo "method-once" > trace_state > > - d. Filter out the method/opcode start/stop "AML tracer" when the > > - specified control method is being evaluated: > > - # cd /sys/module/acpi/parameters > > - # echo "0x80" > trace_debug_layer > > - # echo "0x10" > trace_debug_level > > - # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > - # echo "opcode" > trace_state > > - e. Filter out the method/opcode start/stop "AML tracer" when the > > - specified control method is being evaluated for the first time: > > - # cd /sys/module/acpi/parameters > > - # echo "0x80" > trace_debug_layer > > - # echo "0x10" > trace_debug_level > > - # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > - # echo "opcode-opcode" > trace_state > > - > > - Note that all above method tracing facility related module parameters can > > - be used as the boot parameters, for example: > > - acpi.trace_debug_layer=0x80 acpi.trace_debug_level=0x10 \ > > - acpi.trace_method_name=\_SB.LID0._LID acpi.trace_state=opcode-once > > - > > -2. Interface descriptions: > > - > > - All method tracing functions can be configured via ACPI module > > - parameters that are accessible at /sys/module/acpi/parameters/: > > - > > - trace_method_name > > - The full path of the AML method that the user wants to trace. > > - Note that the full path shouldn't contain the trailing "_"s in its > > - name segments but may contain "\" to form an absolute path. > > - > > - trace_debug_layer > > - The temporary debug_layer used when the tracing feature is enabled. > > - Using ACPI_EXECUTER (0x80) by default, which is the debug_layer > > - used to match all "AML tracer" logs. > > - > > - trace_debug_level > > - The temporary debug_level used when the tracing feature is enabled. > > - Using ACPI_LV_TRACE_POINT (0x10) by default, which is the > > - debug_level used to match all "AML tracer" logs. > > - > > - trace_state > > - The status of the tracing feature. > > - Users can enable/disable this debug tracing feature by executing > > - the following command: > > - # echo string > /sys/module/acpi/parameters/trace_state > > - Where "string" should be one of the following: > > - "disable" > > - Disable the method tracing feature. > > - "enable" > > - Enable the method tracing feature. > > - ACPICA debugging messages matching > > - "trace_debug_layer/trace_debug_level" during any method > > - execution will be logged. > > - "method" > > - Enable the method tracing feature. > > - ACPICA debugging messages matching > > - "trace_debug_layer/trace_debug_level" during method execution > > - of "trace_method_name" will be logged. > > - "method-once" > > - Enable the method tracing feature. > > - ACPICA debugging messages matching > > - "trace_debug_layer/trace_debug_level" during method execution > > - of "trace_method_name" will be logged only once. > > - "opcode" > > - Enable the method tracing feature. > > - ACPICA debugging messages matching > > - "trace_debug_layer/trace_debug_level" during method/opcode > > - execution of "trace_method_name" will be logged. > > - "opcode-once" > > - Enable the method tracing feature. > > - ACPICA debugging messages matching > > - "trace_debug_layer/trace_debug_level" during method/opcode > > - execution of "trace_method_name" will be logged only once. > > - Note that, the difference between the "enable" and other feature > > - enabling options are: > > - 1. When "enable" is specified, since > > - "trace_debug_layer/trace_debug_level" shall apply to all control > > - method evaluations, after configuring "trace_state" to "enable", > > - "trace_method_name" will be reset to NULL. > > - 2. When "method/opcode" is specified, if > > - "trace_method_name" is NULL when "trace_state" is configured to > > - these options, the "trace_debug_layer/trace_debug_level" will > > - apply to all control method evaluations. > > diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst > > index a45fea11f998..287a7cbd82ac 100644 > > --- a/Documentation/firmware-guide/acpi/index.rst > > +++ b/Documentation/firmware-guide/acpi/index.rst > > @@ -13,6 +13,7 @@ ACPI Support > > enumeration > > osi > > method-customizing > > + method-tracing > > DSD-properties-rules > > debug > > gpio-properties > > diff --git a/Documentation/firmware-guide/acpi/method-tracing.rst b/Documentation/firmware-guide/acpi/method-tracing.rst > > new file mode 100644 > > index 000000000000..7a997ba168d7 > > --- /dev/null > > +++ b/Documentation/firmware-guide/acpi/method-tracing.rst > > @@ -0,0 +1,225 @@ > > +.. SPDX-License-Identifier: GPL-2.0 > > +.. include:: > > + > > +===================== > > +ACPICA Trace Facility > > +===================== > > + > > +:Copyright: |copy| 2015, Intel Corporation > > +:Author: Lv Zheng > > + > > + > > +:Abstract: This document describes the functions and the interfaces of the > > + method tracing facility. > > Same comment as on other patches. > Fixed, thanks. > > + > > +1. Functionalities and usage examples > > +===================================== > > + > > +ACPICA provides method tracing capability. And two functions are > > +currently implemented using this capability. > > + > > +Log reducer > > +-------------- > > + > > +ACPICA subsystem provides debugging outputs when CONFIG_ACPI_DEBUG is > > +enabled. The debugging messages which are deployed via > > +ACPI_DEBUG_PRINT() macro can be reduced at 2 levels - per-component > > +level (known as debug layer, configured via > > +/sys/module/acpi/parameters/debug_layer) and per-type level (known as > > +debug level, configured via /sys/module/acpi/parameters/debug_level). > > + > > +But when the particular layer/level is applied to the control method > > +evaluations, the quantity of the debugging outputs may still be too > > +large to be put into the kernel log buffer. The idea thus is worked out > > +to only enable the particular debug layer/level (normally more detailed) > > +logs when the control method evaluation is started, and disable the > > +detailed logging when the control method evaluation is stopped. > > + > > +The following command examples illustrate the usage of the "log reducer" > > +functionality: > > + > > +a. Filter out the debug layer/level matched logs when control methods > > + are being evaluated:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0xXXXXXXXX" > trace_debug_layer > > + # echo "0xYYYYYYYY" > trace_debug_level > > + # echo "enable" > trace_state > > + > > +b. Filter out the debug layer/level matched logs when the specified > > + control method is being evaluated:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0xXXXXXXXX" > trace_debug_layer > > + # echo "0xYYYYYYYY" > trace_debug_level > > + # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > + # echo "method" > /sys/module/acpi/parameters/trace_state > > + > > +c. Filter out the debug layer/level matched logs when the specified > > + control method is being evaluated for the first time:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0xXXXXXXXX" > trace_debug_layer > > + # echo "0xYYYYYYYY" > trace_debug_level > > + # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > + # echo "method-once" > /sys/module/acpi/parameters/trace_state > > + > > +Where: > > + 0xXXXXXXXX/0xYYYYYYYY > > + Refer to Documentation/acpi/debug.txt for possible debug layer/level > > + masking values. > > + \PPPP.AAAA.TTTT.HHHH > > + Full path of a control method that can be found in the ACPI namespace. > > + It needn't be an entry of a control method evaluation. > > + > > +AML tracer > > +------------- > > The markup is bigger than the line. You should have seen a Sphinx > warning here. > > > + > > +There are special log entries added by the method tracing facility at > > +the "trace points" the AML interpreter starts/stops to execute a control > > +method, or an AML opcode. Note that the format of the log entries are > > +subject to change:: > > + > > + [ 0.186427] exdebug-0398 ex_trace_point : Method Begin [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution. > > + [ 0.186630] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905c88:If] execution. > > + [ 0.186820] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905cc0:LEqual] execution. > > + [ 0.187010] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905a20:-NamePath-] execution. > > + [ 0.187214] exdebug-0398 ex_trace_point : Opcode End [0xf5905a20:-NamePath-] execution. > > + [ 0.187407] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905f60:One] execution. > > + [ 0.187594] exdebug-0398 ex_trace_point : Opcode End [0xf5905f60:One] execution. > > + [ 0.187789] exdebug-0398 ex_trace_point : Opcode End [0xf5905cc0:LEqual] execution. > > + [ 0.187980] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905cc0:Return] execution. > > + [ 0.188146] exdebug-0398 ex_trace_point : Opcode Begin [0xf5905f60:One] execution. > > + [ 0.188334] exdebug-0398 ex_trace_point : Opcode End [0xf5905f60:One] execution. > > + [ 0.188524] exdebug-0398 ex_trace_point : Opcode End [0xf5905cc0:Return] execution. > > + [ 0.188712] exdebug-0398 ex_trace_point : Opcode End [0xf5905c88:If] execution. > > + [ 0.188903] exdebug-0398 ex_trace_point : Method End [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution. > > + > > +Developers can utilize these special log entries to track the AML > > +interpretion, thus can aid issue debugging and performance tuning. Note > > +that, as the "AML tracer" logs are implemented via ACPI_DEBUG_PRINT() > > +macro, CONFIG_ACPI_DEBUG is also required to be enabled for enabling > > +"AML tracer" logs. > > + > > +The following command examples illustrate the usage of the "AML tracer" > > +functionality: > > + > > +a. Filter out the method start/stop "AML tracer" logs when control > > + methods are being evaluated:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0x80" > trace_debug_layer > > + # echo "0x10" > trace_debug_level > > + # echo "enable" > trace_state > > + > > +b. Filter out the method start/stop "AML tracer" when the specified > > + control method is being evaluated:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0x80" > trace_debug_layer > > + # echo "0x10" > trace_debug_level > > + # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > + # echo "method" > trace_state > > + > > +c. Filter out the method start/stop "AML tracer" logs when the specified > > + control method is being evaluated for the first time:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0x80" > trace_debug_layer > > + # echo "0x10" > trace_debug_level > > + # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > + # echo "method-once" > trace_state > > + > > +d. Filter out the method/opcode start/stop "AML tracer" when the > > + specified control method is being evaluated:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0x80" > trace_debug_layer > > + # echo "0x10" > trace_debug_level > > + # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > + # echo "opcode" > trace_state > > + > > +e. Filter out the method/opcode start/stop "AML tracer" when the > > + specified control method is being evaluated for the first time:: > > + > > + # cd /sys/module/acpi/parameters > > + # echo "0x80" > trace_debug_layer > > + # echo "0x10" > trace_debug_level > > + # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name > > + # echo "opcode-opcode" > trace_state > > + > > +Note that all above method tracing facility related module parameters can > > +be used as the boot parameters, for example:: > > + > > + acpi.trace_debug_layer=0x80 acpi.trace_debug_level=0x10 \ > > + acpi.trace_method_name=\_SB.LID0._LID acpi.trace_state=opcode-once > > + > > +2. Interface descriptions > > +========================= > > + > > +All method tracing functions can be configured via ACPI module > > +parameters that are accessible at /sys/module/acpi/parameters/: > > + > > +trace_method_name > > +The full path of the AML method that the user wants to trace. > > +Note that the full path shouldn't contain the trailing "_"s in its > > +name segments but may contain "\" to form an absolute path. > > + > > > > +trace_debug_layer > > +The temporary debug_layer used when the tracing feature is enabled. > > +Using ACPI_EXECUTER (0x80) by default, which is the debug_layer > > +used to match all "AML tracer" logs. > > + > > +trace_debug_level > > +The temporary debug_level used when the tracing feature is enabled. > > +Using ACPI_LV_TRACE_POINT (0x10) by default, which is the > > +debug_level used to match all "AML tracer" logs. > > + > > +trace_state > > +The status of the tracing feature. > > +Users can enable/disable this debug tracing feature by executing > > +the following command:: > > For the above, please indent, in order to properly change the > sysfs node font to bold. Also, mark paragraphs with a \n, e. g: > > trace_method_name > The full path of the AML method that the user wants to trace. > > Note that the full path shouldn't contain the trailing "_"s in its > name segments but may contain "\" to form an absolute path. > > trace_debug_layer > The temporary debug_layer used when the tracing feature is enabled. > > Using ACPI_EXECUTER (0x80) by default, which is the debug_layer > used to match all "AML tracer" logs. > > trace_debug_level > The temporary debug_level used when the tracing feature is enabled. > > Using ACPI_LV_TRACE_POINT (0x10) by default, which is the > debug_level used to match all "AML tracer" logs. > > trace_state > The status of the tracing feature. > > Users can enable/disable this debug tracing feature by executing > the following command:: > Done, thanks. > After doing such changes: > > Reviewed-by: Mauro Carvalho Chehab > > > > + > > + # echo string > /sys/module/acpi/parameters/trace_state > > + > > +Where "string" should be one of the following: > > + > > +"disable" > > + Disable the method tracing feature. > > +"enable" > > + Enable the method tracing feature. > > + ACPICA debugging messages matching > > + "trace_debug_layer/trace_debug_level" during any method > > + execution will be logged. > > +"method" > > + Enable the method tracing feature. > > + ACPICA debugging messages matching > > + "trace_debug_layer/trace_debug_level" during method execution > > + of "trace_method_name" will be logged. > > +"method-once" > > + Enable the method tracing feature. > > + ACPICA debugging messages matching > > + "trace_debug_layer/trace_debug_level" during method execution > > + of "trace_method_name" will be logged only once. > > +"opcode" > > + Enable the method tracing feature. > > + ACPICA debugging messages matching > > + "trace_debug_layer/trace_debug_level" during method/opcode > > + execution of "trace_method_name" will be logged. > > +"opcode-once" > > + Enable the method tracing feature. > > + ACPICA debugging messages matching > > + "trace_debug_layer/trace_debug_level" during method/opcode > > + execution of "trace_method_name" will be logged only once. > > + > > +Note that, the difference between the "enable" and other feature > > +enabling options are: > > + > > +1. When "enable" is specified, since > > + "trace_debug_layer/trace_debug_level" shall apply to all control > > + method evaluations, after configuring "trace_state" to "enable", > > + "trace_method_name" will be reset to NULL. > > +2. When "method/opcode" is specified, if > > + "trace_method_name" is NULL when "trace_state" is configured to > > + these options, the "trace_debug_layer/trace_debug_level" will > > + apply to all control method evaluations. > > > > Thanks, > Mauro -- Cheers, Changbin Du