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

couple fixes for block and md helpers #77

Merged
merged 5 commits into from
Mar 29, 2024

Conversation

biger410
Copy link
Member

Couple fixes was added to make block and md helpers working better with upstream which will benefit future uek. Beside that one fix was adding "cpu" to inflight io output to help tell whether the cpu that request was issued from is in offline status.

Support new requet op type which was introduced by this commit:
commit ff07a02e9e8e("treewide: Rename enum req_opf into enum req_op")
Also just dump cmd_flags in binary mode if no enum type was used
with it.

Signed-off-by: Junxiao Bi <[email protected]>
rq.part is set only when doing IO statistics, if RQF_IO_STAT
is not set for the request, we got the target disk by scanning
all disks to match request_queue.

Signed-off-by: Junxiao Bi <[email protected]>
Since commit 568f27006577("blk-mq: centralise related handling
into blk_mq_get_driver_tag") was merged in v5.10, for requests
that are not yet dispatched, like those in the plug list, we
should get from "tags.static_rqs", otherwise we may get a wrong
request. To resolve this, first check request from "tags.rqs"
is valid or not, if not get it from "tags.static_rqs".

Signed-off-by: Junxiao Bi <[email protected]>
commit 72adae23a72c("md: Change active_io to percpu") which was
introduced by v6.3 changed mddev.active_io from type atomic_t
to percpu_ref.

Signed-off-by: Junxiao Bi <[email protected]>
There were bugs which caused some inflight io requests was not drained
when offline cpu. Add cpu filed in the output to show that.

Signed-off-by: Junxiao Bi <[email protected]>
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Mar 27, 2024
Copy link
Member

@brenns10 brenns10 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, all these fixes look well done. Since some of them are for UEK7, which we have in the test suite, yet no tests were failing, do you have any ideas of ways that we could test these helpers better?

@brenns10 brenns10 merged commit b2a0e51 into oracle-samples:main Mar 29, 2024
5 checks passed
@biger410
Copy link
Member Author

Thanks, all these fixes look well done. Since some of them are for UEK7, which we have in the test suite, yet no tests were failing, do you have any ideas of ways that we could test these helpers better?

I think our CI test did great job. The 1st and 4th commits are for kernel v6.x, so only if CI test supports LUCI, that can be detected. The 2nd commit is for a special upstream kernel build which didn't have RQF_IO_STAT configured, this will not happen for uek. 3rd patch is a corner case which is only for io request in the plug list, it's other kernel bug which caused io pending in that list, it's very hard to get a vmcore with io in that list if no that bug. The 5th commit is adding a new "cpu" field to show cpu status which is triggered by a customer issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants