RE: [PATCH v2 2/4] rsockets: retry for completion events upon interruption

Sreedhar Kodali
2014-09-18T11:00:16Z

On 2014-09-17 21:57, Hefty, Sean wrote:
>> +resume_get_cq_event:
>> ret = ibv_get_cq_event(rs->cm_id->recv_cq_channel, &cq, &context);
>> if (!ret) {
>> ibv_ack_cq_events(rs->cm_id->recv_cq, 1);
>> rs->cq_armed = 0;
>> + } else if (restart_onintr == 1 && errno == EINTR) {
>> + errno = 0;
>> + goto resume_get_cq_event;
>
> I'm not convinced that this is desirable behavior. If the thread
> waiting for an event was interrupted, why does it make sense to ignore
> the interrupt and return to waiting? Couldn't the app detect the
> return code and call back into rsockets in this case?
>
> If this is desired behavior, why add a config option?
>
> - Sean

Hi Sean,

I have reworked the patch by dropping config option. Also, we no
longer resume event listening on interruption. Instead, we desist
from changing state to error upon interruption so the caller can
choose appropriate action. Please see v5 of the patch.

Thank You.

- Sreedhar