From: "Rafael J. Wysocki" <rafael@kernel.org> To: "Verma, Vishal L" <vishal.l.verma@intel.com> Cc: "Kaneda, Erik" <erik.kaneda@intel.com>, "rjw@rjwysocki.net" <rjw@rjwysocki.net>, "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>, "james.morse@arm.com" <james.morse@arm.com>, "lenb@kernel.org" <lenb@kernel.org>, "andriy.shevchenko@linux.intel.com" <andriy.shevchenko@linux.intel.com>, "bp@alien8.de" <bp@alien8.de>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "myron.stowe@redhat.com" <myron.stowe@redhat.com>, "Wysocki, Rafael J" <rafael.j.wysocki@intel.com>, "Moore, Robert" <robert.moore@intel.com>, "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org> Subject: Re: [PATCH v4 2/2] ACPICA: Preserve memory opregion mappings Date: Sun, 19 Jul 2020 21:14:23 +0200 [thread overview] Message-ID: <CAJZ5v0ga+j4iK7oTbkFPDmN=UpUMHfbmQMyBnP-LvG-xSj50kQ@mail.gmail.com> (raw) In-Reply-To: <1738949fd49e9804722bf82d790e3022fc714677.camel@intel.com> On Thu, Jul 16, 2020 at 9:22 PM Verma, Vishal L <vishal.l.verma@intel.com> wrote: > > On Mon, 2020-06-29 at 18:33 +0200, Rafael J. Wysocki wrote: > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > > > The ACPICA's strategy with respect to the handling of memory mappings > > associated with memory operation regions is to avoid mapping the > > entire region at once which may be problematic at least in principle > > (for example, it may lead to conflicts with overlapping mappings > > having different attributes created by drivers). It may also be > > wasteful, because memory opregions on some systems take up vast > > chunks of address space while the fields in those regions actually > > accessed by AML are sparsely distributed. > > > > For this reason, a one-page "window" is mapped for a given opregion > > on the first memory access through it and if that "window" does not > > cover an address range accessed through that opregion subsequently, > > it is unmapped and a new "window" is mapped to replace it. Next, > > if the new "window" is not sufficient to acess memory through the > > opregion in question in the future, it will be replaced with yet > > another "window" and so on. That may lead to a suboptimal sequence > > of memory mapping and unmapping operations, for example if two fields > > in one opregion separated from each other by a sufficiently wide > > chunk of unused address space are accessed in an alternating pattern. > > > > The situation may still be suboptimal if the deferred unmapping > > introduced previously is supported by the OS layer. For instance, > > the alternating memory access pattern mentioned above may produce > > a relatively long list of mappings to release with substantial > > duplication among the entries in it, which could be avoided if > > acpi_ex_system_memory_space_handler() did not release the mapping > > used by it previously as soon as the current access was not covered > > by it. > > > > In order to improve that, modify acpi_ex_system_memory_space_handler() > > to preserve all of the memory mappings created by it until the memory > > regions associated with them go away. > > > > Accordingly, update acpi_ev_system_memory_region_setup() to unmap all > > memory associated with memory opregions that go away. > > > > Reported-by: Dan Williams <dan.j.williams@intel.com> > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > --- > > drivers/acpi/acpica/evrgnini.c | 14 ++++---- > > drivers/acpi/acpica/exregion.c | 65 ++++++++++++++++++++++++---------- > > include/acpi/actypes.h | 12 +++++-- > > 3 files changed, 64 insertions(+), 27 deletions(-) > > > > Hi Rafael, > > Picking up from Dan while he's out - I had these patches tested by the > original reporter, and they work fine. I see you had them staged in the > acpica-osl branch. Is that slated to go in during the 5.9 merge window? Yes, it is. > You can add: > Tested-by: Xiang Li <xiang.z.li@intel.com> Thank you! _______________________________________________ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: "Rafael J. Wysocki" <rafael@kernel.org> To: "Verma, Vishal L" <vishal.l.verma@intel.com> Cc: "Williams, Dan J" <dan.j.williams@intel.com>, "Kaneda, Erik" <erik.kaneda@intel.com>, "rjw@rjwysocki.net" <rjw@rjwysocki.net>, "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>, "james.morse@arm.com" <james.morse@arm.com>, "lenb@kernel.org" <lenb@kernel.org>, "andriy.shevchenko@linux.intel.com" <andriy.shevchenko@linux.intel.com>, "bp@alien8.de" <bp@alien8.de>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "myron.stowe@redhat.com" <myron.stowe@redhat.com>, "Wysocki, Rafael J" <rafael.j.wysocki@intel.com>, "Weiny, Ira" <ira.weiny@intel.com>, "Moore, Robert" <robert.moore@intel.com>, "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org> Subject: Re: [PATCH v4 2/2] ACPICA: Preserve memory opregion mappings Date: Sun, 19 Jul 2020 21:14:23 +0200 [thread overview] Message-ID: <CAJZ5v0ga+j4iK7oTbkFPDmN=UpUMHfbmQMyBnP-LvG-xSj50kQ@mail.gmail.com> (raw) In-Reply-To: <1738949fd49e9804722bf82d790e3022fc714677.camel@intel.com> On Thu, Jul 16, 2020 at 9:22 PM Verma, Vishal L <vishal.l.verma@intel.com> wrote: > > On Mon, 2020-06-29 at 18:33 +0200, Rafael J. Wysocki wrote: > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > > > The ACPICA's strategy with respect to the handling of memory mappings > > associated with memory operation regions is to avoid mapping the > > entire region at once which may be problematic at least in principle > > (for example, it may lead to conflicts with overlapping mappings > > having different attributes created by drivers). It may also be > > wasteful, because memory opregions on some systems take up vast > > chunks of address space while the fields in those regions actually > > accessed by AML are sparsely distributed. > > > > For this reason, a one-page "window" is mapped for a given opregion > > on the first memory access through it and if that "window" does not > > cover an address range accessed through that opregion subsequently, > > it is unmapped and a new "window" is mapped to replace it. Next, > > if the new "window" is not sufficient to acess memory through the > > opregion in question in the future, it will be replaced with yet > > another "window" and so on. That may lead to a suboptimal sequence > > of memory mapping and unmapping operations, for example if two fields > > in one opregion separated from each other by a sufficiently wide > > chunk of unused address space are accessed in an alternating pattern. > > > > The situation may still be suboptimal if the deferred unmapping > > introduced previously is supported by the OS layer. For instance, > > the alternating memory access pattern mentioned above may produce > > a relatively long list of mappings to release with substantial > > duplication among the entries in it, which could be avoided if > > acpi_ex_system_memory_space_handler() did not release the mapping > > used by it previously as soon as the current access was not covered > > by it. > > > > In order to improve that, modify acpi_ex_system_memory_space_handler() > > to preserve all of the memory mappings created by it until the memory > > regions associated with them go away. > > > > Accordingly, update acpi_ev_system_memory_region_setup() to unmap all > > memory associated with memory opregions that go away. > > > > Reported-by: Dan Williams <dan.j.williams@intel.com> > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > --- > > drivers/acpi/acpica/evrgnini.c | 14 ++++---- > > drivers/acpi/acpica/exregion.c | 65 ++++++++++++++++++++++++---------- > > include/acpi/actypes.h | 12 +++++-- > > 3 files changed, 64 insertions(+), 27 deletions(-) > > > > Hi Rafael, > > Picking up from Dan while he's out - I had these patches tested by the > original reporter, and they work fine. I see you had them staged in the > acpica-osl branch. Is that slated to go in during the 5.9 merge window? Yes, it is. > You can add: > Tested-by: Xiang Li <xiang.z.li@intel.com> Thank you!
next prev parent reply other threads:[~2020-07-19 19:14 UTC|newest] Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-07 23:39 [PATCH v2] ACPI: Drop rcu usage for MMIO mappings Dan Williams 2020-05-07 23:39 ` Dan Williams 2020-05-09 12:30 ` Sasha Levin 2020-05-13 8:52 ` [ACPI] 5a91d41f89: BUG:sleeping_function_called_from_invalid_context_at_kernel/locking/mutex.c kernel test robot 2020-05-13 8:52 ` kernel test robot 2020-05-13 8:52 ` kernel test robot 2020-06-05 13:32 ` [PATCH v2] ACPI: Drop rcu usage for MMIO mappings Rafael J. Wysocki 2020-06-05 13:32 ` Rafael J. Wysocki 2020-06-05 16:18 ` Dan Williams 2020-06-05 16:18 ` Dan Williams 2020-06-05 16:21 ` Rafael J. Wysocki 2020-06-05 16:21 ` Rafael J. Wysocki 2020-06-05 16:39 ` Dan Williams 2020-06-05 16:39 ` Dan Williams 2020-06-05 17:02 ` Rafael J. Wysocki 2020-06-05 17:02 ` Rafael J. Wysocki 2020-06-05 14:06 ` [RFT][PATCH] ACPI: OSL: Use rwlock instead of RCU for memory management Rafael J. Wysocki 2020-06-05 14:06 ` Rafael J. Wysocki 2020-06-05 17:08 ` Dan Williams 2020-06-05 17:08 ` Dan Williams 2020-06-06 6:56 ` Rafael J. Wysocki 2020-06-06 6:56 ` Rafael J. Wysocki 2020-06-08 15:33 ` Rafael J. Wysocki 2020-06-08 15:33 ` Rafael J. Wysocki 2020-06-08 16:29 ` Rafael J. Wysocki 2020-06-08 16:29 ` Rafael J. Wysocki 2020-06-05 19:40 ` Andy Shevchenko 2020-06-05 19:40 ` Andy Shevchenko 2020-06-06 6:48 ` Rafael J. Wysocki 2020-06-06 6:48 ` Rafael J. Wysocki 2020-06-10 12:17 ` [RFT][PATCH 0/3] ACPI: ACPICA / OSL: Avoid unmapping ACPI memory inside of the AML interpreter Rafael J. Wysocki 2020-06-10 12:17 ` Rafael J. Wysocki 2020-06-10 12:20 ` [RFT][PATCH 1/3] ACPICA: Defer unmapping of memory used in memory opregions Rafael J. Wysocki 2020-06-10 12:20 ` Rafael J. Wysocki 2020-06-10 12:21 ` [RFT][PATCH 2/3] ACPICA: Remove unused memory mappings on interpreter exit Rafael J. Wysocki 2020-06-10 12:21 ` Rafael J. Wysocki 2020-06-12 0:12 ` Kaneda, Erik 2020-06-12 0:12 ` Kaneda, Erik 2020-06-12 12:05 ` Rafael J. Wysocki 2020-06-12 12:05 ` Rafael J. Wysocki 2020-06-13 19:28 ` Rafael J. Wysocki 2020-06-13 19:28 ` Rafael J. Wysocki 2020-06-15 19:06 ` Dan Williams 2020-06-15 19:06 ` Dan Williams 2020-06-10 12:22 ` [RFT][PATCH 3/3] ACPI: OSL: Define ACPI_OS_MAP_MEMORY_FAST_PATH() Rafael J. Wysocki 2020-06-10 12:22 ` Rafael J. Wysocki 2020-06-13 19:19 ` [RFT][PATCH 0/3] ACPI: ACPICA / OSL: Avoid unmapping ACPI memory inside of the AML interpreter Rafael J. Wysocki 2020-06-13 19:19 ` Rafael J. Wysocki 2020-06-22 13:50 ` [RFT][PATCH v2 0/4] " Rafael J. Wysocki 2020-06-22 13:50 ` Rafael J. Wysocki 2020-06-22 13:52 ` [RFT][PATCH v2 1/4] ACPICA: Defer unmapping of opregion memory if supported by OS Rafael J. Wysocki 2020-06-22 13:52 ` Rafael J. Wysocki 2020-06-22 13:53 ` [RFT][PATCH v2 2/4] ACPI: OSL: Add support for deferred unmapping of ACPI memory Rafael J. Wysocki 2020-06-22 13:53 ` Rafael J. Wysocki 2020-06-22 14:56 ` Andy Shevchenko 2020-06-22 14:56 ` Andy Shevchenko 2020-06-22 15:27 ` Rafael J. Wysocki 2020-06-22 15:27 ` Rafael J. Wysocki 2020-06-22 15:46 ` Andy Shevchenko 2020-06-22 15:46 ` Andy Shevchenko 2020-06-22 14:01 ` [RFT][PATCH v2 3/4] ACPICA: Preserve memory opregion mappings if supported by OS Rafael J. Wysocki 2020-06-22 14:01 ` Rafael J. Wysocki 2020-06-26 22:53 ` Kaneda, Erik 2020-06-26 22:53 ` Kaneda, Erik 2020-06-29 13:02 ` Rafael J. Wysocki 2020-06-29 13:02 ` Rafael J. Wysocki 2020-06-22 14:02 ` [RFT][PATCH v2 4/4] ACPI: OSL: Implement acpi_os_map_memory_fast_path() Rafael J. Wysocki 2020-06-22 14:02 ` Rafael J. Wysocki 2020-06-26 17:28 ` [RFT][PATCH v3 0/4] ACPI: ACPICA / OSL: Avoid unmapping ACPI memory inside of the AML interpreter Rafael J. Wysocki 2020-06-26 17:28 ` Rafael J. Wysocki 2020-06-26 17:31 ` [RFT][PATCH v3 1/4] ACPICA: Take deferred unmapping of memory into account Rafael J. Wysocki 2020-06-26 17:31 ` Rafael J. Wysocki 2020-06-26 17:31 ` [RFT][PATCH v3 2/4] ACPI: OSL: Implement deferred unmapping of ACPI memory Rafael J. Wysocki 2020-06-26 17:31 ` Rafael J. Wysocki 2020-06-27 11:32 ` kernel test robot 2020-06-26 17:32 ` [RFT][PATCH v3 3/4] ACPICA: Preserve memory opregion mappings if supported by OS Rafael J. Wysocki 2020-06-26 17:32 ` Rafael J. Wysocki 2020-06-26 17:33 ` [RFT][PATCH v3 4/4] ACPI: OSL: Implement acpi_os_map_memory_fast_path() Rafael J. Wysocki 2020-06-26 17:33 ` Rafael J. Wysocki 2020-06-26 18:41 ` [RFT][PATCH v3 0/4] ACPI: ACPICA / OSL: Avoid unmapping ACPI memory inside of the AML interpreter Dan Williams 2020-06-26 18:41 ` Dan Williams 2020-06-28 17:09 ` Rafael J. Wysocki 2020-06-28 17:09 ` Rafael J. Wysocki 2020-06-29 20:46 ` Dan Williams 2020-06-29 20:46 ` Dan Williams 2020-06-30 11:04 ` Rafael J. Wysocki 2020-06-30 11:04 ` Rafael J. Wysocki 2020-06-29 16:31 ` [PATCH v4 0/2] " Rafael J. Wysocki 2020-06-29 16:31 ` Rafael J. Wysocki 2020-06-29 16:33 ` [PATCH v4 1/2] ACPI: OSL: Implement deferred unmapping of ACPI memory Rafael J. Wysocki 2020-06-29 16:33 ` Rafael J. Wysocki 2020-06-29 16:33 ` [PATCH v4 2/2] ACPICA: Preserve memory opregion mappings Rafael J. Wysocki 2020-06-29 16:33 ` Rafael J. Wysocki 2020-06-29 20:57 ` Al Stone 2020-06-29 20:57 ` Al Stone 2020-06-30 11:44 ` Rafael J. Wysocki 2020-06-30 11:44 ` Rafael J. Wysocki 2020-06-30 15:31 ` Al Stone 2020-06-30 15:31 ` Al Stone 2020-06-30 15:52 ` Rafael J. Wysocki 2020-06-30 15:52 ` Rafael J. Wysocki 2020-06-30 19:57 ` Al Stone 2020-06-30 19:57 ` Al Stone 2020-07-16 19:22 ` Verma, Vishal L 2020-07-16 19:22 ` Verma, Vishal L 2020-07-19 19:14 ` Rafael J. Wysocki [this message] 2020-07-19 19:14 ` Rafael J. Wysocki
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='CAJZ5v0ga+j4iK7oTbkFPDmN=UpUMHfbmQMyBnP-LvG-xSj50kQ@mail.gmail.com' \ --to=rafael@kernel.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=bp@alien8.de \ --cc=erik.kaneda@intel.com \ --cc=james.morse@arm.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvdimm@lists.01.org \ --cc=myron.stowe@redhat.com \ --cc=rafael.j.wysocki@intel.com \ --cc=rjw@rjwysocki.net \ --cc=robert.moore@intel.com \ --cc=vishal.l.verma@intel.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.