blob: 40f854fd268de430bd57a5349ce6db05fa73f76b [file] [log] [blame]
Jens Axboe82bbab52021-08-14 09:00:33 -06001/* SPDX-License-Identifier: MIT */
2/*
3 * Test if entering with nothing to submit/wait for SQPOLL returns an error.
4 */
5#include <stdio.h>
6#include <errno.h>
7#include <string.h>
8
9#include "liburing.h"
10#include "helpers.h"
11#include "../src/syscall.h"
12
13int main(int argc, char *argv[])
14{
15 struct io_uring_params p = {};
16 struct io_uring ring;
17 int ret;
18
19 if (argc > 1)
20 return 0;
21
22 p.flags = IORING_SETUP_SQPOLL;
23 p.sq_thread_idle = 100;
24
25 ret = t_create_ring_params(1, &ring, &p);
26 if (ret == T_SETUP_SKIP)
27 return 0;
28 else if (ret < 0)
29 goto err;
30
31 ret = __sys_io_uring_enter(ring.ring_fd, 0, 0, 0, NULL);
32 if (ret < 0) {
33 int __e = errno;
34
Guillem Jover84875f42021-09-13 12:40:46 +020035 if (__e == EOWNERDEAD)
36 fprintf(stderr, "sqe submit unexpected failure due old kernel bug: %s\n", strerror(__e));
37 else
38 fprintf(stderr, "sqe submit unexpected failure: %s\n", strerror(__e));
Jens Axboeaefd23d2021-09-07 12:49:36 -060039 goto err;
Jens Axboe82bbab52021-08-14 09:00:33 -060040 }
41
Jens Axboeaefd23d2021-09-07 12:49:36 -060042 return 0;
Jens Axboe82bbab52021-08-14 09:00:33 -060043err:
44 return 1;
45}