From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Len Brown <len.brown@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
Fei Yang <fei.yang@intel.com>
Subject: [PATCH 0/6] ACPI/OSL: Rework of ACPICA memory OSLs to improve performance.
Date: Thu, 23 Oct 2014 10:11:57 +0800 [thread overview]
Message-ID: <cover.1414029477.git.lv.zheng@intel.com> (raw)
It is reported that there is a performance issue in the ACPICA OSL
implementation around memory mappings.
On the reported platforms, there is a debugging facility implemented in the
ACPI namespace using circular logging buffer:
Name (DPTR, 0x3AFEB000)
Name (EPTR, 0x3AFFB000)
Name (CPTR, 0x3AFEB010)
Mutex (MMUT, 0x00)
Method (MDBG, 1, Serialized)
{
Store (Acquire (MMUT, 0x03E8), Local0)
If (Local0 == Zero)
{
OperationRegion (ABLK, SystemMemory, CPTR, 0x10)
Field (ABLK, ByteAcc, NoLock, Preserve)
{
AAAA, 128
}
Store (Arg0, AAAA) /* \MDBG.AAAA */
CPTR = (CPTR + 0x10) /* \CPTR */
If (CPTR >= EPTR)
{
CPTR = (DPTR + 0x10) /* \CPTR */
}
Release (MMUT)
}
Return (Local0)
}
This function is heavily invoked by other ACPI control methods.
The reported platforms suffer from 2-5 minutes kernel stuck in the end of
accessing the mapped circular buffer system memory region. By
instrumentation, the 2-5 minutes time consumption overhead can be seen to
happen on the synchronize_rcu() invoked in the acpi_os_unmap_memory().
This patchset removes the synchronize_rcu() from the hot path to improve
the performance.
Lv Zheng (6):
ACPI/OSL: Split memory operation region implementations to a seperate
file.
ACPI/OSL: Rename system memory functions.
ACPI/OSL: Cleanup memory access functions by merging duplicate code.
ACPI/OSL: Add acpi_map2virt() to merge duplicate code.
ACPI/OSL: Cleanup branch logics.
ACPI/OSL: Fix performance issue in system memory lockings.
drivers/acpi/Makefile | 2 +-
drivers/acpi/mem.c | 414 +++++++++++++++++++++++++++++++++++++++++++++++++
drivers/acpi/osl.c | 381 ---------------------------------------------
3 files changed, 415 insertions(+), 382 deletions(-)
create mode 100644 drivers/acpi/mem.c
--
1.7.10
next reply other threads:[~2014-10-23 2:12 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-23 2:11 Lv Zheng [this message]
2014-10-23 2:12 ` [PATCH 1/6] ACPI/OSL: Split memory operation region implementations to a seperate file Lv Zheng
2014-10-23 2:12 ` [PATCH 2/6] ACPI/OSL: Rename system memory functions Lv Zheng
2014-10-23 2:12 ` [PATCH 3/6] ACPI/OSL: Cleanup memory access functions by merging duplicate code Lv Zheng
2014-10-23 2:12 ` [PATCH 4/6] ACPI/OSL: Add acpi_map2virt() to merge " Lv Zheng
2014-10-23 2:12 ` [PATCH 5/6] ACPI/OSL: Cleanup branch logics Lv Zheng
2014-10-23 2:12 ` [PATCH 6/6] ACPI/OSL: Fix performance issue in system memory lockings Lv Zheng
2014-10-28 5:15 ` [PATCH 0/6] ACPI/OSL: Rework of ACPICA memory OSLs to improve performance Zheng, Lv
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=cover.1414029477.git.lv.zheng@intel.com \
--to=lv.zheng@intel.com \
--cc=fei.yang@intel.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=zetalog@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox