* [GIT PULL] io_uring updates for 5.10-rc1 @ 2020-10-12 13:46 Jens Axboe 2020-10-13 19:46 ` Linus Torvalds 2020-10-13 19:47 ` pr-tracker-bot 0 siblings, 2 replies; 9+ messages in thread From: Jens Axboe @ 2020-10-12 13:46 UTC (permalink / raw) To: Linus Torvalds; +Cc: io-uring, linux-kernel Hi Linus, Here are the io_uring updates for 5.10. This pull request contains: - Add blkcg accounting for io-wq offload (Dennis) - A use-after-free fix for io-wq (Hillf) - Cancelation fixes and improvements - Use proper files_struct references for offload - Cleanup of io_uring_get_socket() since that can now go into our own header - SQPOLL fixes and cleanups, and support for sharing the thread - Improvement to how page accounting is done for registered buffers and huge pages, accounting the real pinned state - Series cleaning up the xarray code (Willy) - Various cleanups, refactoring, and improvements (Pavel) - Use raw spinlock for io-wq (Sebastian) - Add support for ring restrictions (Stefano) Please pull! The following changes since commit c8d317aa1887b40b188ec3aaa6e9e524333caed1: io_uring: fix async buffered reads when readahead is disabled (2020-09-29 07:54:00 -0600) are available in the Git repository at: git://git.kernel.dk/linux-block.git tags/io_uring-5.10-2020-10-12 for you to fetch changes up to b2e9685283127f30e7f2b466af0046ff9bd27a86: io_uring: keep a pointer ref_node in file_data (2020-10-10 12:49:25 -0600) ---------------------------------------------------------------- io_uring-5.10-2020-10-12 ---------------------------------------------------------------- Dennis Zhou (1): io_uring: add blkcg accounting to offloaded operations Hillf Danton (1): io-wq: fix use-after-free in io_wq_worker_running Jens Axboe (29): Merge branch 'io_uring-5.9' into for-5.10/io_uring io_uring: allow timeout/poll/files killing to take task into account io_uring: move dropping of files into separate helper io_uring: stash ctx task reference for SQPOLL io_uring: unconditionally grab req->task io_uring: return cancelation status from poll/timeout/files handlers io_uring: enable task/files specific overflow flushing io_uring: don't rely on weak ->files references io_uring: reference ->nsproxy for file table commands io_uring: move io_uring_get_socket() into io_uring.h io_uring: io_sq_thread() doesn't need to flush signals fs: align IOCB_* flags with RWF_* flags io_uring: use private ctx wait queue entries for SQPOLL io_uring: move SQPOLL post-wakeup ring need wakeup flag into wake handler io_uring: split work handling part of SQPOLL into helper io_uring: split SQPOLL data into separate structure io_uring: base SQPOLL handling off io_sq_data io_uring: enable IORING_SETUP_ATTACH_WQ to attach to SQPOLL thread too io_uring: mark io_uring_fops/io_op_defs as __read_mostly io_uring: provide IORING_ENTER_SQ_WAIT for SQPOLL SQ ring waits io_uring: get rid of req->io/io_async_ctx union io_uring: cap SQ submit size for SQPOLL with multiple rings io_uring: improve registered buffer accounting for huge pages io_uring: process task work in io_uring_register() io-wq: kill unused IO_WORKER_F_EXITING io_uring: kill callback_head argument for io_req_task_work_add() io_uring: batch account ->req_issue and task struct references io_uring: no need to call xa_destroy() on empty xarray io_uring: fix break condition for __io_uring_register() waiting Joseph Qi (1): io_uring: show sqthread pid and cpu in fdinfo Matthew Wilcox (Oracle) (3): io_uring: Fix use of XArray in __io_uring_files_cancel io_uring: Fix XArray usage in io_uring_add_task_file io_uring: Convert advanced XArray uses to the normal API Pavel Begunkov (23): io_uring: simplify io_rw_prep_async() io_uring: refactor io_req_map_rw() io_uring: fix overlapped memcpy in io_req_map_rw() io_uring: kill extra user_bufs check io_uring: simplify io_alloc_req() io_uring: io_kiocb_ppos() style change io_uring: remove F_NEED_CLEANUP check in *prep() io_uring: set/clear IOCB_NOWAIT into io_read/write io_uring: remove nonblock arg from io_{rw}_prep() io_uring: decouple issuing and req preparation io_uring: move req preps out of io_issue_sqe() io_uring: don't io_prep_async_work() linked reqs io_uring: clean up ->files grabbing io_uring: kill extra check in fixed io_file_get() io_uring: simplify io_file_get() io_uring: improve submit_state.ios_left accounting io_uring: use a separate struct for timeout_remove io_uring: remove timeout.list after hrtimer cancel io_uring: clean leftovers after splitting issue io_uring: don't delay io_init_req() error check io_uring: clean file_data access in files_register io_uring: refactor *files_register()'s error paths io_uring: keep a pointer ref_node in file_data Sebastian Andrzej Siewior (1): io_wq: Make io_wqe::lock a raw_spinlock_t Stefano Garzarella (3): io_uring: use an enumeration for io_uring_register(2) opcodes io_uring: add IOURING_REGISTER_RESTRICTIONS opcode io_uring: allow disabling rings during the creation Zheng Bin (1): io_uring: remove unneeded semicolon fs/exec.c | 6 + fs/file.c | 2 + fs/io-wq.c | 200 +++--- fs/io-wq.h | 4 + fs/io_uring.c | 2181 ++++++++++++++++++++++++++++++++++++-------------------- include/linux/fs.h | 46 +- include/linux/io_uring.h | 58 ++ include/linux/sched.h | 5 + include/uapi/linux/io_uring.h | 61 +- init/init_task.c | 3 + kernel/fork.c | 6 + net/unix/scm.c | 1 + 12 files changed, 1662 insertions(+), 911 deletions(-) create mode 100644 include/linux/io_uring.h -- Jens Axboe ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-12 13:46 [GIT PULL] io_uring updates for 5.10-rc1 Jens Axboe @ 2020-10-13 19:46 ` Linus Torvalds 2020-10-13 19:49 ` Jens Axboe 2020-10-14 17:43 ` Nick Desaulniers 2020-10-13 19:47 ` pr-tracker-bot 1 sibling, 2 replies; 9+ messages in thread From: Linus Torvalds @ 2020-10-13 19:46 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, linux-kernel On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <axboe@kernel.dk> wrote: > > Here are the io_uring updates for 5.10. Very strange. My clang build gives a warning I've never seen before: /tmp/io_uring-dd40c4.s:26476: Warning: ignoring changed section attributes for .data..read_mostly and looking at what clang generates for the *.s file, it seems to be the "section" line in: .type io_op_defs,@object # @io_op_defs .section .data..read_mostly,"a",@progbits .p2align 4 I think it's the combination of "const" and "__read_mostly". I think the warning is sensible: how can a piece of data be both "const" and "__read_mostly"? If it's "const", then it's not "mostly" read - it had better be _always_ read. I'm letting it go, and I've pulled this (gcc doesn't complain), but please have a look. Linus ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-13 19:46 ` Linus Torvalds @ 2020-10-13 19:49 ` Jens Axboe 2020-10-13 19:50 ` Linus Torvalds ` (2 more replies) 2020-10-14 17:43 ` Nick Desaulniers 1 sibling, 3 replies; 9+ messages in thread From: Jens Axboe @ 2020-10-13 19:49 UTC (permalink / raw) To: Linus Torvalds; +Cc: io-uring, linux-kernel On 10/13/20 1:46 PM, Linus Torvalds wrote: > On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <axboe@kernel.dk> wrote: >> >> Here are the io_uring updates for 5.10. > > Very strange. My clang build gives a warning I've never seen before: > > /tmp/io_uring-dd40c4.s:26476: Warning: ignoring changed section > attributes for .data..read_mostly > > and looking at what clang generates for the *.s file, it seems to be > the "section" line in: > > .type io_op_defs,@object # @io_op_defs > .section .data..read_mostly,"a",@progbits > .p2align 4 > > I think it's the combination of "const" and "__read_mostly". > > I think the warning is sensible: how can a piece of data be both > "const" and "__read_mostly"? If it's "const", then it's not "mostly" > read - it had better be _always_ read. > > I'm letting it go, and I've pulled this (gcc doesn't complain), but > please have a look. Huh weird, I'll take a look. FWIW, the construct isn't unique across the kernel. What clang are you using? -- Jens Axboe ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-13 19:49 ` Jens Axboe @ 2020-10-13 19:50 ` Linus Torvalds 2020-10-13 20:49 ` Rasmus Villemoes 2020-10-13 21:06 ` Arvind Sankar 2 siblings, 0 replies; 9+ messages in thread From: Linus Torvalds @ 2020-10-13 19:50 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, linux-kernel On Tue, Oct 13, 2020 at 12:49 PM Jens Axboe <axboe@kernel.dk> wrote: > > What clang are you using? I have a self-built clang version from their development tree, since I've been using it for the "asm goto with outputs" testing. But I bet this happens with just regular reasonably up-to-date clang too. Linus ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-13 19:49 ` Jens Axboe 2020-10-13 19:50 ` Linus Torvalds @ 2020-10-13 20:49 ` Rasmus Villemoes 2020-10-13 21:00 ` Jens Axboe 2020-10-13 21:06 ` Arvind Sankar 2 siblings, 1 reply; 9+ messages in thread From: Rasmus Villemoes @ 2020-10-13 20:49 UTC (permalink / raw) To: Jens Axboe, Linus Torvalds; +Cc: io-uring, linux-kernel On 13/10/2020 21.49, Jens Axboe wrote: > On 10/13/20 1:46 PM, Linus Torvalds wrote: >> On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <axboe@kernel.dk> wrote: >>> >>> Here are the io_uring updates for 5.10. >> >> Very strange. My clang build gives a warning I've never seen before: >> >> /tmp/io_uring-dd40c4.s:26476: Warning: ignoring changed section >> attributes for .data..read_mostly >> >> and looking at what clang generates for the *.s file, it seems to be >> the "section" line in: >> >> .type io_op_defs,@object # @io_op_defs >> .section .data..read_mostly,"a",@progbits >> .p2align 4 >> >> I think it's the combination of "const" and "__read_mostly". >> >> I think the warning is sensible: how can a piece of data be both >> "const" and "__read_mostly"? If it's "const", then it's not "mostly" >> read - it had better be _always_ read. >> >> I'm letting it go, and I've pulled this (gcc doesn't complain), but >> please have a look. > > Huh weird, I'll take a look. FWIW, the construct isn't unique across > the kernel. Citation needed. There's lots of "pointer to const foo" stuff declared as __read_mostly, but I can't find any objects that are themselves both const and __read_mostly. Other than that io_op_defs and io_uring_fops now. But... there's something a little weird: $ grep read_most -- fs/io_uring.s .section .data..read_mostly,"a",@progbits $ readelf --wide -S fs/io_uring.o | grep read_most [32] .data..read_mostly PROGBITS 0000000000000000 01b4e0 000188 00 WA 0 0 32 (this is with gcc/gas). So despite that .section directive not saying "aw", the section got the W flag anyway. There are lots of .section "__tracepoints_ptrs", "a" .pushsection .smp_locks,"a" in the .s file, and those sections do end up with just the A bit in the .o file. Does gas maybe somehow special-case a section name starting with .data? Rasmus ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-13 20:49 ` Rasmus Villemoes @ 2020-10-13 21:00 ` Jens Axboe 0 siblings, 0 replies; 9+ messages in thread From: Jens Axboe @ 2020-10-13 21:00 UTC (permalink / raw) To: Rasmus Villemoes, Linus Torvalds; +Cc: io-uring, linux-kernel On 10/13/20 2:49 PM, Rasmus Villemoes wrote: > On 13/10/2020 21.49, Jens Axboe wrote: >> On 10/13/20 1:46 PM, Linus Torvalds wrote: >>> On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <axboe@kernel.dk> wrote: >>>> >>>> Here are the io_uring updates for 5.10. >>> >>> Very strange. My clang build gives a warning I've never seen before: >>> >>> /tmp/io_uring-dd40c4.s:26476: Warning: ignoring changed section >>> attributes for .data..read_mostly >>> >>> and looking at what clang generates for the *.s file, it seems to be >>> the "section" line in: >>> >>> .type io_op_defs,@object # @io_op_defs >>> .section .data..read_mostly,"a",@progbits >>> .p2align 4 >>> >>> I think it's the combination of "const" and "__read_mostly". >>> >>> I think the warning is sensible: how can a piece of data be both >>> "const" and "__read_mostly"? If it's "const", then it's not "mostly" >>> read - it had better be _always_ read. >>> >>> I'm letting it go, and I've pulled this (gcc doesn't complain), but >>> please have a look. >> >> Huh weird, I'll take a look. FWIW, the construct isn't unique across >> the kernel. > > Citation needed. There's lots of "pointer to const foo" stuff declared > as __read_mostly, but I can't find any objects that are themselves both > const and __read_mostly. Other than that io_op_defs and io_uring_fops now. You are right, they are all pointers, so not the same. I'll just revert the patch. -- Jens Axboe ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-13 19:49 ` Jens Axboe 2020-10-13 19:50 ` Linus Torvalds 2020-10-13 20:49 ` Rasmus Villemoes @ 2020-10-13 21:06 ` Arvind Sankar 2 siblings, 0 replies; 9+ messages in thread From: Arvind Sankar @ 2020-10-13 21:06 UTC (permalink / raw) To: Jens Axboe; +Cc: Linus Torvalds, io-uring, linux-kernel On Tue, Oct 13, 2020 at 01:49:01PM -0600, Jens Axboe wrote: > On 10/13/20 1:46 PM, Linus Torvalds wrote: > > On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <axboe@kernel.dk> wrote: > >> > >> Here are the io_uring updates for 5.10. > > > > Very strange. My clang build gives a warning I've never seen before: > > > > /tmp/io_uring-dd40c4.s:26476: Warning: ignoring changed section > > attributes for .data..read_mostly > > > > and looking at what clang generates for the *.s file, it seems to be > > the "section" line in: > > > > .type io_op_defs,@object # @io_op_defs > > .section .data..read_mostly,"a",@progbits > > .p2align 4 > > > > I think it's the combination of "const" and "__read_mostly". > > > > I think the warning is sensible: how can a piece of data be both > > "const" and "__read_mostly"? If it's "const", then it's not "mostly" > > read - it had better be _always_ read. > > > > I'm letting it go, and I've pulled this (gcc doesn't complain), but > > please have a look. > > Huh weird, I'll take a look. FWIW, the construct isn't unique across > the kernel. > > What clang are you using? > > -- > Jens Axboe > If const and non-const __read_mostly appeared in the same file, both gcc and clang would give errors. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-13 19:46 ` Linus Torvalds 2020-10-13 19:49 ` Jens Axboe @ 2020-10-14 17:43 ` Nick Desaulniers 1 sibling, 0 replies; 9+ messages in thread From: Nick Desaulniers @ 2020-10-14 17:43 UTC (permalink / raw) To: torvalds; +Cc: axboe, io-uring, linux-kernel, kernel-tooling, clang-built-linux Sorry for not reporting it sooner. It looks to me like a GNU `as` bug: https://github.com/ClangBuiltLinux/linux/issues/1153#issuecomment-692265433 When I'm done with the three build breakages that popped up overnight I'll try to report it to GNU binutils folks. (We run an issue tracker out of https://github.com/ClangBuiltLinux/linux/issues, if your interested to see what the outstanding known issues are, or recently solved ones. We try to aggressively track when and where patches land for the inevitable backports. We have 118 people in our github group!) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [GIT PULL] io_uring updates for 5.10-rc1 2020-10-12 13:46 [GIT PULL] io_uring updates for 5.10-rc1 Jens Axboe 2020-10-13 19:46 ` Linus Torvalds @ 2020-10-13 19:47 ` pr-tracker-bot 1 sibling, 0 replies; 9+ messages in thread From: pr-tracker-bot @ 2020-10-13 19:47 UTC (permalink / raw) To: Jens Axboe; +Cc: Linus Torvalds, io-uring, linux-kernel The pull request you sent on Mon, 12 Oct 2020 07:46:45 -0600: > git://git.kernel.dk/linux-block.git tags/io_uring-5.10-2020-10-12 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/6ad4bf6ea1609fb539a62f10fca87ddbd53a0315 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-10-14 17:43 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-10-12 13:46 [GIT PULL] io_uring updates for 5.10-rc1 Jens Axboe 2020-10-13 19:46 ` Linus Torvalds 2020-10-13 19:49 ` Jens Axboe 2020-10-13 19:50 ` Linus Torvalds 2020-10-13 20:49 ` Rasmus Villemoes 2020-10-13 21:00 ` Jens Axboe 2020-10-13 21:06 ` Arvind Sankar 2020-10-14 17:43 ` Nick Desaulniers 2020-10-13 19:47 ` pr-tracker-bot
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).