devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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
> 

  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).