From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 019AEC433E1 for ; Mon, 29 Jun 2020 16:35:00 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D45CF25550 for ; Mon, 29 Jun 2020 16:34:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D45CF25550 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=rjwysocki.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvdimm-bounces@lists.01.org Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id CB8BA111B33DB; Mon, 29 Jun 2020 09:34:59 -0700 (PDT) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=79.96.170.134; helo=cloudserver094114.home.pl; envelope-from=rjw@rjwysocki.net; receiver= Received: from cloudserver094114.home.pl (cloudserver094114.home.pl [79.96.170.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 9D30C111B33D3 for ; Mon, 29 Jun 2020 09:34:56 -0700 (PDT) Received: from 89-64-84-69.dynamic.chello.pl (89.64.84.69) (HELO kreacher.localnet) by serwer1319399.home.pl (79.96.170.134) with SMTP (IdeaSmtpServer 0.83.415) id 200f7df7d1df78b0; Mon, 29 Jun 2020 18:34:54 +0200 From: "Rafael J. Wysocki" To: Dan Williams , Erik Kaneda Subject: [PATCH v4 0/2] ACPI: ACPICA / OSL: Avoid unmapping ACPI memory inside of the AML interpreter Date: Mon, 29 Jun 2020 18:31:02 +0200 Message-ID: <1666722.UopIai5n7p@kreacher> In-Reply-To: <2788992.3K7huLjdjL@kreacher> References: <158889473309.2292982.18007035454673387731.stgit@dwillia2-desk3.amr.corp.intel.com> <2713141.s8EVnczdoM@kreacher> <2788992.3K7huLjdjL@kreacher> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID-Hash: 53EBUJAOSLMOVEILXRFT2XIHQR65WEUB X-Message-ID-Hash: 53EBUJAOSLMOVEILXRFT2XIHQR65WEUB X-MailFrom: rjw@rjwysocki.net X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation CC: rafael.j.wysocki@intel.com, Len Brown , Borislav Petkov , James Morse , Myron Stowe , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-nvdimm@lists.01.org, Bob Moore X-Mailman-Version: 3.1.1 Precedence: list List-Id: "Linux-nvdimm developer list." Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: 7bit Hi All, On Friday, June 26, 2020 7:28:27 PM CEST Rafael J. Wysocki wrote: > Hi All, > > On Monday, June 22, 2020 3:50:42 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. > > > > Like I said before, I had decided to change the approach used in the previous > > iteration of this series and to allow the unmap operations carried out by > > acpi_ex_system_memory_space_handler() to be deferred in the first place, > > which is done in patches [1-2/4]. > > In the meantime I realized that calling syncrhonize_rcu_expedited() under the > "tables" mutex within ACPICA is not quite a good idea too and that there is no > reason for any users of acpi_os_unmap_memory() in the tree to use the "sync" > variant of unmapping. > > So, unless I'm missing something, acpi_os_unmap_memory() can be changed to > always defer the final unmapping and the only ACPICA change needed to support > that is the addition of the acpi_os_release_unused_mappings() call to get rid > of the unused mappings when leaving the interpreter (module the extra call in > the debug code for consistency). > > So patches [1-2/4] have been changed accordingly. And this still can be improved by using queue_rcu_work() to queue up the unused mappings for removal in which case ACPICA need not be modified at all for the deferred unmapping to work. Accordingly, patches [1-2/4] from the v3 (and earlier) are now replaced by one patch, the [1/2]. > > However, it turns out that the "fast-path" mapping is still useful on top of > > the above to reduce the number of ioremap-iounmap cycles for the same address > > range and so it is introduced by patches [3-4/4]. > > Patches [3-4/4] still do what they did, but they have been simplified a bit > after rebasing on top of the new [1-2/4]. Moreover, the ACPICA part of the old patches [3-4/4] can be reworked to always preserve memory mappings created by the memory opregion handler without the need to take additional references to memory mappings at the OS level, so patch [4/4] from the v3 (and earlier) is not needed now. Again, for details, please refer to the patch changelogs, but I'm kind of inclined to make these changes regardless, because they both are clear improvements to me. As before: > > 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. > > Also the series have been tested locally. Cheers, Rafael _______________________________________________ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA1C1C433E0 for ; Mon, 29 Jun 2020 19:22:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A3676206F1 for ; Mon, 29 Jun 2020 19:22:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731038AbgF2TWW (ORCPT ); Mon, 29 Jun 2020 15:22:22 -0400 Received: from cloudserver094114.home.pl ([79.96.170.134]:45968 "EHLO cloudserver094114.home.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732226AbgF2TVg (ORCPT ); Mon, 29 Jun 2020 15:21:36 -0400 Received: from 89-64-84-69.dynamic.chello.pl (89.64.84.69) (HELO kreacher.localnet) by serwer1319399.home.pl (79.96.170.134) with SMTP (IdeaSmtpServer 0.83.415) id 200f7df7d1df78b0; Mon, 29 Jun 2020 18:34:54 +0200 From: "Rafael J. Wysocki" To: Dan Williams , Erik Kaneda Cc: rafael.j.wysocki@intel.com, Len Brown , Borislav Petkov , Ira Weiny , James Morse , Myron Stowe , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-nvdimm@lists.01.org, Bob Moore Subject: [PATCH v4 0/2] ACPI: ACPICA / OSL: Avoid unmapping ACPI memory inside of the AML interpreter Date: Mon, 29 Jun 2020 18:31:02 +0200 Message-ID: <1666722.UopIai5n7p@kreacher> In-Reply-To: <2788992.3K7huLjdjL@kreacher> References: <158889473309.2292982.18007035454673387731.stgit@dwillia2-desk3.amr.corp.intel.com> <2713141.s8EVnczdoM@kreacher> <2788992.3K7huLjdjL@kreacher> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Hi All, On Friday, June 26, 2020 7:28:27 PM CEST Rafael J. Wysocki wrote: > Hi All, > > On Monday, June 22, 2020 3:50:42 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. > > > > Like I said before, I had decided to change the approach used in the previous > > iteration of this series and to allow the unmap operations carried out by > > acpi_ex_system_memory_space_handler() to be deferred in the first place, > > which is done in patches [1-2/4]. > > In the meantime I realized that calling syncrhonize_rcu_expedited() under the > "tables" mutex within ACPICA is not quite a good idea too and that there is no > reason for any users of acpi_os_unmap_memory() in the tree to use the "sync" > variant of unmapping. > > So, unless I'm missing something, acpi_os_unmap_memory() can be changed to > always defer the final unmapping and the only ACPICA change needed to support > that is the addition of the acpi_os_release_unused_mappings() call to get rid > of the unused mappings when leaving the interpreter (module the extra call in > the debug code for consistency). > > So patches [1-2/4] have been changed accordingly. And this still can be improved by using queue_rcu_work() to queue up the unused mappings for removal in which case ACPICA need not be modified at all for the deferred unmapping to work. Accordingly, patches [1-2/4] from the v3 (and earlier) are now replaced by one patch, the [1/2]. > > However, it turns out that the "fast-path" mapping is still useful on top of > > the above to reduce the number of ioremap-iounmap cycles for the same address > > range and so it is introduced by patches [3-4/4]. > > Patches [3-4/4] still do what they did, but they have been simplified a bit > after rebasing on top of the new [1-2/4]. Moreover, the ACPICA part of the old patches [3-4/4] can be reworked to always preserve memory mappings created by the memory opregion handler without the need to take additional references to memory mappings at the OS level, so patch [4/4] from the v3 (and earlier) is not needed now. Again, for details, please refer to the patch changelogs, but I'm kind of inclined to make these changes regardless, because they both are clear improvements to me. As before: > > 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. > > Also the series have been tested locally. Cheers, Rafael