All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leonardo Bras <leonardo@linux.ibm.com>
To: John Hubbard <jhubbard@nvidia.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Arnd Bergmann <arnd@arndb.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@c-s.fr>,
	Steven Price <steven.price@arm.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>,
	Balbir Singh <bsingharora@gmail.com>,
	Reza Arbab <arbab@linux.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Allison Randal <allison@lohutok.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Michal Suchanek <msuchanek@suse.de>
Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	kvm-ppc@vger.kernel.org
Subject: Re: [PATCH v6 02/11] mm/gup: Use functions to track lockless pgtbl walks on gup_pgd_range
Date: Mon, 17 Feb 2020 20:55:49 +0000	[thread overview]
Message-ID: <d0789485cc353a99e19c2d2ca4b5a628a33a312d.camel@linux.ibm.com> (raw)
In-Reply-To: <0c2f5a89-4890-fd84-6a6d-e470ba110399@nvidia.com>

[-- Attachment #1: Type: text/plain, Size: 1235 bytes --]

Hello John, comments inline;

On Fri, 2020-02-07 at 14:54 -0800, John Hubbard wrote:
> On 2/5/20 7:25 PM, Leonardo Bras wrote:
> > On Thu, 2020-02-06 at 00:08 -0300, Leonardo Bras wrote:
> > >                 gup_pgd_range(addr, end, gup_flags, pages, &nr);
> > > -               local_irq_enable();
> > > +               end_lockless_pgtbl_walk(IRQS_ENABLED);
> > >                 ret = nr;
> > >         }
> > >  
> > 
> > Just noticed IRQS_ENABLED is not available on other archs than ppc64.
> > I will fix this for v7.
> > 
> 
> What's the fix going to look like, approximately?

I am not sure what is the best approach yet. 

1. On irq_mask == 0, always enable irq on end_lockless_pgtbl_walk().
   Not sure how bat would that affect other archs.

2. Add another function like end_lockless_pgtbl_walk_irqen() that
always enables IRQ.

3. Add another parameter in end_lockless_pgtbl_walk(), so that caller
can choose ii IRQ must be enabled.

Also, not sure if internal_get_user_pages_fast() can possibly be called
with IRQ disabled, and then return with it enabled. Maybe just
saving/restoring should be fine.

Other suggestions are welcome.

> 
> 
> thanks,

Best regards,

Leonardo Bras

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Leonardo Bras <leonardo@linux.ibm.com>
To: John Hubbard <jhubbard@nvidia.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Arnd Bergmann <arnd@arndb.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@c-s.fr>,
	Steven Price <steven.price@arm.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>,
	Balbir Singh <bsingharora@gmail.com>,
	Reza Arbab <arbab@linux.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Allison Randal <allison@lohutok.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Michal Suchanek <msuchanek@suse.d>
Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	kvm-ppc@vger.kernel.org
Subject: Re: [PATCH v6 02/11] mm/gup: Use functions to track lockless pgtbl walks on gup_pgd_range
Date: Mon, 17 Feb 2020 17:55:49 -0300	[thread overview]
Message-ID: <d0789485cc353a99e19c2d2ca4b5a628a33a312d.camel@linux.ibm.com> (raw)
In-Reply-To: <0c2f5a89-4890-fd84-6a6d-e470ba110399@nvidia.com>

[-- Attachment #1: Type: text/plain, Size: 1235 bytes --]

Hello John, comments inline;

On Fri, 2020-02-07 at 14:54 -0800, John Hubbard wrote:
> On 2/5/20 7:25 PM, Leonardo Bras wrote:
> > On Thu, 2020-02-06 at 00:08 -0300, Leonardo Bras wrote:
> > >                 gup_pgd_range(addr, end, gup_flags, pages, &nr);
> > > -               local_irq_enable();
> > > +               end_lockless_pgtbl_walk(IRQS_ENABLED);
> > >                 ret = nr;
> > >         }
> > >  
> > 
> > Just noticed IRQS_ENABLED is not available on other archs than ppc64.
> > I will fix this for v7.
> > 
> 
> What's the fix going to look like, approximately?

I am not sure what is the best approach yet. 

1. On irq_mask == 0, always enable irq on end_lockless_pgtbl_walk().
   Not sure how bat would that affect other archs.

2. Add another function like end_lockless_pgtbl_walk_irqen() that
always enables IRQ.

3. Add another parameter in end_lockless_pgtbl_walk(), so that caller
can choose ii IRQ must be enabled.

Also, not sure if internal_get_user_pages_fast() can possibly be called
with IRQ disabled, and then return with it enabled. Maybe just
saving/restoring should be fine.

Other suggestions are welcome.

> 
> 
> thanks,

Best regards,

Leonardo Bras

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Leonardo Bras <leonardo@linux.ibm.com>
To: John Hubbard <jhubbard@nvidia.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Arnd Bergmann <arnd@arndb.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@c-s.fr>,
	Steven Price <steven.price@arm.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>,
	Balbir Singh <bsingharora@gmail.com>,
	Reza Arbab <arbab@linux.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Allison Randal <allison@lohutok.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Michal Suchanek <msuchanek@suse.de>
Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	kvm-ppc@vger.kernel.org
Subject: Re: [PATCH v6 02/11] mm/gup: Use functions to track lockless pgtbl walks on gup_pgd_range
Date: Mon, 17 Feb 2020 17:55:49 -0300	[thread overview]
Message-ID: <d0789485cc353a99e19c2d2ca4b5a628a33a312d.camel@linux.ibm.com> (raw)
Message-ID: <20200217205549.I1xqYPZ6SarsV8mBS-eCT2ktur-Iwl3Jx_BHet9I-1E@z> (raw)
In-Reply-To: <0c2f5a89-4890-fd84-6a6d-e470ba110399@nvidia.com>

[-- Attachment #1: Type: text/plain, Size: 1235 bytes --]

Hello John, comments inline;

On Fri, 2020-02-07 at 14:54 -0800, John Hubbard wrote:
> On 2/5/20 7:25 PM, Leonardo Bras wrote:
> > On Thu, 2020-02-06 at 00:08 -0300, Leonardo Bras wrote:
> > >                 gup_pgd_range(addr, end, gup_flags, pages, &nr);
> > > -               local_irq_enable();
> > > +               end_lockless_pgtbl_walk(IRQS_ENABLED);
> > >                 ret = nr;
> > >         }
> > >  
> > 
> > Just noticed IRQS_ENABLED is not available on other archs than ppc64.
> > I will fix this for v7.
> > 
> 
> What's the fix going to look like, approximately?

I am not sure what is the best approach yet. 

1. On irq_mask == 0, always enable irq on end_lockless_pgtbl_walk().
   Not sure how bat would that affect other archs.

2. Add another function like end_lockless_pgtbl_walk_irqen() that
always enables IRQ.

3. Add another parameter in end_lockless_pgtbl_walk(), so that caller
can choose ii IRQ must be enabled.

Also, not sure if internal_get_user_pages_fast() can possibly be called
with IRQ disabled, and then return with it enabled. Maybe just
saving/restoring should be fine.

Other suggestions are welcome.

> 
> 
> thanks,

Best regards,

Leonardo Bras

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2020-02-17 20:55 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06  3:08 [PATCH v6 00/11] Introduces new functions for tracking lockless pagetable walks Leonardo Bras
2020-02-06  3:08 ` Leonardo Bras
2020-02-06  3:08 ` Leonardo Bras
2020-02-06  3:08 ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 01/11] asm-generic/pgtable: Adds generic functions to track lockless pgtable walks Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  5:54   ` Christophe Leroy
2020-02-06  5:54     ` Christophe Leroy
2020-02-06  5:54     ` Christophe Leroy
2020-02-07  2:19     ` Leonardo Bras
2020-02-07  2:19       ` Leonardo Bras
2020-02-07  2:19       ` Leonardo Bras
2020-02-07  5:39   ` kbuild test robot
2020-02-07  5:39     ` kbuild test robot
2020-02-07  5:39     ` kbuild test robot
2020-02-07  5:39     ` kbuild test robot
2020-02-07  5:39     ` kbuild test robot
2020-02-07  5:39     ` kbuild test robot
2020-02-06  3:08 ` [PATCH v6 02/11] mm/gup: Use functions to track lockless pgtbl walks on gup_pgd_range Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:25   ` Leonardo Bras
2020-02-06  3:25     ` Leonardo Bras
2020-02-07 22:54     ` John Hubbard
2020-02-07 22:54       ` John Hubbard
2020-02-17 20:55       ` Leonardo Bras [this message]
2020-02-17 20:55         ` Leonardo Bras
2020-02-17 20:55         ` Leonardo Bras
2020-10-15 14:46     ` Michal Suchánek
2020-10-15 14:46       ` Michal Suchánek
2020-10-15 14:46       ` Michal Suchánek
2020-10-16  3:27       ` Aneesh Kumar K.V
2020-10-16  3:39         ` Aneesh Kumar K.V
2020-10-16  3:27         ` Aneesh Kumar K.V
2020-02-07  1:19   ` kbuild test robot
2020-02-07  1:19     ` kbuild test robot
2020-02-07  1:19     ` kbuild test robot
2020-02-07  1:19     ` kbuild test robot
2020-02-07  1:19     ` kbuild test robot
2020-02-07  1:19     ` kbuild test robot
2020-02-07  8:01   ` kbuild test robot
2020-02-07  8:01     ` kbuild test robot
2020-02-07  8:01     ` kbuild test robot
2020-02-07  8:01     ` kbuild test robot
2020-02-07  8:01     ` kbuild test robot
2020-02-07  8:01     ` kbuild test robot
2020-02-06  3:08 ` [PATCH v6 03/11] powerpc/mm: Adds arch-specificic functions to track lockless pgtable walks Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  5:46   ` Christophe Leroy
2020-02-06  5:46     ` Christophe Leroy
2020-02-06  5:46     ` Christophe Leroy
2020-02-07  4:38     ` Leonardo Bras
2020-02-07  4:38       ` Leonardo Bras
2020-02-07  4:38       ` Leonardo Bras
2020-02-17 20:32       ` Leonardo Bras
2020-02-17 20:32         ` Leonardo Bras
2020-02-17 20:32         ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 04/11] powerpc/mce_power: Use functions to track lockless pgtbl walks Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  5:48   ` Christophe Leroy
2020-02-06  5:48     ` Christophe Leroy
2020-02-06  5:48     ` Christophe Leroy
2020-02-07  4:00     ` Leonardo Bras
2020-02-07  4:00       ` Leonardo Bras
2020-02-07  4:00       ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 05/11] powerpc/perf: " Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 06/11] powerpc/mm/book3s64/hash: " Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  6:06   ` Christophe Leroy
2020-02-06  6:06     ` Christophe Leroy
2020-02-06  6:06     ` Christophe Leroy
2020-02-07  3:49     ` Leonardo Bras
2020-02-07  3:49       ` Leonardo Bras
2020-02-07  3:49       ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 07/11] powerpc/kvm/e500: " Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  6:18   ` Christophe Leroy
2020-02-06  6:18     ` Christophe Leroy
2020-02-06  6:18     ` Christophe Leroy
2020-02-07  3:10     ` Leonardo Bras
2020-02-07  3:10       ` Leonardo Bras
2020-02-07  3:10       ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 08/11] powerpc/kvm/book3s_hv: " Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 09/11] powerpc/kvm/book3s_64: " Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08 ` [PATCH v6 10/11] powerpc/mm: Adds counting method to track lockless pagetable walks Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  3:08   ` Leonardo Bras
2020-02-06  6:23   ` Christophe Leroy
2020-02-06  6:23     ` Christophe Leroy
2020-02-06  6:23     ` Christophe Leroy
2020-02-07  1:56     ` Leonardo Bras
2020-02-07  1:56       ` Leonardo Bras
2020-02-06  3:09 ` [PATCH v6 11/11] powerpc/mm/book3s64/pgtable: Uses counting method to skip serializing Leonardo Bras
2020-02-06  3:09   ` Leonardo Bras
2020-02-06  3:09   ` Leonardo Bras
2020-02-06  3:09   ` Leonardo Bras

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=d0789485cc353a99e19c2d2ca4b5a628a33a312d.camel@linux.ibm.com \
    --to=leonardo@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=allison@lohutok.net \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=arbab@linux.ibm.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bsingharora@gmail.com \
    --cc=christophe.leroy@c-s.fr \
    --cc=gregkh@linuxfoundation.org \
    --cc=jhubbard@nvidia.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mahesh@linux.vnet.ibm.com \
    --cc=mpe@ellerman.id.au \
    --cc=msuchanek@suse.de \
    --cc=npiggin@gmail.com \
    --cc=paulus@samba.org \
    --cc=robin.murphy@arm.com \
    --cc=rppt@linux.ibm.com \
    --cc=steven.price@arm.com \
    --cc=tglx@linutronix.de \
    /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: link
Be 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.