-
Let's say I have several IO operations in flight A & B. Let's say they are all ready to read. My CQ contains A and B and I iterate over CQEs using On processing A, let's say I cancel operation B and B's On processing B, will it always be marked as cancelled, or is are there some cases where the CQ would not be updated in time/at all? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
The way you are describing it, or at least the way I'm reading it, both A and B already completed. If they are in the CQ ring, that must be the case. Which means that if you issue a cancelation for B while processing A, then that cancelation will return |
Beta Was this translation helpful? Give feedback.
-
Just to make sure I understand correctly, case 3 will happen if the request has already finished, right? That means a CQE was already posted by the kernel and will have been handled by the app. Cases 1 and 2 will generate a CQE with either a |
Beta Was this translation helpful? Give feedback.
The way you are describing it, or at least the way I'm reading it, both A and B already completed. If they are in the CQ ring, that must be the case. Which means that if you issue a cancelation for B while processing A, then that cancelation will return
-ENOENT
as the request is no longer active/pending.