From: Kanchan Joshi <joshi.k@samsung.com>
To: Vincent Fu <vincentfu@gmail.com>
Cc: Jens Axboe <axboe@kernel.dk>,
fio@vger.kernel.org, vincent.fu@samsung.com
Subject: Re: [PATCH] filesetup: do not ask O_RDWR for read-only workload
Date: Mon, 6 Feb 2023 12:22:51 +0530 [thread overview]
Message-ID: <20230206065251.GA19745@green5> (raw)
In-Reply-To: <c7ae8aa4-7c91-f892-b7fa-0d34ab4ea536@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2611 bytes --]
On Fri, Feb 03, 2023 at 10:26:15AM -0500, Vincent Fu wrote:
>On 2/3/23 09:14, Jens Axboe wrote:
>>On 2/3/23 7:08?AM, Vincent Fu wrote:
>>>On 2/3/23 07:46, Jens Axboe wrote:
>>>>On Feb 3, 2023, at 5:35 AM, Kanchan Joshi <joshi.k@samsung.com> wrote:
>>>>>
>>>>>?Use O_RDONLY flag when read is requested on char-type files.
>>>>>
>>>>>Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
>>>>>---
>>>>>
>>>>>Before this patch: unexpected permission-denial for unprivileged-user.
>>>>>
>>>>>$ ls -l /dev/ng0n1
>>>>>cr--r--r-- 1 root root 242, 0 Feb 3 16:30 /dev/ng0n1
>>>>>
>>>>>$ ./fio -iodepth=1 -rw=randread -ioengine=io_uring_cmd -bs=4k -numjobs=1
>>>>>-size=4k -cmd_type=nvme -filename=/dev/ng0n1 -name=t
>>>>>t: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T)
>>>>>4096B-4096B, ioengine=io_uring_cmd, iodepth=1
>>>>>fio-3.33-71-g7d7a
>>>>>Starting 1 process
>>>>>fio: pid=131312, err=13/file:filesetup.c:805, func=open(/dev/ng0n1),
>>>>>error=Permission denied
>>>>>
>>>>>filesetup.c | 5 +----
>>>>>1 file changed, 1 insertion(+), 4 deletions(-)
>>>>>
>>>>>diff --git a/filesetup.c b/filesetup.c
>>>>>index 1d3cc5ad..d77b8ba4 100644
>>>>>--- a/filesetup.c
>>>>>+++ b/filesetup.c
>>>>>@@ -768,10 +768,7 @@ open_again:
>>>>> else
>>>>> from_hash = file_lookup_open(f, flags);
>>>>> } else if (td_read(td)) {
>>>>>- if (f->filetype == FIO_TYPE_CHAR && !read_only)
>>>>>- flags |= O_RDWR;
>>>>>- else
>>>>>- flags |= O_RDONLY;
>>>>>+ flags |= O_RDONLY;
>>>>
>>>>This will break sg like interfaces, where a read is done by writing the command to the char device.
>>>>
>>>>?
>>>>Jens Axboe
>>>>
>>>
>>>Kanchan, does it work if you run fio with the --readonly option?
>>
>>I think we should just make it work. Conceptually, the patch is obviously
>>fine, it just happens to break some oddball cases like sg/bsg. But maybe
>>we just add a fio ioengine flag for that, like FIO_RO_NEEDS_RW_OPEN or
>>something, where the engine can tell us if it needs a writeable open
>>even or a read-only workload.
>>
>>Then generic_file_open() can use O_RDONLY for td_read(), except if the
>>engine has FIO_RO_NEEDS_RW_OPEN set.
>>
>
>Kanchan, can you try the diff below? It's also available at https://protect2.fireeye.com/v1/url?k=37173803-566c928b-3716b34c-74fe4860018a-aac6167af74310c3&q=1&e=3e678cf7-7d3f-487a-8a94-a9f0b41ca778&u=https%3A%2F%2Fgithub.com%2Fvincentkfu%2Ffio%2Ftree%2Frwopen
Tried, this works, thanks!
The patch looks good. Seems this flag can be added to libzbc engine too.
That also treats the the char-type open in the same way.
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2023-02-06 6:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20230203123513epcas5p4cb1961d7d1376bf39690f82de639d6f4@epcas5p4.samsung.com>
2023-02-03 12:34 ` [PATCH] filesetup: do not ask O_RDWR for read-only workload Kanchan Joshi
2023-02-03 12:46 ` Jens Axboe
2023-02-03 14:08 ` Vincent Fu
2023-02-03 14:14 ` Jens Axboe
2023-02-03 15:26 ` Vincent Fu
2023-02-03 15:32 ` Jens Axboe
2023-02-06 6:52 ` Kanchan Joshi [this message]
2023-02-06 19:37 ` Jens Axboe
2023-02-07 16:16 ` Vincent Fu
2023-02-07 16:33 ` Jens Axboe
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=20230206065251.GA19745@green5 \
--to=joshi.k@samsung.com \
--cc=axboe@kernel.dk \
--cc=fio@vger.kernel.org \
--cc=vincent.fu@samsung.com \
--cc=vincentfu@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.