public inbox for [email protected]
 help / color / mirror / Atom feed
From: Jeff Xu <[email protected]>
To: Jens Axboe <[email protected]>
Cc: [email protected]
Subject: Re: Protection key in io uring kthread
Date: Wed, 24 May 2023 10:44:11 -0700	[thread overview]
Message-ID: <CABi2SkXyMcYEKSwtg7Acg7_j6WCYFmrOeJOLrKTMXCm4FL2fcQ@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>

Hi Jens,
Thanks for responding.

On Wed, May 24, 2023 at 8:06 AM Jens Axboe <[email protected]> wrote:
>
> On 5/23/23 8:48?PM, Jeff Xu wrote:
> > Hi
> > I have a question on the protection key in io_uring. Today, when a
> > user thread enters the kernel through syscall, PKRU is preserved, and
> > the kernel  will respect the PKEY protection of memory.
> >
> > For example:
> > sys_mprotect_pkey((void *)ptr, size, PROT_READ | PROT_WRITE, pkey);
> > pkey_write_deny(pkey); <-- disable write access to pkey for this thread.
> > ret = read(fd, ptr, 1); <-- this will fail in the kernel.
> >
> > I wonder what is the case for io_uring, since read is now async, will
> > kthread have the user thread's PKUR ?
>
> There is no kthread. What can happen is that some operation may be
> punted to the io-wq workers, but these act exactly like a thread created
> by the original task. IOW, if normal threads retain the protection key,
> so will any io-wq io_uring thread. If they don't, they do not.
>
Does this also apply to when the IORING_SETUP_SQPOLL [1] flag is used
? it mentions a kernel thread is created to perform submission queue
polling.

[1] https://manpages.debian.org/unstable/liburing-dev/io_uring_setup.2.en.html#IORING_SETUP_SQPOLL

> > In theory, it is possible, i.e. from io_uring_enter syscall. But I
> > don't know the implementation details of io_uring, hence asking the
> > expert in this list.
>
> Right, if the IO is done inline, then it won't make a difference if eg
> read(2) is used or IORING_OP_READ (or similar) with io_uring.
>
Can you please clarify what "IO is done inline" means ? i.e. are there
cases that are not inline ?

Thanks!
-Jeff

> --
> Jens Axboe
>

  reply	other threads:[~2023-05-24 17:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-24  2:48 Protection key in io uring kthread Jeff Xu
2023-05-24 15:06 ` Jens Axboe
2023-05-24 17:44   ` Jeff Xu [this message]
2023-05-24 18:04     ` Jens Axboe
2023-05-24 19:21       ` Jeff 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=CABi2SkXyMcYEKSwtg7Acg7_j6WCYFmrOeJOLrKTMXCm4FL2fcQ@mail.gmail.com \
    [email protected] \
    [email protected] \
    [email protected] \
    /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