Comments (2)
This probably should've been two separate discussions raised, rather than a single issue...
DEFER_TASKRUN does not imply the same behavior as COOP_TASKRUN. For the latter, the task_work will be run for any transition back from the kernel to userspace. For DEFER_TASKRUN, it's only run when the task waits on completions, either by using one of the io_uring_wait_cqe() variants, or by calling io_uring_get_events(). I don't think the kernel will complain if you set COOP_TASKRUN with DEFER_TASKRUN, but it won't make a difference. The former refers to task_work that the kernel knows about (it's referenced off the task struct itself), while the latter is an io_uring private type of task_work that the kernel doesn't have any insight into.
For non-multishot receive, msg_control is delivered just like it is with a recvmsg(2) syscall. Multishot has to place the data somewhere else, or it would be overwritten by the next trigger of the receive. And since you can have many come in before you process them in the application, that would not work so well.
from liburing.
Closing this one, please open as a discussion if there are further questions.
from liburing.
Related Issues (20)
- uring threads cant exit in background HOT 5
- How to understand the error code when setting worker thread binding CPU to io_uring-register_iowq-aff failed? HOT 6
- IORING_OP_MSG_RING should have a `io_uring_register_msg_ring` HOT 1
- possible issue after having upgraded to v2.6 HOT 47
- Question about IORING_OP_NOP HOT 7
- io_uring_submit: Device or resource busy (EBUSY) reports this error. What situations can cause this error? HOT 4
- How to ensure the sequential nature of tasks such as storage I/O? HOT 6
- EFAULT if not respecting IORING_FEAT_SINGLE_MMAP under 6.10-rc1 HOT 10
- `io_uring_peek_batch_cqe` does not populate `cqe` over FFI consistently! HOT 23
- io_uring_wait_cqe_timeout() passes a __kernel_timespec to IORING_OP_TIMEOUT which takes a timespec64 HOT 1
- Add support for absolute timeouts to io_uring_getevents_arg-based io_uring_enter calls HOT 8
- Potential dangling pointer if io_uring_submit_and_wait_timeout() used with IORING_SETUP_SQPOLL
- After the upgrade, why can't an instance be created with params.flags=IORING_SETUP_SINGLE_ISSUER? What's the issue? HOT 5
- Problem with direct descriptor in batch with `openat` and `write` SQEs HOT 1
- Will there be examples for pure kernel side io_uring passthrough? HOT 1
- Documentation: referenced IORING_FEAT_ENTER_EXT_ARG flag does not exist HOT 1
- io_uring_register_files() always failed with bad file descriptor error (EBADF) HOT 2
- which Linux kernel version stably supports the io_uring feature? HOT 4
- What's the proper way to read all the PID stat files "/proc/[pid]/stat" in a io_uring friendly way? HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from liburing.