summaryrefslogtreecommitdiffstats
path: root/io_uring/poll.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2022-07-07 14:16:20 -0600
committerJens Axboe <axboe@kernel.dk>2022-07-24 18:39:17 -0600
commit9b797a37c4bd83b03cedcfbd15852b836f5e562c (patch)
treef01382c4665ad9276dd632b69a8ca9429f26f979 /io_uring/poll.h
parent9da7471ed10dab52410062be74896a6c0aa1bf3a (diff)
downloadlinux-9b797a37c4bd83b03cedcfbd15852b836f5e562c.tar.gz
linux-9b797a37c4bd83b03cedcfbd15852b836f5e562c.tar.bz2
linux-9b797a37c4bd83b03cedcfbd15852b836f5e562c.zip
io_uring: add abstraction around apoll cache
In preparation for adding limits, and one more user, abstract out the core bits of the allocation+free cache. Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/poll.h')
-rw-r--r--io_uring/poll.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/io_uring/poll.h b/io_uring/poll.h
index 95f192c7babb..5f3bae50fc81 100644
--- a/io_uring/poll.h
+++ b/io_uring/poll.h
@@ -1,5 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
+#include "alloc_cache.h"
+
enum {
IO_APOLL_OK,
IO_APOLL_ABORTED,
@@ -14,7 +16,10 @@ struct io_poll {
};
struct async_poll {
- struct io_poll poll;
+ union {
+ struct io_poll poll;
+ struct io_cache_entry cache;
+ };
struct io_poll *double_poll;
};
@@ -31,4 +36,4 @@ int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags);
bool io_poll_remove_all(struct io_ring_ctx *ctx, struct task_struct *tsk,
bool cancel_all);
-void io_flush_apoll_cache(struct io_ring_ctx *ctx);
+void io_apoll_cache_free(struct io_cache_entry *entry);