From: Christophe Leroy <christophe.leroy@c-s.fr>
To: Haren Myneni <haren@linux.ibm.com>,
mpe@ellerman.id.au, hch@infradead.org, mikey@neuling.org,
npiggin@gmail.com, herbert@gondor.apana.org.au,
linuxppc-dev@lists.ozlabs.org, devicetree@vger.kernel.org
Cc: sukadev@linux.vnet.ibm.com
Subject: Re: [PATCH V2 00/13] powerpc/vas: Page fault handling for user space NX requests
Date: Mon, 9 Dec 2019 06:37:09 +0100 [thread overview]
Message-ID: <8ba807dd-9d5a-e42a-60e8-f9ad648026bf@c-s.fr> (raw)
In-Reply-To: <1575861522.16318.9.camel@hbabu-laptop>
Hi,
What do you mean by NX ?
Up to now, NX has been standing for No-eXecute. That's a bit in segment
registers on book3s/32 to forbid executing code.
Therefore, some of your text is really misleading. If NX means something
else for you, your text must be unambiguous.
Christophe
Le 09/12/2019 à 04:18, Haren Myneni a écrit :
>
> Applications will send compression / decompression requests to NX with
> COPY/PASTE instructions. When NX is processing these requests, can hit
> fault on the request buffer (not in memory). It issues an interrupt and
> pastes fault CRB in fault FIFO. Expects kernel to handle this fault and
> return credits for both send and fault windows after processing.
>
> This patch series adds IRQ and fault window setup, and NX fault handling:
> - Read IRQ# from "interrupts" property and configure IRQ per VAS instance.
> - Set port# for each window to generate an interrupt when noticed fault.
> - Set fault window and FIFO on which NX paste fault CRB.
> - Setup IRQ thread fault handler per VAS instance.
> - When receiving an interrupt, Read CRBs from fault FIFO and update
> coprocessor_status_block (CSB) in the corresponding CRB with translation
> failure (CSB_CC_TRANSLATION). After issuing NX requests, process polls
> on CSB address. When it sees translation error, can touch the request
> buffer to bring the page in to memory and reissue NX request.
> - If copy_to_user fails on user space CSB address, OS sends SEGV signal.
>
> Tested these patches with NX-GZIP support and will be posting this series
> soon.
>
> Patch 2: Define nx_fault_stamp on which NX writes fault status for the fault
> CRB
> Patch 3: Read interrupts and port properties per VAS instance
> Patch 4: Setup fault window per each VAS instance. This window is used for
> NX to paste fault CRB in FIFO.
> Patches 5 & 6: Setup threaded IRQ per VAS and register NX with fault window
> ID and port number for each send window so that NX paste fault CRB
> in this window.
> Patch 7: Reference to pid and mm so that pid is not used until window closed.
> Needed for multi thread application where child can open a window
> and can be used by parent later.
> Patches 8 and 9: Process CRBs from fault FIFO and notify tasks by
> updating CSB or through signals.
> Patches 10 and 11: Return credits for send and fault windows after handling
> faults.
> Patch 13:Fix closing send window after all credits are returned. This issue
> happens only for user space requests. No page faults on kernel
> request buffer.
>
> Changelog:
> V2:
> - Use threaded IRQ instead of own kernel thread handler
> - Use pswid insted of user space CSB address to find valid CRB
> - Removed unused macros and other changes as suggested by Christoph Hellwig
>
> Haren Myneni (13):
> powerpc/vas: Describe vas-port and interrupts properties
> powerpc/vas: Define nx_fault_stamp in coprocessor_request_block
> powerpc/vas: Read interrupts and vas-port device tree properties
> powerpc/vas: Setup fault window per VAS instance
> powerpc/vas: Setup thread IRQ handler per VAS instance
> powerpc/vas: Register NX with fault window ID and IRQ port value
> powerpc/vas: Take reference to PID and mm for user space windows
> powerpc/vas: Update CSB and notify process for fault CRBs
> powerpc/vas: Print CRB and FIFO values
> powerpc/vas: Do not use default credits for receive window
> powerpc/VAS: Return credits after handling fault
> powerpc/vas: Display process stuck message
> powerpc/vas: Free send window in VAS instance after credits returned
>
> .../devicetree/bindings/powerpc/ibm,vas.txt | 5 +
> arch/powerpc/include/asm/icswx.h | 18 +-
> arch/powerpc/platforms/powernv/Makefile | 2 +-
> arch/powerpc/platforms/powernv/vas-debug.c | 2 +-
> arch/powerpc/platforms/powernv/vas-fault.c | 337 +++++++++++++++++++++
> arch/powerpc/platforms/powernv/vas-window.c | 173 ++++++++++-
> arch/powerpc/platforms/powernv/vas.c | 77 ++++-
> arch/powerpc/platforms/powernv/vas.h | 38 ++-
> 8 files changed, 627 insertions(+), 25 deletions(-)
> create mode 100644 arch/powerpc/platforms/powernv/vas-fault.c
>
next prev parent reply other threads:[~2019-12-09 5:37 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-09 3:18 [PATCH V2 00/13] powerpc/vas: Page fault handling for user space NX requests Haren Myneni
2019-12-09 3:26 ` [PATCH V2 01/13] powerpc/vas: Describe vas-port and interrupts properties Haren Myneni
2019-12-09 3:27 ` [PATCH V2 02/13] powerpc/vas: Define nx_fault_stamp in coprocessor_request_block Haren Myneni
2019-12-09 3:29 ` [PATCH V2 03/13] powerpc/vas: Read interrupts and vas-port device tree properties Haren Myneni
2019-12-09 3:30 ` [PATCH V2 04/13] powerpc/vas: Setup fault window per VAS instance Haren Myneni
2019-12-12 12:55 ` Christoph Hellwig
2019-12-09 3:31 ` [PATCH V2 05/13] powerpc/vas: Setup thread IRQ handler " Haren Myneni
2019-12-12 12:59 ` Christoph Hellwig
2019-12-09 3:32 ` [PATCH V2 06/13] powerpc/vas: Register NX with fault window ID and IRQ port value Haren Myneni
2019-12-09 3:32 ` [PATCH V2 07/13] powerpc/vas: Take reference to PID and mm for user space windows Haren Myneni
2019-12-12 13:02 ` Christoph Hellwig
2019-12-17 5:35 ` Haren Myneni
2019-12-09 3:33 ` [PATCH V2 08/13] powerpc/vas: Update CSB and notify process for fault CRBs Haren Myneni
2019-12-12 13:07 ` Christoph Hellwig
2019-12-09 3:34 ` [PATCH V2 09/13] powerpc/vas: Print CRB and FIFO values Haren Myneni
2019-12-09 3:34 ` [PATCH V2 10/13] powerpc/vas: Do not use default credits for receive window Haren Myneni
2019-12-09 3:35 ` [PATCH V2 11/13] powerpc/vas: Return credits after handling fault Haren Myneni
2019-12-09 3:36 ` [PATCH V2 12/13] powerpc/vas: Display process stuck message Haren Myneni
2019-12-09 3:37 ` [PATCH V2 13/13] powerpc/vas: Free send window in VAS instance after credits returned Haren Myneni
2019-12-09 5:37 ` Christophe Leroy [this message]
2019-12-09 8:38 ` [PATCH V2 00/13] powerpc/vas: Page fault handling for user space NX requests Segher Boessenkool
2019-12-12 5:05 ` Haren Myneni
2019-12-12 5:38 ` 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=8ba807dd-9d5a-e42a-60e8-f9ad648026bf@c-s.fr \
--to=christophe.leroy@c-s.fr \
--cc=devicetree@vger.kernel.org \
--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=mpe@ellerman.id.au \
--cc=npiggin@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;
as well as URLs for NNTP newsgroup(s).