mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
io_uring-6.19-20260205
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmmFEccQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpjXxD/9Tkn0DgevRtQEciopjKmLdgC5kki8UOWjA lGfq0ZidcOAO0JLlr4gbH7lRsklN2wqGV0sNWyX++72U4Lw9iZli5Zv/ykNQ8odG DcYAOSWyxPYP2glrNGwHwFS/aT66vcCfwjNeE8eLkl3L8qhSzx5O50NHMGLb45Ob 7fUGaH3SVy4CLctFms/3EZ6rV+El7Xu37AzLCUAnE4cvZsyLozuGM8b9ED/+ZpJx 3VrIx9Md5VM1fiQ8yiY45liAGxA76IO6nZwp+Uq7pOVMMTRyX7Z46PMWhVi2xwwI fz/oiJTR8a5CRbSLZU6JKukIuAEVhc60vTEWQHeUAEndCapgprBX+12IQ2dJdGAJ soaQsLJzNrBvt5CydIzjsbRwbV6rJRi8Te26iBHRFwHP4ind+BqfpdE4X72YQN5j Hgr/XsVLWluCSVb1WbmoTM+ptbcw0GgzhK7k9oG2iqaYISBBK+Deuo4Wg1xsFWLQ 4sTeVF7V84lYpNBf7DMIdyjhqqN7+In6oGA+4NEhDmxlDdLYsdPdVkcxOUVwPeL5 v3vaY1CR/KX+hmio+e/pIQSi7NhKfmHBdteQHl4CuCONa16obPeOSFczpZP7cwRt yINF7+FWxOrDHVgJ23JckwZflD/xfgU7Ch6scdiIpAURU2im15dLxqh6bg8nwViz BafKe66Bgw== =sRYt -----END PGP SIGNATURE----- Merge tag 'io_uring-6.19-20260205' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux Pull io_uring fixes from Jens Axboe: - Two small fixes for zcrx - Two small fixes for fdinfo - one is just killing a superflous newline * tag 'io_uring-6.19-20260205' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux: io_uring/fdinfo: be a bit nicer when looping a lot of SQEs/CQEs io_uring/fdinfo: kill unnecessary newline feed in CQE32 printing io_uring/zcrx: fix rq flush locking io_uring/zcrx: fix page array leak
This commit is contained in:
commit
92f778a0b1
2 changed files with 14 additions and 8 deletions
|
|
@ -67,7 +67,7 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m)
|
|||
unsigned int cq_head = READ_ONCE(r->cq.head);
|
||||
unsigned int cq_tail = READ_ONCE(r->cq.tail);
|
||||
unsigned int sq_shift = 0;
|
||||
unsigned int sq_entries;
|
||||
unsigned int cq_entries, sq_entries;
|
||||
int sq_pid = -1, sq_cpu = -1;
|
||||
u64 sq_total_time = 0, sq_work_time = 0;
|
||||
unsigned int i;
|
||||
|
|
@ -146,9 +146,11 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m)
|
|||
}
|
||||
}
|
||||
seq_printf(m, "\n");
|
||||
cond_resched();
|
||||
}
|
||||
seq_printf(m, "CQEs:\t%u\n", cq_tail - cq_head);
|
||||
while (cq_head < cq_tail) {
|
||||
cq_entries = min(cq_tail - cq_head, ctx->cq_entries);
|
||||
for (i = 0; i < cq_entries; i++) {
|
||||
struct io_uring_cqe *cqe;
|
||||
bool cqe32 = false;
|
||||
|
||||
|
|
@ -159,12 +161,15 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, struct seq_file *m)
|
|||
cq_head & cq_mask, cqe->user_data, cqe->res,
|
||||
cqe->flags);
|
||||
if (cqe32)
|
||||
seq_printf(m, ", extra1:%llu, extra2:%llu\n",
|
||||
seq_printf(m, ", extra1:%llu, extra2:%llu",
|
||||
cqe->big_cqe[0], cqe->big_cqe[1]);
|
||||
seq_printf(m, "\n");
|
||||
cq_head++;
|
||||
if (cqe32)
|
||||
if (cqe32) {
|
||||
cq_head++;
|
||||
i++;
|
||||
}
|
||||
cond_resched();
|
||||
}
|
||||
|
||||
if (ctx->flags & IORING_SETUP_SQPOLL) {
|
||||
|
|
|
|||
|
|
@ -197,6 +197,7 @@ static int io_import_umem(struct io_zcrx_ifq *ifq,
|
|||
GFP_KERNEL_ACCOUNT);
|
||||
if (ret) {
|
||||
unpin_user_pages(pages, nr_pages);
|
||||
kvfree(pages);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -1068,8 +1069,6 @@ static unsigned zcrx_parse_rq(netmem_ref *netmem_array, unsigned nr,
|
|||
unsigned int mask = zcrx->rq_entries - 1;
|
||||
unsigned int i;
|
||||
|
||||
guard(spinlock_bh)(&zcrx->rq_lock);
|
||||
|
||||
nr = min(nr, io_zcrx_rqring_entries(zcrx));
|
||||
for (i = 0; i < nr; i++) {
|
||||
struct io_uring_zcrx_rqe *rqe = io_zcrx_get_rqe(zcrx, mask);
|
||||
|
|
@ -1114,9 +1113,11 @@ static int zcrx_flush_rq(struct io_ring_ctx *ctx, struct io_zcrx_ifq *zcrx,
|
|||
return -EINVAL;
|
||||
|
||||
do {
|
||||
nr = zcrx_parse_rq(netmems, ZCRX_FLUSH_BATCH, zcrx);
|
||||
scoped_guard(spinlock_bh, &zcrx->rq_lock) {
|
||||
nr = zcrx_parse_rq(netmems, ZCRX_FLUSH_BATCH, zcrx);
|
||||
zcrx_return_buffers(netmems, nr);
|
||||
}
|
||||
|
||||
zcrx_return_buffers(netmems, nr);
|
||||
total += nr;
|
||||
|
||||
if (fatal_signal_pending(current))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue