* [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, [email protected]
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, [email protected] On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <[email protected]> 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, [email protected] On 10/13/20 1:46 PM, Linus Torvalds wrote: > On Mon, Oct 12, 2020 at 6:46 AM Jens Axboe <[email protected]> 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, [email protected] On Tue, Oct 13, 2020 at 12:49 PM Jens Axboe <[email protected]> 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, [email protected] 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 <[email protected]> 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, [email protected] 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 <[email protected]> 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, [email protected] 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 <[email protected]> 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, [email protected] 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