{"action":"created","comment":{"url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/comments/62511522","id":62511522,"diff_hunk":"@@ -446,12 +446,12 @@ static int map_insert(struct gnix_fid_av *int_av, const void *addr,\n \n \t\t((struct gnix_address *)fi_addr)[i] = temp.gnix_addr;\n \t\tthe_entry =  &blk->base[i];\n-\t\tmemcpy(&the_entry->gnix_addr, &temp.gnix_addr,\n-\t\t       sizeof(struct gnix_address));\n+\t\tthe_entry->gnix_addr.device_addr = temp.gnix_addr.device_addr;\n+\t\tthe_entry->gnix_addr.cdm_id = temp.gnix_addr.cdm_id;","path":"prov/gni/src/gnix_av.c","position":7,"original_position":7,"commit_id":"abc41c6cb76334b1f6e1fdc1a24af7a70c343be6","original_commit_id":"abc41c6cb76334b1f6e1fdc1a24af7a70c343be6","user":{"login":"jswaro","id":10633422,"avatar_url":"https://avatars.githubusercontent.com/u/10633422?v=3","gravatar_id":"","url":"https://api.github.com/users/jswaro","html_url":"https://github.com/jswaro","followers_url":"https://api.github.com/users/jswaro/followers","following_url":"https://api.github.com/users/jswaro/following{/other_user}","gists_url":"https://api.github.com/users/jswaro/gists{/gist_id}","starred_url":"https://api.github.com/users/jswaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jswaro/subscriptions","organizations_url":"https://api.github.com/users/jswaro/orgs","repos_url":"https://api.github.com/users/jswaro/repos","events_url":"https://api.github.com/users/jswaro/events{/privacy}","received_events_url":"https://api.github.com/users/jswaro/received_events","type":"User","site_admin":false},"body":"Wouldn't it be possible to do the following?\r\n\r\n```C \r\nthe_entry->gnix_addr = temp.gnix_addr;\r\n```","created_at":"2016-05-09T14:51:48Z","updated_at":"2016-05-09T14:51:48Z","html_url":"https://github.com/ofi-cray/libfabric-cray/pull/812#discussion_r62511522","pull_request_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812","_links":{"self":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/comments/62511522"},"html":{"href":"https://github.com/ofi-cray/libfabric-cray/pull/812#discussion_r62511522"},"pull_request":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812"}}},"pull_request":{"url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812","id":69194463,"html_url":"https://github.com/ofi-cray/libfabric-cray/pull/812","diff_url":"https://github.com/ofi-cray/libfabric-cray/pull/812.diff","patch_url":"https://github.com/ofi-cray/libfabric-cray/pull/812.patch","issue_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues/812","number":812,"state":"open","locked":false,"title":"prov/gni: Replaced appropriate calls to memcpy.","user":{"login":"e-harvey","id":7410674,"avatar_url":"https://avatars.githubusercontent.com/u/7410674?v=3","gravatar_id":"","url":"https://api.github.com/users/e-harvey","html_url":"https://github.com/e-harvey","followers_url":"https://api.github.com/users/e-harvey/followers","following_url":"https://api.github.com/users/e-harvey/following{/other_user}","gists_url":"https://api.github.com/users/e-harvey/gists{/gist_id}","starred_url":"https://api.github.com/users/e-harvey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/e-harvey/subscriptions","organizations_url":"https://api.github.com/users/e-harvey/orgs","repos_url":"https://api.github.com/users/e-harvey/repos","events_url":"https://api.github.com/users/e-harvey/events{/privacy}","received_events_url":"https://api.github.com/users/e-harvey/received_events","type":"User","site_admin":false},"body":"- During profiling the gni provider it was found that ~1% of the time spent for the osu_mbw_mr tests were spent in calls to memcpy.\r\n\t  \r\n- Replacing memcpy calls with assignments has reduced the latency in the osu_latency tests by ~35ns.\r\n\t  \r\n- During testing this change it was found that, when possible, initilizing individual structure members one at a time is faster than assigning the entire structure to another, entire, structure.\r\n\r\n- The pack/unpack functions in gnix_vc.c have been marked with the inline keyword.\r\n\r\n\r\nAt c0c2288a\r\n```\r\n# OSU MPI Latency Test v5.0\r\n# Size          Latency (us)\r\n0                       2.84\r\n1                       2.85\r\n2                       2.85\r\n4                       2.84\r\n8                       2.84\r\n16                      2.84\r\n32                      2.85\r\n64                      2.85\r\n128                     2.85\r\n256                     2.88\r\n512                     2.91\r\n1024                    3.21\r\n2048                    3.55\r\n4096                    4.33\r\n8192                    5.96\r\n16384                  17.85\r\n32768                  19.44\r\n65536                  22.73\r\n131072                 29.31\r\n262144                 42.60\r\n524288                 69.08\r\n1048576               122.28\r\n2097152               247.01\r\n4194304               487.29\r\n```\r\n\r\nWith the changed proposed in this PR\r\n```\r\n# OSU MPI Latency Test v5.0\r\n# Size          Latency (us)\r\n0                       2.81\r\n1                       2.81\r\n2                       2.80\r\n4                       2.80\r\n8                       2.81\r\n16                      2.80\r\n32                      2.81\r\n64                      2.81\r\n128                     2.81\r\n256                     2.84\r\n512                     2.87\r\n1024                    3.19\r\n2048                    3.52\r\n4096                    4.23\r\n8192                    5.88\r\n16384                  17.72\r\n32768                  19.17\r\n65536                  22.42\r\n131072                 28.99\r\n262144                 42.30\r\n524288                 68.80\r\n1048576               121.70\r\n2097152               245.91\r\n4194304               487.22\r\n```\r\nFixes #800 \r\n@ztiffany @hppritcha ","created_at":"2016-05-06T18:55:44Z","updated_at":"2016-05-09T14:51:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7812225d5151cde46b5cf8daee17e0d8ca3802e2","assignee":null,"milestone":{"url":"https://api.github.com/repos/ofi-cray/libfabric-cray/milestones/10","html_url":"https://github.com/ofi-cray/libfabric-cray/milestones/1.4","labels_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/milestones/10/labels","id":1687986,"number":10,"title":"1.4","description":"1.4 upstream milestone","creator":{"login":"hppritcha","id":7818666,"avatar_url":"https://avatars.githubusercontent.com/u/7818666?v=3","gravatar_id":"","url":"https://api.github.com/users/hppritcha","html_url":"https://github.com/hppritcha","followers_url":"https://api.github.com/users/hppritcha/followers","following_url":"https://api.github.com/users/hppritcha/following{/other_user}","gists_url":"https://api.github.com/users/hppritcha/gists{/gist_id}","starred_url":"https://api.github.com/users/hppritcha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hppritcha/subscriptions","organizations_url":"https://api.github.com/users/hppritcha/orgs","repos_url":"https://api.github.com/users/hppritcha/repos","events_url":"https://api.github.com/users/hppritcha/events{/privacy}","received_events_url":"https://api.github.com/users/hppritcha/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":18,"state":"open","created_at":"2016-04-06T18:47:01Z","updated_at":"2016-05-09T07:38:46Z","due_on":"2016-06-04T06:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812/commits","review_comments_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812/comments","review_comment_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues/812/comments","statuses_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/statuses/abc41c6cb76334b1f6e1fdc1a24af7a70c343be6","head":{"label":"e-harvey:issue800","ref":"issue800","sha":"abc41c6cb76334b1f6e1fdc1a24af7a70c343be6","user":{"login":"e-harvey","id":7410674,"avatar_url":"https://avatars.githubusercontent.com/u/7410674?v=3","gravatar_id":"","url":"https://api.github.com/users/e-harvey","html_url":"https://github.com/e-harvey","followers_url":"https://api.github.com/users/e-harvey/followers","following_url":"https://api.github.com/users/e-harvey/following{/other_user}","gists_url":"https://api.github.com/users/e-harvey/gists{/gist_id}","starred_url":"https://api.github.com/users/e-harvey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/e-harvey/subscriptions","organizations_url":"https://api.github.com/users/e-harvey/orgs","repos_url":"https://api.github.com/users/e-harvey/repos","events_url":"https://api.github.com/users/e-harvey/events{/privacy}","received_events_url":"https://api.github.com/users/e-harvey/received_events","type":"User","site_admin":false},"repo":{"id":41583014,"name":"libfabric-cray","full_name":"e-harvey/libfabric-cray","owner":{"login":"e-harvey","id":7410674,"avatar_url":"https://avatars.githubusercontent.com/u/7410674?v=3","gravatar_id":"","url":"https://api.github.com/users/e-harvey","html_url":"https://github.com/e-harvey","followers_url":"https://api.github.com/users/e-harvey/followers","following_url":"https://api.github.com/users/e-harvey/following{/other_user}","gists_url":"https://api.github.com/users/e-harvey/gists{/gist_id}","starred_url":"https://api.github.com/users/e-harvey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/e-harvey/subscriptions","organizations_url":"https://api.github.com/users/e-harvey/orgs","repos_url":"https://api.github.com/users/e-harvey/repos","events_url":"https://api.github.com/users/e-harvey/events{/privacy}","received_events_url":"https://api.github.com/users/e-harvey/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/e-harvey/libfabric-cray","description":"Open Fabric Interfaces","fork":true,"url":"https://api.github.com/repos/e-harvey/libfabric-cray","forks_url":"https://api.github.com/repos/e-harvey/libfabric-cray/forks","keys_url":"https://api.github.com/repos/e-harvey/libfabric-cray/keys{/key_id}","collaborators_url":"https://api.github.com/repos/e-harvey/libfabric-cray/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/e-harvey/libfabric-cray/teams","hooks_url":"https://api.github.com/repos/e-harvey/libfabric-cray/hooks","issue_events_url":"https://api.github.com/repos/e-harvey/libfabric-cray/issues/events{/number}","events_url":"https://api.github.com/repos/e-harvey/libfabric-cray/events","assignees_url":"https://api.github.com/repos/e-harvey/libfabric-cray/assignees{/user}","branches_url":"https://api.github.com/repos/e-harvey/libfabric-cray/branches{/branch}","tags_url":"https://api.github.com/repos/e-harvey/libfabric-cray/tags","blobs_url":"https://api.github.com/repos/e-harvey/libfabric-cray/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/e-harvey/libfabric-cray/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/e-harvey/libfabric-cray/git/refs{/sha}","trees_url":"https://api.github.com/repos/e-harvey/libfabric-cray/git/trees{/sha}","statuses_url":"https://api.github.com/repos/e-harvey/libfabric-cray/statuses/{sha}","languages_url":"https://api.github.com/repos/e-harvey/libfabric-cray/languages","stargazers_url":"https://api.github.com/repos/e-harvey/libfabric-cray/stargazers","contributors_url":"https://api.github.com/repos/e-harvey/libfabric-cray/contributors","subscribers_url":"https://api.github.com/repos/e-harvey/libfabric-cray/subscribers","subscription_url":"https://api.github.com/repos/e-harvey/libfabric-cray/subscription","commits_url":"https://api.github.com/repos/e-harvey/libfabric-cray/commits{/sha}","git_commits_url":"https://api.github.com/repos/e-harvey/libfabric-cray/git/commits{/sha}","comments_url":"https://api.github.com/repos/e-harvey/libfabric-cray/comments{/number}","issue_comment_url":"https://api.github.com/repos/e-harvey/libfabric-cray/issues/comments{/number}","contents_url":"https://api.github.com/repos/e-harvey/libfabric-cray/contents/{+path}","compare_url":"https://api.github.com/repos/e-harvey/libfabric-cray/compare/{base}...{head}","merges_url":"https://api.github.com/repos/e-harvey/libfabric-cray/merges","archive_url":"https://api.github.com/repos/e-harvey/libfabric-cray/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/e-harvey/libfabric-cray/downloads","issues_url":"https://api.github.com/repos/e-harvey/libfabric-cray/issues{/number}","pulls_url":"https://api.github.com/repos/e-harvey/libfabric-cray/pulls{/number}","milestones_url":"https://api.github.com/repos/e-harvey/libfabric-cray/milestones{/number}","notifications_url":"https://api.github.com/repos/e-harvey/libfabric-cray/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/e-harvey/libfabric-cray/labels{/name}","releases_url":"https://api.github.com/repos/e-harvey/libfabric-cray/releases{/id}","deployments_url":"https://api.github.com/repos/e-harvey/libfabric-cray/deployments","created_at":"2015-08-29T06:19:51Z","updated_at":"2016-01-15T22:09:33Z","pushed_at":"2016-05-06T18:49:01Z","git_url":"git://github.com/e-harvey/libfabric-cray.git","ssh_url":"git@github.com:e-harvey/libfabric-cray.git","clone_url":"https://github.com/e-harvey/libfabric-cray.git","svn_url":"https://github.com/e-harvey/libfabric-cray","homepage":"http://ofiwg.github.io/libfabric/","size":12994,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ofi-cray:master","ref":"master","sha":"877fa644263dbf5c8306747aefa66b5efbc6eb11","user":{"login":"ofi-cray","id":10637979,"avatar_url":"https://avatars.githubusercontent.com/u/10637979?v=3","gravatar_id":"","url":"https://api.github.com/users/ofi-cray","html_url":"https://github.com/ofi-cray","followers_url":"https://api.github.com/users/ofi-cray/followers","following_url":"https://api.github.com/users/ofi-cray/following{/other_user}","gists_url":"https://api.github.com/users/ofi-cray/gists{/gist_id}","starred_url":"https://api.github.com/users/ofi-cray/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofi-cray/subscriptions","organizations_url":"https://api.github.com/users/ofi-cray/orgs","repos_url":"https://api.github.com/users/ofi-cray/repos","events_url":"https://api.github.com/users/ofi-cray/events{/privacy}","received_events_url":"https://api.github.com/users/ofi-cray/received_events","type":"Organization","site_admin":false},"repo":{"id":29607348,"name":"libfabric-cray","full_name":"ofi-cray/libfabric-cray","owner":{"login":"ofi-cray","id":10637979,"avatar_url":"https://avatars.githubusercontent.com/u/10637979?v=3","gravatar_id":"","url":"https://api.github.com/users/ofi-cray","html_url":"https://github.com/ofi-cray","followers_url":"https://api.github.com/users/ofi-cray/followers","following_url":"https://api.github.com/users/ofi-cray/following{/other_user}","gists_url":"https://api.github.com/users/ofi-cray/gists{/gist_id}","starred_url":"https://api.github.com/users/ofi-cray/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofi-cray/subscriptions","organizations_url":"https://api.github.com/users/ofi-cray/orgs","repos_url":"https://api.github.com/users/ofi-cray/repos","events_url":"https://api.github.com/users/ofi-cray/events{/privacy}","received_events_url":"https://api.github.com/users/ofi-cray/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ofi-cray/libfabric-cray","description":"Open Fabric Interfaces","fork":true,"url":"https://api.github.com/repos/ofi-cray/libfabric-cray","forks_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/forks","keys_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/teams","hooks_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/hooks","issue_events_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues/events{/number}","events_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/events","assignees_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/assignees{/user}","branches_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/branches{/branch}","tags_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/tags","blobs_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/git/refs{/sha}","trees_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/statuses/{sha}","languages_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/languages","stargazers_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/stargazers","contributors_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/contributors","subscribers_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/subscribers","subscription_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/subscription","commits_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/commits{/sha}","git_commits_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/git/commits{/sha}","comments_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/comments{/number}","issue_comment_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues/comments{/number}","contents_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/contents/{+path}","compare_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/merges","archive_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/downloads","issues_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues{/number}","pulls_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls{/number}","milestones_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/milestones{/number}","notifications_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/labels{/name}","releases_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/releases{/id}","deployments_url":"https://api.github.com/repos/ofi-cray/libfabric-cray/deployments","created_at":"2015-01-21T19:30:52Z","updated_at":"2016-01-13T18:57:54Z","pushed_at":"2016-05-07T16:05:36Z","git_url":"git://github.com/ofi-cray/libfabric-cray.git","ssh_url":"git@github.com:ofi-cray/libfabric-cray.git","clone_url":"https://github.com/ofi-cray/libfabric-cray.git","svn_url":"https://github.com/ofi-cray/libfabric-cray","homepage":"http://ofiwg.github.io/libfabric/","size":15709,"stargazers_count":5,"watchers_count":5,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7,"mirror_url":null,"open_issues_count":66,"forks":7,"open_issues":66,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812"},"html":{"href":"https://github.com/ofi-cray/libfabric-cray/pull/812"},"issue":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues/812"},"comments":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/issues/812/comments"},"review_comments":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812/comments"},"review_comment":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/pulls/812/commits"},"statuses":{"href":"https://api.github.com/repos/ofi-cray/libfabric-cray/statuses/abc41c6cb76334b1f6e1fdc1a24af7a70c343be6"}}}}