From: Haren Myneni <haren@linux.ibm.com>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: mikey@neuling.org, herbert@gondor.apana.org.au,
npiggin@gmail.com, hch@infradead.org, oohall@gmail.com,
sukadev@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org,
ajd@linux.ibm.com
Subject: Re: [PATCH V7 08/14] powerpc/vas: Take reference to PID and mm for user space windows
Date: Tue, 17 Mar 2020 12:13:48 -0700 [thread overview]
Message-ID: <1584472428.9256.14776.camel@hbabu-laptop> (raw)
In-Reply-To: <87r1xrpqqh.fsf@mpe.ellerman.id.au>
On Tue, 2020-03-17 at 15:09 +1100, Michael Ellerman wrote:
> Haren Myneni <haren@linux.ibm.com> writes:
> > Process close windows after its requests are completed. In multi-thread
> > applications, child can open a window but release FD will not be called
> > upon its exit. Parent thread will be closing it later upon its exit.
>
> What if the parent exits first?
Thanks for the review.
If the parent exists, child thread will close the window when it exits.
So we should not get the case where window is still open.
>
> > The parent can also send NX requests with this window and NX can
> > generate page faults. After kernel handles the page fault, send
> > signal to process by using PID if CSB address is invalid. Parent
> > thread will not receive signal since its PID is different from the one
> > saved in vas_window. So use tgid in case if the task for the pid saved
> > in window is not running and send signal to its parent.
> >
> > To prevent reusing the pid until the window closed, take reference to
> > pid and task mm.
>
> That text is all very dense. Can you please flesh it out and reword it
> to clearly spell out what's going on in much more detail.
Sure, will update the commit description.
>
>
> > diff --git a/arch/powerpc/platforms/powernv/vas-window.c b/arch/powerpc/platforms/powernv/vas-window.c
> > index a45d81d..7587258 100644
> > --- a/arch/powerpc/platforms/powernv/vas-window.c
> > +++ b/arch/powerpc/platforms/powernv/vas-window.c
> > @@ -1266,8 +1300,17 @@ int vas_win_close(struct vas_window *window)
> > poll_window_castout(window);
> >
> > /* if send window, drop reference to matching receive window */
> > - if (window->tx_win)
> > + if (window->tx_win) {
> > + if (window->user_win) {
> > + /* Drop references to pid and mm */
> > + put_pid(window->pid);
> > + if (window->mm) {
> > + mmdrop(window->mm);
> > + mm_context_remove_copro(window->mm);
>
> That seems backward. Once you drop the reference the mm can be freed
> can't it?
Yes, will change.
>
> > + }
> > + }
> > put_rx_win(window->rxwin);
> > + }
> >
> > vas_window_free(window);
>
> cheers
next prev parent reply other threads:[~2020-03-17 19:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-06 20:07 [PATCH V7 00/14] powerpc/vas: Page fault handling for user space NX requests Haren Myneni
2020-03-06 20:12 ` [PATCH V7 01/14] powerpc/xive: Define xive_native_alloc_irq_on_chip() Haren Myneni
2020-03-06 20:12 ` [PATCH V7 02/14] powerpc/xive: Define xive_native_alloc_get_irq_info() Haren Myneni
2020-03-06 20:13 ` [PATCH V7 03/14] powerpc/vas: Define nx_fault_stamp in coprocessor_request_block Haren Myneni
2020-03-06 20:13 ` [PATCH V7 04/14] powerpc/vas: Alloc and setup IRQ and trigger port address Haren Myneni
2020-03-06 20:14 ` [PATCH V7 05/14] powerpc/vas: Setup fault window per VAS instance Haren Myneni
2020-03-06 20:14 ` [PATCH V7 06/14] powerpc/vas: Setup thread IRQ handler " Haren Myneni
2020-03-06 20:15 ` [PATCH V7 07/14] powerpc/vas: Register NX with fault window ID and IRQ port value Haren Myneni
2020-03-06 20:16 ` [PATCH V7 08/14] powerpc/vas: Take reference to PID and mm for user space windows Haren Myneni
2020-03-17 4:09 ` Michael Ellerman
2020-03-17 19:13 ` Haren Myneni [this message]
2020-03-06 20:16 ` [PATCH V7 09/14] powerpc/vas: Update CSB and notify process for fault CRBs Haren Myneni
2020-03-17 5:28 ` Michael Ellerman
2020-03-17 19:27 ` Haren Myneni
2020-03-23 0:06 ` Nicholas Piggin
2020-03-23 1:06 ` Haren Myneni
2020-03-06 20:17 ` [PATCH V7 10/14] powerpc/vas: Print CRB and FIFO values Haren Myneni
2020-03-06 20:18 ` [PATCH V7 11/14] powerpc/vas: Do not use default credits for receive window Haren Myneni
2020-03-06 20:18 ` [PATCH V7 12/14] powerpc/vas: Return credits after handling fault Haren Myneni
2020-03-06 20:19 ` [PATCH V7 13/14] powerpc/vas: Display process stuck message Haren Myneni
2020-03-06 20:20 ` [PATCH V7 14/14] powerpc/vas: Free send window in VAS instance after credits returned Haren Myneni
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=1584472428.9256.14776.camel@hbabu-laptop \
--to=haren@linux.ibm.com \
--cc=ajd@linux.ibm.com \
--cc=hch@infradead.org \
--cc=herbert@gondor.apana.org.au \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mikey@neuling.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=oohall@gmail.com \
--cc=sukadev@linux.vnet.ibm.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