{"action":"created","issue":{"url":"https://api.github.com/repos/ceph/ceph/issues/4132","labels_url":"https://api.github.com/repos/ceph/ceph/issues/4132/labels{/name}","comments_url":"https://api.github.com/repos/ceph/ceph/issues/4132/comments","events_url":"https://api.github.com/repos/ceph/ceph/issues/4132/events","html_url":"https://github.com/ceph/ceph/pull/4132","id":63425149,"number":4132,"title":"erasure code: shec performance optimization","user":{"login":"t-miyamae","id":5377633,"avatar_url":"https://avatars.githubusercontent.com/u/5377633?v=3","gravatar_id":"","url":"https://api.github.com/users/t-miyamae","html_url":"https://github.com/t-miyamae","followers_url":"https://api.github.com/users/t-miyamae/followers","following_url":"https://api.github.com/users/t-miyamae/following{/other_user}","gists_url":"https://api.github.com/users/t-miyamae/gists{/gist_id}","starred_url":"https://api.github.com/users/t-miyamae/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/t-miyamae/subscriptions","organizations_url":"https://api.github.com/users/t-miyamae/orgs","repos_url":"https://api.github.com/users/t-miyamae/repos","events_url":"https://api.github.com/users/t-miyamae/events{/privacy}","received_events_url":"https://api.github.com/users/t-miyamae/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ceph/ceph/labels/core","name":"core","color":"0052cc"},{"url":"https://api.github.com/repos/ceph/ceph/labels/feature","name":"feature","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"dachary","id":433594,"avatar_url":"https://avatars.githubusercontent.com/u/433594?v=3","gravatar_id":"","url":"https://api.github.com/users/dachary","html_url":"https://github.com/dachary","followers_url":"https://api.github.com/users/dachary/followers","following_url":"https://api.github.com/users/dachary/following{/other_user}","gists_url":"https://api.github.com/users/dachary/gists{/gist_id}","starred_url":"https://api.github.com/users/dachary/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dachary/subscriptions","organizations_url":"https://api.github.com/users/dachary/orgs","repos_url":"https://api.github.com/users/dachary/repos","events_url":"https://api.github.com/users/dachary/events{/privacy}","received_events_url":"https://api.github.com/users/dachary/received_events","type":"User","site_admin":false},"milestone":null,"comments":8,"created_at":"2015-03-21T16:31:35Z","updated_at":"2015-05-09T12:48:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ceph/ceph/pulls/4132","html_url":"https://github.com/ceph/ceph/pull/4132","diff_url":"https://github.com/ceph/ceph/pull/4132.diff","patch_url":"https://github.com/ceph/ceph/pull/4132.patch"},"body":"Optimize shec's cpu utilization by caching decoding matrix and using intel sse4\r\n\r\nThis pull request is a split of #4083.\r\nHope these commits will be backported to a hammer point release in the near future.\r\n\r\nSigned-off-by: Takeshi Miyamae miyamae.takeshi@jp.fujitsu.com"},"comment":{"url":"https://api.github.com/repos/ceph/ceph/issues/comments/100476776","html_url":"https://github.com/ceph/ceph/pull/4132#issuecomment-100476776","issue_url":"https://api.github.com/repos/ceph/ceph/issues/4132","id":100476776,"user":{"login":"dachary","id":433594,"avatar_url":"https://avatars.githubusercontent.com/u/433594?v=3","gravatar_id":"","url":"https://api.github.com/users/dachary","html_url":"https://github.com/dachary","followers_url":"https://api.github.com/users/dachary/followers","following_url":"https://api.github.com/users/dachary/following{/other_user}","gists_url":"https://api.github.com/users/dachary/gists{/gist_id}","starred_url":"https://api.github.com/users/dachary/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dachary/subscriptions","organizations_url":"https://api.github.com/users/dachary/orgs","repos_url":"https://api.github.com/users/dachary/repos","events_url":"https://api.github.com/users/dachary/events{/privacy}","received_events_url":"https://api.github.com/users/dachary/received_events","type":"User","site_admin":false},"created_at":"2015-05-09T12:48:22Z","updated_at":"2015-05-09T12:48:22Z","body":"From what I understand of getDecodingTableFromCache / putDecodingTableFromCache, you need to have more parameters than what ISA has ( matrixtype, k, m) and the DecodingCacheParameter seems a good idea to encapsulate them. Instead of having\r\n\r\n<pre>\r\n+  bool getDecodingTableFromCache(int* matrix,\r\n+\t\t\t\t int* dm_ids,\r\n+\t\t\t\t int* minimum,\r\n+                                 int technique,\r\n+                                 int k,\r\n+                                 int m,\r\n+\t\t\t\t int c,\r\n+\t\t\t\t int w,\r\n+\t\t\t\t int* erased,\r\n+\t\t\t\t int* avails);\r\n</pre>\r\nwhich is the equivalent of the ISA table cache function\r\n<pre>\r\n  bool getDecodingTableFromCache(std::string &signature,\r\n                                 unsigned char* &table,\r\n                                 int matrixtype,\r\n                                 int k,\r\n                                 int m);\r\n</pre>\r\nyou could have something like\r\n<pre>\r\n  bool getDecodingTableFromCache(std::string &signature,\r\n                                 unsigned char* &table,\r\n                                 DecodingCacheParameter& parameter);\r\n</pre>\r\nIn other word, make it so getDecodingTableFromCache and putDecodingTableFromCache do not have a hard coded list of input/output arguments but an input / output class. \r\n\r\nWhat do you think ?"}}