RE: [PATCH 0/6] ACPI/OSL: Rework of ACPICA memory OSLs to improve performance.

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

 



There are reasons for why RCU is used here.
Using spinlock here will break specific acpi_os_read_memory()/acpi_os_write_memory() users.
So this patchset is not correct, please ignore.

Thanks
-Lv

> From: Zheng, Lv
> Sent: Thursday, October 23, 2014 10:12 AM
> 
> 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

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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