Age | Commit message (Collapse) | Author |
|
Tries to cover a wide variety of things that could go wrong.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
This missing define causes build failures on s390:
src/include/liburing.h:298: undefined reference to `io_uring_smp_mb'
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Cole Robinson and Fabio Valenti made a number of suggestions for the
.spec file:
https://bugzilla.redhat.com/show_bug.cgi?id=1766157
* Release should be Release: 1%{?dist} so the .fcXX bits get appended
to the version string
* Source: should be a pointer to the upstream URL that hosts the
release. In this case I think it should be
https://github.com/axboe/liburing/archive/...
the ending weirdness is due to github renaming the archive strangely.
You might need to pass '-n %{name}-%{name}-%{version}' to
%setup/%autosetup to tell it what the extracted archive name is
* The %defattr lines should be removed:
https://pagure.io/packaging-committee/issue/77
* The Group: lines should be removed
* All the BuildRoot and RPM_BUILD_ROOT lines should be removed. %clean
should be removed
* The ./configure line should be replaced with just %configure
* The 'make' call should be %make_build
* The 'make install' call should be %make_install
* The %pre and %post sections can be entirely removed, ldconfig is
done automatically:
https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
* The devel package 'Requires: liburing' should instead be: Requires:
%{name} = %{version}-%{release}
* The devel package should also have Requires: pkgconfig
* I think all the %attr usage can be entirely removed, unless they are
doing something that the build system isn't doing.
* The Provides: liburing.so.1 shouldn't be necessary, I'm pretty sure
RPM automatically adds annotations like this
* Replace %setup with %autosetup, which will automatically apply any
listed Patch: in the spec if anything is backported in the future.
It's a small maintenace optimization
These changes work on Fedora 31 and openSUSE Leap 15.1. Therefore they
are likely to work on other rpm-based distributions too.
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Tested-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
The version number is extracted from the .spec file. Make .pc depend on
.spec so that VERSION variable substitutions are always up-to-date.
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Some printouts were misleading, probably a c/p bug.
Signed-off-by: Hrvoje Zeba <zeba.hrvoje@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Small fix to make sure correct ts structure is filled with correct values.
Signed-off-by: Hrvoje Zeba <zeba.hrvoje@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
submitted is always going to be non-zero, since we check if head and
tail are different at the start of the function.
Signed-off-by: Kornilios Kourtis <kornilios@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
ring->sq.kflags is set by the kernel. Ensure the compiler always loads
the value from memory when doing the check.
Signed-off-by: Kornilios Kourtis <kornilios@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Fix the following errors when make:
error: ‘for’ loop initial declarations are only allowed in C99 mode
error: redeclaration of ‘i’ with no linkage
Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
This tests normal reads and writes mixed with IO cancellations.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Tests a mixed of buffered, direct, SQTHREAD, fixed buffers.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Add a test case that registers 8K files (sparse), then does a file set
update of a random file late in the set and performs some IO to it to
ensure it works.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
1. test user_data integrity with cancelled links
2. test the whole link is cancelled by sq_thread
3. hunging io_uring based on koverflow and kdropped
Be aware, that this test may leave unkillable user process, or
unstopped actively polling kthread.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Split the recv part in prep, sync, then receive. This should make it
more reliable, hopefully.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
We may never get the data from the socket read, and this requires
someone to SIGINT the test. Let's quit after 1 second if we haven't
received anything. If the test is actually hung, the alive worker
detection will catch it.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
We still collect all of them, but no point spewing during the run.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
This will exit with 0 in both the normal and failure case, but
the failure case will leave workers idle once done. We check
for that in runtests.sh now.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
That usually indicates a hang issue where we don't properly exit.
Log is as _maybe_ failed.
Note that if you see maybe failed, then the last in the list is
likely the culprit.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Add multi timeout reqs test case which want to test submitting timeout
reqs with different count number, check the return sequence and the
status of each req.
Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Add multi timeout reqs test case which want to test submitting timeout
reqs with different timeout value, check the return sequence and the
status of each req.
Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
We use 1s for a lot of testing, shrink it down to 200 msec to allow
it to run a bit quicker.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Before 5da0fb1ab34c ("io_uring: consider the overflow of sequence for
timeout req"). We can meet some situation like below:
1. setup
2. prepare 4 timeout req which expected count is 1,1,2,UINT_MAX, and the
sequence of this 4 requests will be 1,2,4,2, this 4 requests will not
lead the change of cached_cq_tail and sq_dropped until the timeout
really happened. So the tail_index in io_timeout will still be 0.
3. based on the above and before this patch, the order of timeout_list
will be req1->req2->req4->req3, which the right order should be
req1->req2->req3->req4.
4. setup two nop requests. And the timeout requests will return
correctly with the patch.
Add this testcase to cover it.
Signed-off-by: yangerkun <yangerkun@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
- Don't re-init the io_uring
- SQPOLL can fail with -EBADF or -EINVAL, depends on which path the
sqe takes.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Add the command opcode, and add two test cases for it.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Use stderr always, and include the function name.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Not in a released version yet, plan for using the flags since we
already have the IORING_TIMEOUT_ABS flag.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Anything that causes an async punt after a fileset has been
unregistered will cause a NULL pointer deref. Add a test case
for that. We use fsync() since that will always need an async
punt.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Interface to the new file set update functionality.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|