From: Michael Ellerman <mpe@ellerman.id.au>
To: Haren Myneni <haren@linux.ibm.com>
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 15:09:10 +1100 [thread overview]
Message-ID: <87r1xrpqqh.fsf@mpe.ellerman.id.au> (raw)
In-Reply-To: <1583525764.9256.13.camel@hbabu-laptop>
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?
> 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.
> 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?
> + }
> + }
> put_rx_win(window->rxwin);
> + }
>
> vas_window_free(window);
cheers
next prev parent reply other threads:[~2020-03-17 4:10 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 [this message]
2020-03-17 19:13 ` Haren Myneni
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=87r1xrpqqh.fsf@mpe.ellerman.id.au \
--to=mpe@ellerman.id.au \
--cc=ajd@linux.ibm.com \
--cc=haren@linux.ibm.com \
--cc=hch@infradead.org \
--cc=herbert@gondor.apana.org.au \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mikey@neuling.org \
--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