From: "Kaneda, Erik" <erik.kaneda@intel.com> To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, "Williams, Dan J" <dan.j.williams@intel.com> Cc: "Wysocki, Rafael J" <rafael.j.wysocki@intel.com>, Len Brown <lenb@kernel.org>, Borislav Petkov <bp@alien8.de>, James Morse <james.morse@arm.com>, Myron Stowe <myron.stowe@redhat.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>, "Moore, Robert" <robert.moore@intel.com> Subject: RE: [RFT][PATCH 2/3] ACPICA: Remove unused memory mappings on interpreter exit Date: Fri, 12 Jun 2020 00:12:05 +0000 [thread overview] Message-ID: <BYAPR11MB30963CB784B940A5CD58C4FAF0810@BYAPR11MB3096.namprd11.prod.outlook.com> (raw) In-Reply-To: <3974162.pZLctmZ5Iv@kreacher> > -----Original Message----- > From: Rafael J. Wysocki <rjw@rjwysocki.net> > Sent: Wednesday, June 10, 2020 5:22 AM > To: Williams, Dan J <dan.j.williams@intel.com> > Cc: Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J > <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; Borislav > Petkov <bp@alien8.de>; Weiny, Ira <ira.weiny@intel.com>; James Morse > <james.morse@arm.com>; Myron Stowe <myron.stowe@redhat.com>; > Andy Shevchenko <andriy.shevchenko@linux.intel.com>; linux- > kernel@vger.kernel.org; linux-acpi@vger.kernel.org; linux- > nvdimm@lists.01.org; Moore, Robert <robert.moore@intel.com> > Subject: [RFT][PATCH 2/3] ACPICA: Remove unused memory mappings on > interpreter exit > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > For transient memory opregions that are created dynamically under > the namespace and interpreter mutexes and go away quickly, there > still is the problem that removing their memory mappings may take > significant time and so doing that while holding the mutexes should > be avoided. > > For example, unmapping a chunk of memory associated with a memory > opregion in Linux involves running synchronize_rcu_expedited() > which really should not be done with the namespace mutex held. > > To address that problem, notice that the unused memory mappings left > behind by the "dynamic" opregions that went away need not be unmapped > right away when the opregion is deactivated. Instead, they may be > unmapped when exiting the interpreter, after the namespace and > interpreter mutexes have been dropped (there's one more place dealing > with opregions in the debug code that can be treated analogously). > > Accordingly, change acpi_ev_system_memory_region_setup() to put > the unused mappings into a global list instead of unmapping them > right away and add acpi_ev_system_release_memory_mappings() to > be called when leaving the interpreter in order to unmap the > unused memory mappings in the global list (which is protected > by the namespace mutex). > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/acpi/acpica/acevents.h | 2 ++ > drivers/acpi/acpica/dbtest.c | 3 ++ > drivers/acpi/acpica/evrgnini.c | 51 > ++++++++++++++++++++++++++++++++-- > drivers/acpi/acpica/exutils.c | 3 ++ > drivers/acpi/acpica/utxface.c | 23 +++++++++++++++ > include/acpi/acpixf.h | 1 + > 6 files changed, 80 insertions(+), 3 deletions(-) > > diff --git a/drivers/acpi/acpica/acevents.h b/drivers/acpi/acpica/acevents.h > index 79f292687bd6..463eb9124765 100644 > --- a/drivers/acpi/acpica/acevents.h > +++ b/drivers/acpi/acpica/acevents.h > @@ -197,6 +197,8 @@ acpi_ev_execute_reg_method(union > acpi_operand_object *region_obj, u32 function); > /* > * evregini - Region initialization and setup > */ > +void acpi_ev_system_release_memory_mappings(void); > + > acpi_status > acpi_ev_system_memory_region_setup(acpi_handle handle, > u32 function, > diff --git a/drivers/acpi/acpica/dbtest.c b/drivers/acpi/acpica/dbtest.c > index 6db44a5ac786..7dac6dae5c48 100644 > --- a/drivers/acpi/acpica/dbtest.c > +++ b/drivers/acpi/acpica/dbtest.c > @@ -8,6 +8,7 @@ > #include <acpi/acpi.h> > #include "accommon.h" > #include "acdebug.h" > +#include "acevents.h" > #include "acnamesp.h" > #include "acpredef.h" > #include "acinterp.h" > @@ -768,6 +769,8 @@ acpi_db_test_field_unit_type(union > acpi_operand_object *obj_desc) > acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); > acpi_ut_release_mutex(ACPI_MTX_INTERPRETER); > > + acpi_ev_system_release_memory_mappings(); > + > bit_length = obj_desc->common_field.bit_length; > byte_length = > ACPI_ROUND_BITS_UP_TO_BYTES(bit_length); > > diff --git a/drivers/acpi/acpica/evrgnini.c b/drivers/acpi/acpica/evrgnini.c > index 48a5e6eaf9b9..946c4eef054d 100644 > --- a/drivers/acpi/acpica/evrgnini.c > +++ b/drivers/acpi/acpica/evrgnini.c > @@ -16,6 +16,52 @@ > #define _COMPONENT ACPI_EVENTS > ACPI_MODULE_NAME("evrgnini") > > +#ifdef ACPI_OS_MAP_MEMORY_FAST_PATH > +static struct acpi_mem_mapping *unused_memory_mappings; > + > +/********************************************************* > ********************** > + * > + * FUNCTION: acpi_ev_system_release_memory_mappings > + * > + * PARAMETERS: None > + * > + * RETURN: None > + * > + * DESCRIPTION: Release all of the unused memory mappings in the queue > + * under the interpreter mutex. > + * > + > ********************************************************** > ********************/ > +void acpi_ev_system_release_memory_mappings(void) > +{ > + struct acpi_mem_mapping *mapping; > + > + > ACPI_FUNCTION_TRACE(acpi_ev_system_release_memory_mappin > gs); > + > + acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); > + > + while (unused_memory_mappings) { > + mapping = unused_memory_mappings; > + unused_memory_mappings = mapping->next; > + > + acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); > + > + acpi_os_unmap_memory(mapping->logical_address, > mapping->length); acpi_os_unmap_memory calls synchronize_rcu_expedited(). I'm no RCU expert but the definition of this function states: * Although this is a great improvement over previous expedited * implementations, it is still unfriendly to real-time workloads, so is * thus not recommended for any sort of common-case code. In fact, if * you are using synchronize_rcu_expedited() in a loop, please restructure * your code to batch your updates, and then use a single synchronize_rcu() * instead. > + ACPI_FREE(mapping); > + > + acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); > + } > + > + acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); > + > + return_VOID; > +} > +#else /* !ACPI_OS_MAP_MEMORY_FAST_PATH */ > +void acpi_ev_system_release_memory_mappings(void) > +{ > + return_VOID; > +} > +#endif /* !ACPI_OS_MAP_MEMORY_FAST_PATH */ > + > > /********************************************************** > ********************* > * > * FUNCTION: acpi_ev_system_memory_region_setup > @@ -60,9 +106,8 @@ acpi_ev_system_memory_region_setup(acpi_handle > handle, > while (local_region_context->first_mapping) > { > mapping = local_region_context- > >first_mapping; > local_region_context->first_mapping > = mapping->next; > - acpi_os_unmap_memory(mapping- > >logical_address, > - mapping->length); > - ACPI_FREE(mapping); > + mapping->next = > unused_memory_mappings; > + unused_memory_mappings = > mapping; > } > #endif > } > diff --git a/drivers/acpi/acpica/exutils.c b/drivers/acpi/acpica/exutils.c > index 8fefa6feac2f..516d67664392 100644 > --- a/drivers/acpi/acpica/exutils.c > +++ b/drivers/acpi/acpica/exutils.c > @@ -25,6 +25,7 @@ > > #include <acpi/acpi.h> > #include "accommon.h" > +#include "acevents.h" > #include "acinterp.h" > #include "amlcode.h" > > @@ -106,6 +107,8 @@ void acpi_ex_exit_interpreter(void) > "Could not release AML Interpreter mutex")); > } > > + acpi_ev_system_release_memory_mappings(); > + > return_VOID; > } > > diff --git a/drivers/acpi/acpica/utxface.c b/drivers/acpi/acpica/utxface.c > index ca7c9f0144ef..d972696be846 100644 > --- a/drivers/acpi/acpica/utxface.c > +++ b/drivers/acpi/acpica/utxface.c > @@ -11,6 +11,7 @@ > > #include <acpi/acpi.h> > #include "accommon.h" > +#include "acevents.h" > #include "acdebug.h" > > #define _COMPONENT ACPI_UTILITIES > @@ -244,6 +245,28 @@ acpi_status acpi_purge_cached_objects(void) > > ACPI_EXPORT_SYMBOL(acpi_purge_cached_objects) > > +/********************************************************* > ******************** > + * > + * FUNCTION: acpi_release_unused_memory_mappings > + * > + * PARAMETERS: None > + * > + * RETURN: None > + * > + * DESCRIPTION: Remove memory mappings that are not used any more. > + * > + > ********************************************************** > ******************/ > +void acpi_release_unused_memory_mappings(void) > +{ > + ACPI_FUNCTION_TRACE(acpi_release_unused_memory_mappings); > + > + acpi_ev_system_release_memory_mappings(); > + > + return_VOID; > +} > + > +ACPI_EXPORT_SYMBOL(acpi_release_unused_memory_mappings) > + > > /********************************************************** > ******************* > * > * FUNCTION: acpi_install_interface > diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h > index 1dc8d262035b..8d2cc02257ed 100644 > --- a/include/acpi/acpixf.h > +++ b/include/acpi/acpixf.h > @@ -449,6 +449,7 @@ ACPI_EXTERNAL_RETURN_STATUS(acpi_status > acpi_size length, > struct acpi_pld_info > **return_buffer)) > +ACPI_EXTERNAL_RETURN_VOID(void > acpi_release_unused_memory_mappings(void)) > > /* > * ACPI table load/unload interfaces > -- > 2.26.2 > > > _______________________________________________ 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: "Kaneda, Erik" <erik.kaneda@intel.com> To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, "Williams, Dan J" <dan.j.williams@intel.com> Cc: "Wysocki, Rafael J" <rafael.j.wysocki@intel.com>, Len Brown <lenb@kernel.org>, Borislav Petkov <bp@alien8.de>, "Weiny, Ira" <ira.weiny@intel.com>, James Morse <james.morse@arm.com>, Myron Stowe <myron.stowe@redhat.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>, "Moore, Robert" <robert.moore@intel.com> Subject: RE: [RFT][PATCH 2/3] ACPICA: Remove unused memory mappings on interpreter exit Date: Fri, 12 Jun 2020 00:12:05 +0000 [thread overview] Message-ID: <BYAPR11MB30963CB784B940A5CD58C4FAF0810@BYAPR11MB3096.namprd11.prod.outlook.com> (raw) In-Reply-To: <3974162.pZLctmZ5Iv@kreacher> > -----Original Message----- > From: Rafael J. Wysocki <rjw@rjwysocki.net> > Sent: Wednesday, June 10, 2020 5:22 AM > To: Williams, Dan J <dan.j.williams@intel.com> > Cc: Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J > <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; Borislav > Petkov <bp@alien8.de>; Weiny, Ira <ira.weiny@intel.com>; James Morse > <james.morse@arm.com>; Myron Stowe <myron.stowe@redhat.com>; > Andy Shevchenko <andriy.shevchenko@linux.intel.com>; linux- > kernel@vger.kernel.org; linux-acpi@vger.kernel.org; linux- > nvdimm@lists.01.org; Moore, Robert <robert.moore@intel.com> > Subject: [RFT][PATCH 2/3] ACPICA: Remove unused memory mappings on > interpreter exit > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > For transient memory opregions that are created dynamically under > the namespace and interpreter mutexes and go away quickly, there > still is the problem that removing their memory mappings may take > significant time and so doing that while holding the mutexes should > be avoided. > > For example, unmapping a chunk of memory associated with a memory > opregion in Linux involves running synchronize_rcu_expedited() > which really should not be done with the namespace mutex held. > > To address that problem, notice that the unused memory mappings left > behind by the "dynamic" opregions that went away need not be unmapped > right away when the opregion is deactivated. Instead, they may be > unmapped when exiting the interpreter, after the namespace and > interpreter mutexes have been dropped (there's one more place dealing > with opregions in the debug code that can be treated analogously). > > Accordingly, change acpi_ev_system_memory_region_setup() to put > the unused mappings into a global list instead of unmapping them > right away and add acpi_ev_system_release_memory_mappings() to > be called when leaving the interpreter in order to unmap the > unused memory mappings in the global list (which is protected > by the namespace mutex). > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/acpi/acpica/acevents.h | 2 ++ > drivers/acpi/acpica/dbtest.c | 3 ++ > drivers/acpi/acpica/evrgnini.c | 51 > ++++++++++++++++++++++++++++++++-- > drivers/acpi/acpica/exutils.c | 3 ++ > drivers/acpi/acpica/utxface.c | 23 +++++++++++++++ > include/acpi/acpixf.h | 1 + > 6 files changed, 80 insertions(+), 3 deletions(-) > > diff --git a/drivers/acpi/acpica/acevents.h b/drivers/acpi/acpica/acevents.h > index 79f292687bd6..463eb9124765 100644 > --- a/drivers/acpi/acpica/acevents.h > +++ b/drivers/acpi/acpica/acevents.h > @@ -197,6 +197,8 @@ acpi_ev_execute_reg_method(union > acpi_operand_object *region_obj, u32 function); > /* > * evregini - Region initialization and setup > */ > +void acpi_ev_system_release_memory_mappings(void); > + > acpi_status > acpi_ev_system_memory_region_setup(acpi_handle handle, > u32 function, > diff --git a/drivers/acpi/acpica/dbtest.c b/drivers/acpi/acpica/dbtest.c > index 6db44a5ac786..7dac6dae5c48 100644 > --- a/drivers/acpi/acpica/dbtest.c > +++ b/drivers/acpi/acpica/dbtest.c > @@ -8,6 +8,7 @@ > #include <acpi/acpi.h> > #include "accommon.h" > #include "acdebug.h" > +#include "acevents.h" > #include "acnamesp.h" > #include "acpredef.h" > #include "acinterp.h" > @@ -768,6 +769,8 @@ acpi_db_test_field_unit_type(union > acpi_operand_object *obj_desc) > acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); > acpi_ut_release_mutex(ACPI_MTX_INTERPRETER); > > + acpi_ev_system_release_memory_mappings(); > + > bit_length = obj_desc->common_field.bit_length; > byte_length = > ACPI_ROUND_BITS_UP_TO_BYTES(bit_length); > > diff --git a/drivers/acpi/acpica/evrgnini.c b/drivers/acpi/acpica/evrgnini.c > index 48a5e6eaf9b9..946c4eef054d 100644 > --- a/drivers/acpi/acpica/evrgnini.c > +++ b/drivers/acpi/acpica/evrgnini.c > @@ -16,6 +16,52 @@ > #define _COMPONENT ACPI_EVENTS > ACPI_MODULE_NAME("evrgnini") > > +#ifdef ACPI_OS_MAP_MEMORY_FAST_PATH > +static struct acpi_mem_mapping *unused_memory_mappings; > + > +/********************************************************* > ********************** > + * > + * FUNCTION: acpi_ev_system_release_memory_mappings > + * > + * PARAMETERS: None > + * > + * RETURN: None > + * > + * DESCRIPTION: Release all of the unused memory mappings in the queue > + * under the interpreter mutex. > + * > + > ********************************************************** > ********************/ > +void acpi_ev_system_release_memory_mappings(void) > +{ > + struct acpi_mem_mapping *mapping; > + > + > ACPI_FUNCTION_TRACE(acpi_ev_system_release_memory_mappin > gs); > + > + acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); > + > + while (unused_memory_mappings) { > + mapping = unused_memory_mappings; > + unused_memory_mappings = mapping->next; > + > + acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); > + > + acpi_os_unmap_memory(mapping->logical_address, > mapping->length); acpi_os_unmap_memory calls synchronize_rcu_expedited(). I'm no RCU expert but the definition of this function states: * Although this is a great improvement over previous expedited * implementations, it is still unfriendly to real-time workloads, so is * thus not recommended for any sort of common-case code. In fact, if * you are using synchronize_rcu_expedited() in a loop, please restructure * your code to batch your updates, and then use a single synchronize_rcu() * instead. > + ACPI_FREE(mapping); > + > + acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); > + } > + > + acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); > + > + return_VOID; > +} > +#else /* !ACPI_OS_MAP_MEMORY_FAST_PATH */ > +void acpi_ev_system_release_memory_mappings(void) > +{ > + return_VOID; > +} > +#endif /* !ACPI_OS_MAP_MEMORY_FAST_PATH */ > + > > /********************************************************** > ********************* > * > * FUNCTION: acpi_ev_system_memory_region_setup > @@ -60,9 +106,8 @@ acpi_ev_system_memory_region_setup(acpi_handle > handle, > while (local_region_context->first_mapping) > { > mapping = local_region_context- > >first_mapping; > local_region_context->first_mapping > = mapping->next; > - acpi_os_unmap_memory(mapping- > >logical_address, > - mapping->length); > - ACPI_FREE(mapping); > + mapping->next = > unused_memory_mappings; > + unused_memory_mappings = > mapping; > } > #endif > } > diff --git a/drivers/acpi/acpica/exutils.c b/drivers/acpi/acpica/exutils.c > index 8fefa6feac2f..516d67664392 100644 > --- a/drivers/acpi/acpica/exutils.c > +++ b/drivers/acpi/acpica/exutils.c > @@ -25,6 +25,7 @@ > > #include <acpi/acpi.h> > #include "accommon.h" > +#include "acevents.h" > #include "acinterp.h" > #include "amlcode.h" > > @@ -106,6 +107,8 @@ void acpi_ex_exit_interpreter(void) > "Could not release AML Interpreter mutex")); > } > > + acpi_ev_system_release_memory_mappings(); > + > return_VOID; > } > > diff --git a/drivers/acpi/acpica/utxface.c b/drivers/acpi/acpica/utxface.c > index ca7c9f0144ef..d972696be846 100644 > --- a/drivers/acpi/acpica/utxface.c > +++ b/drivers/acpi/acpica/utxface.c > @@ -11,6 +11,7 @@ > > #include <acpi/acpi.h> > #include "accommon.h" > +#include "acevents.h" > #include "acdebug.h" > > #define _COMPONENT ACPI_UTILITIES > @@ -244,6 +245,28 @@ acpi_status acpi_purge_cached_objects(void) > > ACPI_EXPORT_SYMBOL(acpi_purge_cached_objects) > > +/********************************************************* > ******************** > + * > + * FUNCTION: acpi_release_unused_memory_mappings > + * > + * PARAMETERS: None > + * > + * RETURN: None > + * > + * DESCRIPTION: Remove memory mappings that are not used any more. > + * > + > ********************************************************** > ******************/ > +void acpi_release_unused_memory_mappings(void) > +{ > + ACPI_FUNCTION_TRACE(acpi_release_unused_memory_mappings); > + > + acpi_ev_system_release_memory_mappings(); > + > + return_VOID; > +} > + > +ACPI_EXPORT_SYMBOL(acpi_release_unused_memory_mappings) > + > > /********************************************************** > ******************* > * > * FUNCTION: acpi_install_interface > diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h > index 1dc8d262035b..8d2cc02257ed 100644 > --- a/include/acpi/acpixf.h > +++ b/include/acpi/acpixf.h > @@ -449,6 +449,7 @@ ACPI_EXTERNAL_RETURN_STATUS(acpi_status > acpi_size length, > struct acpi_pld_info > **return_buffer)) > +ACPI_EXTERNAL_RETURN_VOID(void > acpi_release_unused_memory_mappings(void)) > > /* > * ACPI table load/unload interfaces > -- > 2.26.2 > > >
next prev parent reply other threads:[~2020-06-12 0:12 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 [this message] 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 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=BYAPR11MB30963CB784B940A5CD58C4FAF0810@BYAPR11MB3096.namprd11.prod.outlook.com \ --to=erik.kaneda@intel.com \ --cc=andriy.shevchenko@linux.intel.com \ --cc=bp@alien8.de \ --cc=dan.j.williams@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 \ /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.