ofiwg / libfabric

Open Fabric Interfaces
http://libfabric.org/
Other
527 stars 369 forks source link

Is fi_cntr_read expected to progress the EP ? #10145

Closed shijin-aws closed 5 days ago

shijin-aws commented 6 days ago

Is fi_cntr_read expected to progress the EP (like fi_cq_read?) if the provider has progress modes as manual?

The man page doesn't say it clearly to me. I remember @aingerson told me earlier that fi_cntr_read isn't expected to progress the ep. But it seems to me both util_cntr https://github.com/ofiwg/libfabric/blob/main/prov/util/src/util_cntr.c#L72-L80 and the fabtests assume that it does the progress https://github.com/ofiwg/libfabric/blob/main/fabtests/common/shared.c#L2706C61-L2728

shijin-aws commented 5 days ago

Got help from @aingerson offline on the man page clarification:

This progress model indicates that the provider requires the use of an application thread to complete an asynchronous request. When manual progress is set, the provider will attempt to advance an asynchronous operation forward when the application attempts to wait on or read an event queue, completion queue, or counter where the completed operation will be reported. Progress also occurs when the application processes a poll or wait set that has been associated with the event or completion queue.

So the progress is required for cntr_read as well when progress model is manual.