Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write tests for preadv2() #286

Open
metan-ucw opened this issue May 10, 2018 · 3 comments
Open

Write tests for preadv2() #286

metan-ucw opened this issue May 10, 2018 · 3 comments

Comments

@metan-ucw
Copy link
Member

We do have tests for preadv() already so the missing coverage is:

  • using -1 for offset causes preadv2() to use current file offset
  • RWF_NOWAIT causes the call to return EAGAIN in a case that we would have to wait for the data
  • RWF_HIPRI causes kernel to do high priority read, currently only usable with O_DIRECT
@amannch
Copy link
Contributor

amannch commented Mar 14, 2019

Started working on that

using -1 for offset causes preadv2() to use current file offset

This seems to be implemented already, I'll focus on the other two points

Edit:

RWF_NOWAIT causes the call to return EAGAIN in a case that we would have to wait for the data

There's already a patch in the mailing list for that

RWF_HIPRI causes kernel to do high priority read, currently only usable with O_DIRECT

Missing the hardware to test block device polling, someone else has to work on that

@metan-ucw
Copy link
Member Author

Just pushed the basic RFW_NOWAIT test. Quoting Amir on the LTP ML "There are several other ways to get EAGAIN, like DIO read/write when page cache is populated." so there is possibly a few more ways how to increase the coverage.

@coolgw
Copy link
Contributor

coolgw commented Jun 5, 2024

Just pushed the basic RFW_NOWAIT test. Quoting Amir on the LTP ML "There are several other ways to get EAGAIN, like DIO read/write when page cache is populated." so there is possibly a few more ways how to increase the coverage.

Simple do DIO read can not trigger EAGAIN after my sanity check, so i think I/O should busy also.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants