-
Notifications
You must be signed in to change notification settings - Fork 16
DLPX-77532 The iscsi estat script needs to be fixed so it reports dat… #69
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does iscsi.st
used by our analytics subsystem have the same bug?
Yes, iscsi.st needs some attention too. I thought I'd review this first and then once an approach is approved apply it to the stbtrace script. |
|
||
u64 *tsp = iscsi_start_ts.lookup((u64 *) &cmd); | ||
if (tsp == 0) { | ||
return (0); // missed issue |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you tried recording that metric to see if we were hitting this case after the initial few seconds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did the experiment @pzakha suggested and didn't see any misses after the startup period.
aae3d8f
to
a761e3d
Compare
The force push made one small change. Fixed a small but obvious error in a conditional. I don't think it really affected the output from the script much as almost all of the time if the code gets to the else if, it will be true.
|
a761e3d
to
a28bd95
Compare
The script had two issues that were fixed.
was called when a request was completed. The function iscsit_response_queue() handles read and writes. It is
simpler conceptually to use this as the completion of the function as the endpoint for read and write latency
calculations. However; it adds some complexity as there is no common hash value to use in the entry and exit
probes. The thread id is the only value that a kretprobe has. So a third probe function is introduced on entry
to iscsit_response_queue() to get the entry timestamp hashed by the cmd pointer and rehash it under the thread id.
There are known issues with standard deviation that will be addressed separately.
In testing it produced consistent results that matched the zvol estat output for different sizes. Here is one example with an 80/20 read/write work and 1M size operations.
ISCSI
ZVOL