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);
> > + }
next prev parent reply other threads:[~2021-05-10 20:34 UTC|newest]
Thread overview: 44+ 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 21:00 ` [V3 PATCH 01/16] powerpc/powernv/vas: Rename register/unregister functions Haren Myneni
2021-05-10 5:10 ` Nicholas Piggin
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-05-10 5:19 ` Nicholas Piggin
2021-05-10 17:12 ` Haren Myneni
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-05-10 5:28 ` Nicholas Piggin
2021-05-10 20:32 ` Haren Myneni [this message]
2021-04-17 21:03 ` [V3 PATCH 04/16] powerpc/vas: Move update_csb/dump_crb to common book3s platform Haren Myneni
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-05-10 5:37 ` Nicholas Piggin
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-05-10 5:49 ` Nicholas Piggin
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-05-10 5:54 ` Nicholas Piggin
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-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-05-10 6:13 ` Nicholas Piggin
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-05-10 6:18 ` 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:10 ` [V3 PATCH 12/16] powerpc/pseries/vas: sysfs interface to export capabilities Haren Myneni
2021-05-10 6:34 ` Nicholas Piggin
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-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-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-22 6:56 ` Herbert Xu
2021-05-10 6:38 ` Nicholas Piggin
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-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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).