lkml.org 
[lkml]   [2014]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/6] ACPI/OSL: Rework of ACPICA memory OSLs to improve performance.
    Date
    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



    \
     
     \ /
      Last update: 2014-10-23 04:41    [W:2.512 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site