{"action":"opened","issue":{"url":"https://api.github.com/repos/accelio/accelio/issues/44","labels_url":"https://api.github.com/repos/accelio/accelio/issues/44/labels{/name}","comments_url":"https://api.github.com/repos/accelio/accelio/issues/44/comments","events_url":"https://api.github.com/repos/accelio/accelio/issues/44/events","html_url":"https://github.com/accelio/accelio/issues/44","id":98791831,"number":44,"title":"A question regarding phantom task accounting","user":{"login":"alex-friedman","id":10245821,"avatar_url":"https://avatars.githubusercontent.com/u/10245821?v=3","gravatar_id":"","url":"https://api.github.com/users/alex-friedman","html_url":"https://github.com/alex-friedman","followers_url":"https://api.github.com/users/alex-friedman/followers","following_url":"https://api.github.com/users/alex-friedman/following{/other_user}","gists_url":"https://api.github.com/users/alex-friedman/gists{/gist_id}","starred_url":"https://api.github.com/users/alex-friedman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alex-friedman/subscriptions","organizations_url":"https://api.github.com/users/alex-friedman/orgs","repos_url":"https://api.github.com/users/alex-friedman/repos","events_url":"https://api.github.com/users/alex-friedman/events{/privacy}","received_events_url":"https://api.github.com/users/alex-friedman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-03T16:47:42Z","updated_at":"2015-08-03T16:47:42Z","closed_at":null,"body":"Accelio defines two constants as the maximum allowed work requests for the RDMA HW. These are `MAX_SEND_WR` and `MAX_RECV_WR`. When a client initiates an RDMA request which requires an sg-list with more than one entry (i.e. when the remote or local data-resident memories are fragmented), accelio splits the request into several WRs, creating a list of concatenated WRs (called phantom tasks) and only accounting for the \"root\" request in the `reqs_in_flight_nr` or `rsps_in_flight_nr` counters. It is notable that phantom requests are moved to the `in_flight_list` although they were not accounted for.\r\nThe lack of accountability for phantom tasks makes `verify_req_send_limits` skip the actual check for WRs usage and may lead to a depletion of the maximum allowed WRs (both on the receiving and the sending sides).\r\nOur question is - shouldn't the phantom tasks be accounted and checked in verify_req_send_limits as well?"}}