Message ID | 20191003013325.2614-11-leonardo@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduces new count-based method for tracking lockless pagetable walks | expand |
> On Oct 2, 2019, at 9:36 PM, Leonardo Bras <leonardo@linux.ibm.com> wrote: > > Adds config option LOCKLESS_PAGE_TABLE_WALK_TRACKING to make possible > enabling tracking lockless pagetable walks directly from kernel config. Can’t this name and all those new *lockless* function names be shorter? There are many functions name with *_locked, so how about dropping lockless at all, i.e., PAGE_TABLE_WALK_TRACKING blah blah? > > Signed-off-by: Leonardo Bras <leonardo@linux.ibm.com> > --- > mm/Kconfig | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/mm/Kconfig b/mm/Kconfig > index a5dae9a7eb51..00f487a0122f 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -736,4 +736,15 @@ config ARCH_HAS_PTE_SPECIAL > config ARCH_HAS_HUGEPD > bool > > +config LOCKLESS_PAGE_TABLE_WALK_TRACKING > + bool "Track (and optimize) lockless page table walks" > + default n > + > + help > + Maintain a reference count of active lockless page table > + walkers. This adds 4 bytes to struct mm size, and two atomic > + operations to calls such as get_user_pages_fast(). Some > + architectures can optimize lockless page table operations if > + this is enabled. > + > endmenu > -- > 2.20.1
On Wed, Oct 02, 2019 at 10:33:24PM -0300, Leonardo Bras wrote: > Adds config option LOCKLESS_PAGE_TABLE_WALK_TRACKING to make possible > enabling tracking lockless pagetable walks directly from kernel config. > > Signed-off-by: Leonardo Bras <leonardo@linux.ibm.com> > --- > mm/Kconfig | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/mm/Kconfig b/mm/Kconfig > index a5dae9a7eb51..00f487a0122f 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -736,4 +736,15 @@ config ARCH_HAS_PTE_SPECIAL > config ARCH_HAS_HUGEPD > bool > > +config LOCKLESS_PAGE_TABLE_WALK_TRACKING > + bool "Track (and optimize) lockless page table walks" > + default n > + > + help > + Maintain a reference count of active lockless page table > + walkers. This adds 4 bytes to struct mm size, and two atomic > + operations to calls such as get_user_pages_fast(). Some > + architectures can optimize lockless page table operations if > + this is enabled. This shouldn't be a user visible option at all. Either the arch needs it and selects it or not.
On Wed, 2019-10-02 at 22:08 -0400, Qian Cai wrote: > Can’t this name and all those new *lockless* function names be shorter? > There are many functions name with *_locked, so how about dropping > lockless at all, i.e., PAGE_TABLE_WALK_TRACKING blah blah? Thanks for the feedback! Well, in this case it only tracks the 'lockless pagetable walks'. In this approach, the 'locked pagetable walks' don't need to be tracked.
On Thu, 2019-10-03 at 16:04 -0300, Leonardo Bras wrote: > On Wed, 2019-10-02 at 22:08 -0400, Qian Cai wrote: > > Can’t this name and all those new *lockless* function names be shorter? > > There are many functions name with *_locked, so how about dropping > > lockless at all, i.e., PAGE_TABLE_WALK_TRACKING blah blah? > > Thanks for the feedback! > > Well, in this case it only tracks the 'lockless pagetable walks'. In > this approach, the 'locked pagetable walks' don't need to be tracked. So, using PAGE_TABLE_WALK_TRACKING would not be very accurate (as said before, there are the locked ones).
On Thu, 2019-10-03 at 09:44 +0200, Peter Zijlstra wrote: > This shouldn't be a user visible option at all. Either the arch needs > it and selects it or not. You are right. I will do that on v6. Thanks for the feedback!
diff --git a/mm/Kconfig b/mm/Kconfig index a5dae9a7eb51..00f487a0122f 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -736,4 +736,15 @@ config ARCH_HAS_PTE_SPECIAL config ARCH_HAS_HUGEPD bool +config LOCKLESS_PAGE_TABLE_WALK_TRACKING + bool "Track (and optimize) lockless page table walks" + default n + + help + Maintain a reference count of active lockless page table + walkers. This adds 4 bytes to struct mm size, and two atomic + operations to calls such as get_user_pages_fast(). Some + architectures can optimize lockless page table operations if + this is enabled. + endmenu
Adds config option LOCKLESS_PAGE_TABLE_WALK_TRACKING to make possible enabling tracking lockless pagetable walks directly from kernel config. Signed-off-by: Leonardo Bras <leonardo@linux.ibm.com> --- mm/Kconfig | 11 +++++++++++ 1 file changed, 11 insertions(+)