All of lore.kernel.org
 help / color / mirror / Atom feed
From: Haren Myneni <haren@linux.ibm.com>
To: Nicholas Piggin <npiggin@gmail.com>,
	herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au
Cc: haren@us.ibm.com, hbabu@us.ibm.com
Subject: Re: [V3 PATCH 03/16] powerpc/vas: Create take/drop task reference functions
Date: Mon, 10 May 2021 13:32:51 -0700	[thread overview]
Message-ID: <87bf041c7b33464c7d312f12f1329db7687750aa.camel@linux.ibm.com> (raw)
In-Reply-To: <1620624047.yy8sqcrk40.astroid@bobo.none>

On Mon, 2021-05-10 at 15:28 +1000, Nicholas Piggin wrote:
> Excerpts from Haren Myneni's message of April 18, 2021 7:03 am:
> > Take task reference when each window opens and drops during close.
> > This functionality is needed for powerNV and pseries. So this patch
> > defines the existing code as functions in common book3s platform
> > vas-api.c
> > 
> > Signed-off-by: Haren Myneni <haren@linux.ibm.com>
> > ---
> >  arch/powerpc/include/asm/vas.h              | 20 ++++++++
> >  arch/powerpc/platforms/book3s/vas-api.c     | 51
> > ++++++++++++++++++
> >  arch/powerpc/platforms/powernv/vas-fault.c  | 10 ++--
> >  arch/powerpc/platforms/powernv/vas-window.c | 57 ++---------------
> > ----
> >  arch/powerpc/platforms/powernv/vas.h        |  6 +--
> >  5 files changed, 83 insertions(+), 61 deletions(-)
> > 
> > diff --git a/arch/powerpc/include/asm/vas.h
> > b/arch/powerpc/include/asm/vas.h
> > index 6bbade60d8f4..2daaa1a2a9a9 100644
> > --- a/arch/powerpc/include/asm/vas.h
> > +++ b/arch/powerpc/include/asm/vas.h
> > @@ -5,6 +5,9 @@
> >  
> >  #ifndef _ASM_POWERPC_VAS_H
> >  #define _ASM_POWERPC_VAS_H
> > +#include <linux/sched/mm.h>
> > +#include <linux/mmu_context.h>
> > +#include <asm/icswx.h>
> >  #include <uapi/asm/vas-api.h>
> >  
> >  
> > @@ -60,6 +63,22 @@ struct vas_user_win_ops {
> >  	int (*close_win)(void *);
> >  };
> >  
> > +struct vas_win_task {
> > +	struct pid *pid;	/* Thread group ID of owner */
> > +	struct pid *tgid;	/* Linux process mm_struct */
> > +	struct mm_struct *mm;	/* Linux process mm_struct */
> > +};
> 
> Looks okay, happy with struct vas_win_task? (and vas_user_win_ops)?
> 
> I'd be happier to have everything related to vas windows prefixed
> with 
> vas_window_ consistently, and have _user be present always for
> userspace
> windows, but you have to read and type it.

I will change to vas_window_task and vas_user_window_ops. struct
vas_window is common for both kernel and user space window, but struct
vas_window_task is needed only for user space.

> 
> > +
> > +static inline void vas_drop_reference_task(struct vas_win_task
> > *task)
> 
> This is not dropping a reference task, but a task reference. And
> it's 
> not really a task reference as far as Linux understands, but a
> reference on pid (not task) and mm related to an open vas window. And
> specifically a user window (with corresponding vas_user_win_ops).

Yes get and put references to pid and mm. Hence mentioned
reference_task to reflect for both pid and mm. Would you prefer
vas_put_reference_pid_mm()?

> 
> Could it be called a 'struct vas_window_user_ref' instead?

To support LPM and DLPAR, plannig to add VMA (mapping address) in
struct vas_window_task. But I can change it to 'struct
vas_window_user_ref' instread of vas_window_task.

Thanks
Haren 

> 
> Thanks,
> Nick
> 
> > +{
> > +	/* Drop references to pid and mm */
> > +	put_pid(task->pid);
> > +	if (task->mm) {
> > +		mm_context_remove_vas_window(task->mm);
> > +		mmdrop(task->mm);
> > +	}


WARNING: multiple messages have this Message-ID (diff)
From: Haren Myneni <haren@linux.ibm.com>
To: Nicholas Piggin <npiggin@gmail.com>,
	herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au
Subject: Re: [V3 PATCH 03/16] powerpc/vas: Create take/drop task reference functions
Date: Mon, 10 May 2021 13:32:51 -0700	[thread overview]
Message-ID: <87bf041c7b33464c7d312f12f1329db7687750aa.camel@linux.ibm.com> (raw)
In-Reply-To: <1620624047.yy8sqcrk40.astroid@bobo.none>

On Mon, 2021-05-10 at 15:28 +1000, Nicholas Piggin wrote:
> Excerpts from Haren Myneni's message of April 18, 2021 7:03 am:
> > Take task reference when each window opens and drops during close.
> > This functionality is needed for powerNV and pseries. So this patch
> > defines the existing code as functions in common book3s platform
> > vas-api.c
> > 
> > Signed-off-by: Haren Myneni <haren@linux.ibm.com>
> > ---
> >  arch/powerpc/include/asm/vas.h              | 20 ++++++++
> >  arch/powerpc/platforms/book3s/vas-api.c     | 51
> > ++++++++++++++++++
> >  arch/powerpc/platforms/powernv/vas-fault.c  | 10 ++--
> >  arch/powerpc/platforms/powernv/vas-window.c | 57 ++---------------
> > ----
> >  arch/powerpc/platforms/powernv/vas.h        |  6 +--
> >  5 files changed, 83 insertions(+), 61 deletions(-)
> > 
> > diff --git a/arch/powerpc/include/asm/vas.h
> > b/arch/powerpc/include/asm/vas.h
> > index 6bbade60d8f4..2daaa1a2a9a9 100644
> > --- a/arch/powerpc/include/asm/vas.h
> > +++ b/arch/powerpc/include/asm/vas.h
> > @@ -5,6 +5,9 @@
> >  
> >  #ifndef _ASM_POWERPC_VAS_H
> >  #define _ASM_POWERPC_VAS_H
> > +#include <linux/sched/mm.h>
> > +#include <linux/mmu_context.h>
> > +#include <asm/icswx.h>
> >  #include <uapi/asm/vas-api.h>
> >  
> >  
> > @@ -60,6 +63,22 @@ struct vas_user_win_ops {
> >  	int (*close_win)(void *);
> >  };
> >  
> > +struct vas_win_task {
> > +	struct pid *pid;	/* Thread group ID of owner */
> > +	struct pid *tgid;	/* Linux process mm_struct */
> > +	struct mm_struct *mm;	/* Linux process mm_struct */
> > +};
> 
> Looks okay, happy with struct vas_win_task? (and vas_user_win_ops)?
> 
> I'd be happier to have everything related to vas windows prefixed
> with 
> vas_window_ consistently, and have _user be present always for
> userspace
> windows, but you have to read and type it.

I will change to vas_window_task and vas_user_window_ops. struct
vas_window is common for both kernel and user space window, but struct
vas_window_task is needed only for user space.

> 
> > +
> > +static inline void vas_drop_reference_task(struct vas_win_task
> > *task)
> 
> This is not dropping a reference task, but a task reference. And
> it's 
> not really a task reference as far as Linux understands, but a
> reference on pid (not task) and mm related to an open vas window. And
> specifically a user window (with corresponding vas_user_win_ops).

Yes get and put references to pid and mm. Hence mentioned
reference_task to reflect for both pid and mm. Would you prefer
vas_put_reference_pid_mm()?

> 
> Could it be called a 'struct vas_window_user_ref' instead?

To support LPM and DLPAR, plannig to add VMA (mapping address) in
struct vas_window_task. But I can change it to 'struct
vas_window_user_ref' instread of vas_window_task.

Thanks
Haren 

> 
> Thanks,
> Nick
> 
> > +{
> > +	/* Drop references to pid and mm */
> > +	put_pid(task->pid);
> > +	if (task->mm) {
> > +		mm_context_remove_vas_window(task->mm);
> > +		mmdrop(task->mm);
> > +	}


  reply	other threads:[~2021-05-10 20:33 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-17 20:52 [V3 PATCH 00/16] Enable VAS and NX-GZIP support on powerVM Haren Myneni
2021-04-17 20:52 ` Haren Myneni
2021-04-17 21:00 ` [V3 PATCH 01/16] powerpc/powernv/vas: Rename register/unregister functions Haren Myneni
2021-04-17 21:00   ` Haren Myneni
2021-05-10  5:10   ` Nicholas Piggin
2021-05-10  5:10     ` Nicholas Piggin
2021-05-10 16:59     ` Haren Myneni
2021-05-10 16:59       ` Haren Myneni
2021-04-17 21:02 ` [PATCH V3 02/16] powerpc/vas: Move VAS API to common book3s platform Haren Myneni
2021-04-17 21:02   ` Haren Myneni
2021-05-10  5:19   ` Nicholas Piggin
2021-05-10  5:19     ` Nicholas Piggin
2021-05-10 17:12     ` Haren Myneni
2021-05-10 17:12       ` Haren Myneni
2021-05-11  1:50     ` Michael Ellerman
2021-05-11  1:50       ` Michael Ellerman
2021-04-17 21:03 ` [V3 PATCH 03/16] powerpc/vas: Create take/drop task reference functions Haren Myneni
2021-04-17 21:03   ` Haren Myneni
2021-05-10  5:28   ` Nicholas Piggin
2021-05-10  5:28     ` Nicholas Piggin
2021-05-10 20:32     ` Haren Myneni [this message]
2021-05-10 20:32       ` Haren Myneni
2021-04-17 21:03 ` [V3 PATCH 04/16] powerpc/vas: Move update_csb/dump_crb to common book3s platform Haren Myneni
2021-04-17 21:03   ` Haren Myneni
2021-05-10  5:37   ` Nicholas Piggin
2021-05-10  5:37     ` Nicholas Piggin
2021-04-17 21:04 ` [V3 PATCH 05/16] powerpc/vas: Define and use common vas_window struct Haren Myneni
2021-04-17 21:04   ` Haren Myneni
2021-05-10  5:37   ` Nicholas Piggin
2021-05-10  5:37     ` Nicholas Piggin
2021-05-10 17:02     ` Haren Myneni
2021-05-10 17:02       ` Haren Myneni
2021-04-17 21:05 ` [V3 PATCH 06/16] powerpc/pseries/vas: Define VAS/NXGZIP HCALLs and structs Haren Myneni
2021-04-17 21:05   ` Haren Myneni
2021-05-10  5:49   ` Nicholas Piggin
2021-05-10  5:49     ` Nicholas Piggin
2021-05-11  2:18     ` Haren Myneni
2021-05-11  2:18       ` Haren Myneni
2021-04-17 21:06 ` [V3 PATCH 07/16] powerpc/vas: Define QoS credit flag to allocate window Haren Myneni
2021-04-17 21:06   ` Haren Myneni
2021-05-10  5:54   ` Nicholas Piggin
2021-05-10  5:54     ` Nicholas Piggin
2021-05-11  2:12     ` Haren Myneni
2021-05-11  2:12       ` Haren Myneni
2021-04-17 21:07 ` [V3 PATCH 08/16] powerpc/pseries/VAS: Implement allocate/modify/deallocate HCALLS Haren Myneni
2021-04-17 21:07   ` Haren Myneni
2021-05-10  6:01   ` Nicholas Piggin
2021-05-10  6:01     ` Nicholas Piggin
2021-04-17 21:08 ` [V3 PATCH 09/16] powerpc/pseries/vas: Implement to get all capabilities Haren Myneni
2021-04-17 21:08   ` Haren Myneni
2021-05-10  6:13   ` Nicholas Piggin
2021-05-10  6:13     ` Nicholas Piggin
2021-05-11  2:08     ` Haren Myneni
2021-05-11  2:08       ` Haren Myneni
2021-04-17 21:08 ` [V3 PATCH 10/16] powerpc/pseries/vas: Integrate API with open/close windows Haren Myneni
2021-04-17 21:08   ` Haren Myneni
2021-05-10  6:18   ` Nicholas Piggin
2021-05-10  6:18     ` Nicholas Piggin
2021-05-10  6:28   ` Nicholas Piggin
2021-05-10  6:28     ` Nicholas Piggin
2021-04-17 21:09 ` [V3 PATCH 11/16] powerpc/pseries/vas: Setup IRQ and fault handling Haren Myneni
2021-04-17 21:09   ` Haren Myneni
2021-04-17 21:10 ` [V3 PATCH 12/16] powerpc/pseries/vas: sysfs interface to export capabilities Haren Myneni
2021-04-17 21:10   ` Haren Myneni
2021-05-10  6:34   ` Nicholas Piggin
2021-05-10  6:34     ` Nicholas Piggin
2021-05-10 20:52     ` Haren Myneni
2021-05-10 20:52       ` Haren Myneni
2021-04-17 21:11 ` [V3 PATCH 13/16] crypto/nx: Rename nx-842-pseries file name to nx-common-pseries Haren Myneni
2021-04-17 21:11   ` Haren Myneni
2021-04-22  6:55   ` Herbert Xu
2021-04-22  6:55     ` Herbert Xu
2021-04-17 21:12 ` [V3 PATCH 14/16] crypto/nx: Register and unregister VAS interface Haren Myneni
2021-04-17 21:12   ` Haren Myneni
2021-04-22  6:56   ` Herbert Xu
2021-04-22  6:56     ` Herbert Xu
2021-04-17 21:12 ` [V3 PATCH 15/16] crypto/nx: Get NX capabilities for GZIP coprocessor type Haren Myneni
2021-04-17 21:12   ` Haren Myneni
2021-04-22  6:56   ` Herbert Xu
2021-04-22  6:56     ` Herbert Xu
2021-05-10  6:38   ` Nicholas Piggin
2021-05-10  6:38     ` Nicholas Piggin
2021-05-10 20:44     ` Haren Myneni
2021-05-10 20:44       ` Haren Myneni
2021-04-17 21:13 ` [V3 PATCH 16/16] crypto/nx: Add sysfs interface to export NX capabilities Haren Myneni
2021-04-17 21:13   ` Haren Myneni
2021-04-22  6:56   ` Herbert Xu
2021-04-22  6:56     ` Herbert Xu

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=87bf041c7b33464c7d312f12f1329db7687750aa.camel@linux.ibm.com \
    --to=haren@linux.ibm.com \
    --cc=haren@us.ibm.com \
    --cc=hbabu@us.ibm.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.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: 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.