On Wednesday, June 10, 2020 2:17:04 PM CEST Rafael J. Wysocki wrote: > Hi All, > > This series is to address the problem with RCU synchronization occurring, > possibly relatively often, inside of acpi_ex_system_memory_space_handler(), > when the namespace and interpreter mutexes are held. > > The basic idea is to avoid the actual unmapping of memory in > acpi_ex_system_memory_space_handler() by making it take the advantage of the > reference counting of memory mappings utilized by the OSL layer in Linux. > > The basic assumption in patch [1/3] is that if the special > ACPI_OS_MAP_MEMORY_FAST_PATH() macro is present, it can be used to increment > the reference counter of a known-existing memory mapping in the OS layer > which then is dropped by the subsequent acpi_os_unmap_memory() without > unmapping the address range at hand. That can be utilized by > acpi_ex_system_memory_space_handler() to prevent the reference counters of > all mappings used by it from dropping down to 0 (which also prevents the > address ranges associated with them from being unmapped) so that they can > be unmapped later (specifically, at the operation region deactivation time). > > Patch [2/3] defers the unmapping even further, until the namespace and > interpreter mutexes are released, to avoid invoking the RCU synchronization > under theses mutexes. > > Finally, patch [3/3] changes the OS layer in Linux to provide the > ACPI_OS_MAP_MEMORY_FAST_PATH() macro. > > Note that if this macro is not defined, the code works the way it used to. > > The series is available from the git branch at > > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ > acpica-osl > > for easier testing. Please disregard this patch series, it will be replaced by a new one which already is there in the acpica-osl branch above. Thanks!