GitHub PullRequestEvent at 2014-02-26 16:20:42
Repository: libvmi
Actor: tklengyel
Payload: {"action":"opened","number":137,"pull_request":{"url":"https://api.github.com/repos/bdpayne/libvmi/pulls/137","id":12959224,"html_url":"https://github.com/bdpayne/libvmi/pull/137","diff_url":"https://github.com/bdpayne/libvmi/pull/137.diff","patch_url":"https://github.com/bdpayne/libvmi/pull/137.patch","issue_url":"https://api.github.com/repos/bdpayne/libvmi/issues/137","number":137,"state":"open","title":"Towards multi-vCPU support for xen events","user":{"login":"tklengyel","id":3172829,"avatar_url":"https://gravatar.com/avatar/68435aae1c20eb6f369cf1407885dda6?d=https%3A%2F%2Fidenticons.github.com%2Fd084e66654397fc69a2c0da62d3d5b0a.png&r=x","gravatar_id":"68435aae1c20eb6f369cf1407885dda6","url":"https://api.github.com/users/tklengyel","html_url":"https://github.com/tklengyel","followers_url":"https://api.github.com/users/tklengyel/followers","following_url":"https://api.github.com/users/tklengyel/following{/other_user}","gists_url":"https://api.github.com/users/tklengyel/gists{/gist_id}","starred_url":"https://api.github.com/users/tklengyel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tklengyel/subscriptions","organizations_url":"https://api.github.com/users/tklengyel/orgs","repos_url":"https://api.github.com/users/tklengyel/repos","events_url":"https://api.github.com/users/tklengyel/events{/privacy}","received_events_url":"https://api.github.com/users/tklengyel/received_events","type":"User","site_admin":false},"body":"When having multiple vCPUs in a guest and using xen events certain information has to be provided to the user as extra. Foremost, knowing whether more events are pending when a callback is issued is critical, as clearing the event handler in a callback with more events waiting on the ring would cause LibVMI to fall through. Furthermore, in the current implementation LibVMI automatically resumes the domain's execution after an event is handled, which is undesirable when still having unprocessed events on the ring. Therefore in this PR I changed the event handling to only place the responses on the ring in the loop, and issue the resume after all requests are processed.\r\n\r\nFurther work is required to better determine when it is safe to remove an event handler through vmi_event_clear. We could either have a default setting where events are dropped when the handler is not found anymore, or provide more information to the user about pending events to have them make a more informed decision what they want to do with them. This would require us copying all pending events from Xen to a local storage and checking what type of events we have pending.","created_at":"2014-02-26T16:20:42Z","updated_at":"2014-02-26T16:20:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bdpayne/libvmi/pulls/137/commits","review_comments_url":"https://api.github.com/repos/bdpayne/libvmi/pulls/137/comments","review_comment_url":"https://api.github.com/repos/bdpayne/libvmi/pulls/comments/{number}","comments_url":"https://api.github.com/repos/bdpayne/libvmi/issues/137/comments","statuses_url":"https://api.github.com/repos/bdpayne/libvmi/statuses/96b3a19e543dcc17bcdd1d021bd3921ceeee90e4","head":{"label":"Zentific:events_multicpu","ref":"events_multicpu","sha":"96b3a19e543dcc17bcdd1d021bd3921ceeee90e4","user":{"login":"Zentific","id":3460421,"avatar_url":"https://identicons.github.com/3993e5d042a268729ed9a2e3e6cd8de9.png","gravatar_id":null,"url":"https://api.github.com/users/Zentific","html_url":"https://github.com/Zentific","followers_url":"https://api.github.com/users/Zentific/followers","following_url":"https://api.github.com/users/Zentific/following{/other_user}","gists_url":"https://api.github.com/users/Zentific/gists{/gist_id}","starred_url":"https://api.github.com/users/Zentific/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zentific/subscriptions","organizations_url":"https://api.github.com/users/Zentific/orgs","repos_url":"https://api.github.com/users/Zentific/repos","events_url":"https://api.github.com/users/Zentific/events{/privacy}","received_events_url":"https://api.github.com/users/Zentific/received_events","type":"Organization","site_admin":false},"repo":{"id":9640123,"name":"libvmi","full_name":"Zentific/libvmi","owner":{"login":"Zentific","id":3460421,"avatar_url":"https://identicons.github.com/3993e5d042a268729ed9a2e3e6cd8de9.png","gravatar_id":null,"url":"https://api.github.com/users/Zentific","html_url":"https://github.com/Zentific","followers_url":"https://api.github.com/users/Zentific/followers","following_url":"https://api.github.com/users/Zentific/following{/other_user}","gists_url":"https://api.github.com/users/Zentific/gists{/gist_id}","starred_url":"https://api.github.com/users/Zentific/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zentific/subscriptions","organizations_url":"https://api.github.com/users/Zentific/orgs","repos_url":"https://api.github.com/users/Zentific/repos","events_url":"https://api.github.com/users/Zentific/events{/privacy}","received_events_url":"https://api.github.com/users/Zentific/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Zentific/libvmi","description":"","fork":true,"url":"https://api.github.com/repos/Zentific/libvmi","forks_url":"https://api.github.com/repos/Zentific/libvmi/forks","keys_url":"https://api.github.com/repos/Zentific/libvmi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Zentific/libvmi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Zentific/libvmi/teams","hooks_url":"https://api.github.com/repos/Zentific/libvmi/hooks","issue_events_url":"https://api.github.com/repos/Zentific/libvmi/issues/events{/number}","events_url":"https://api.github.com/repos/Zentific/libvmi/events","assignees_url":"https://api.github.com/repos/Zentific/libvmi/assignees{/user}","branches_url":"https://api.github.com/repos/Zentific/libvmi/branches{/branch}","tags_url":"https://api.github.com/repos/Zentific/libvmi/tags","blobs_url":"https://api.github.com/repos/Zentific/libvmi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Zentific/libvmi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Zentific/libvmi/git/refs{/sha}","trees_url":"https://api.github.com/repos/Zentific/libvmi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Zentific/libvmi/statuses/{sha}","languages_url":"https://api.github.com/repos/Zentific/libvmi/languages","stargazers_url":"https://api.github.com/repos/Zentific/libvmi/stargazers","contributors_url":"https://api.github.com/repos/Zentific/libvmi/contributors","subscribers_url":"https://api.github.com/repos/Zentific/libvmi/subscribers","subscription_url":"https://api.github.com/repos/Zentific/libvmi/subscription","commits_url":"https://api.github.com/repos/Zentific/libvmi/commits{/sha}","git_commits_url":"https://api.github.com/repos/Zentific/libvmi/git/commits{/sha}","comments_url":"https://api.github.com/repos/Zentific/libvmi/comments{/number}","issue_comment_url":"https://api.github.com/repos/Zentific/libvmi/issues/comments/{number}","contents_url":"https://api.github.com/repos/Zentific/libvmi/contents/{+path}","compare_url":"https://api.github.com/repos/Zentific/libvmi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Zentific/libvmi/merges","archive_url":"https://api.github.com/repos/Zentific/libvmi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Zentific/libvmi/downloads","issues_url":"https://api.github.com/repos/Zentific/libvmi/issues{/number}","pulls_url":"https://api.github.com/repos/Zentific/libvmi/pulls{/number}","milestones_url":"https://api.github.com/repos/Zentific/libvmi/milestones{/number}","notifications_url":"https://api.github.com/repos/Zentific/libvmi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Zentific/libvmi/labels{/name}","releases_url":"https://api.github.com/repos/Zentific/libvmi/releases{/id}","created_at":"2013-04-24T05:28:38Z","updated_at":"2014-02-26T16:20:42Z","pushed_at":"2014-02-26T14:39:32Z","git_url":"git://github.com/Zentific/libvmi.git","ssh_url":"git@github.com:Zentific/libvmi.git","clone_url":"https://github.com/Zentific/libvmi.git","svn_url":"https://github.com/Zentific/libvmi","homepage":null,"size":3439,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","master_branch":"master"}},"base":{"label":"bdpayne:master","ref":"master","sha":"2f7676b89021c710798aaad13d4f2d2882047819","user":{"login":"bdpayne","id":1608841,"avatar_url":"https://gravatar.com/avatar/9bafe8f749b8681f57d6179e5d6943e9?d=https%3A%2F%2Fidenticons.github.com%2Fcd606699fe015047c86e4c26afd806e9.png&r=x","gravatar_id":"9bafe8f749b8681f57d6179e5d6943e9","url":"https://api.github.com/users/bdpayne","html_url":"https://github.com/bdpayne","followers_url":"https://api.github.com/users/bdpayne/followers","following_url":"https://api.github.com/users/bdpayne/following{/other_user}","gists_url":"https://api.github.com/users/bdpayne/gists{/gist_id}","starred_url":"https://api.github.com/users/bdpayne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdpayne/subscriptions","organizations_url":"https://api.github.com/users/bdpayne/orgs","repos_url":"https://api.github.com/users/bdpayne/repos","events_url":"https://api.github.com/users/bdpayne/events{/privacy}","received_events_url":"https://api.github.com/users/bdpayne/received_events","type":"User","site_admin":false},"repo":{"id":7414172,"name":"libvmi","full_name":"bdpayne/libvmi","owner":{"login":"bdpayne","id":1608841,"avatar_url":"https://gravatar.com/avatar/9bafe8f749b8681f57d6179e5d6943e9?d=https%3A%2F%2Fidenticons.github.com%2Fcd606699fe015047c86e4c26afd806e9.png&r=x","gravatar_id":"9bafe8f749b8681f57d6179e5d6943e9","url":"https://api.github.com/users/bdpayne","html_url":"https://github.com/bdpayne","followers_url":"https://api.github.com/users/bdpayne/followers","following_url":"https://api.github.com/users/bdpayne/following{/other_user}","gists_url":"https://api.github.com/users/bdpayne/gists{/gist_id}","starred_url":"https://api.github.com/users/bdpayne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdpayne/subscriptions","organizations_url":"https://api.github.com/users/bdpayne/orgs","repos_url":"https://api.github.com/users/bdpayne/repos","events_url":"https://api.github.com/users/bdpayne/events{/privacy}","received_events_url":"https://api.github.com/users/bdpayne/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bdpayne/libvmi","description":"","fork":false,"url":"https://api.github.com/repos/bdpayne/libvmi","forks_url":"https://api.github.com/repos/bdpayne/libvmi/forks","keys_url":"https://api.github.com/repos/bdpayne/libvmi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bdpayne/libvmi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bdpayne/libvmi/teams","hooks_url":"https://api.github.com/repos/bdpayne/libvmi/hooks","issue_events_url":"https://api.github.com/repos/bdpayne/libvmi/issues/events{/number}","events_url":"https://api.github.com/repos/bdpayne/libvmi/events","assignees_url":"https://api.github.com/repos/bdpayne/libvmi/assignees{/user}","branches_url":"https://api.github.com/repos/bdpayne/libvmi/branches{/branch}","tags_url":"https://api.github.com/repos/bdpayne/libvmi/tags","blobs_url":"https://api.github.com/repos/bdpayne/libvmi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bdpayne/libvmi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bdpayne/libvmi/git/refs{/sha}","trees_url":"https://api.github.com/repos/bdpayne/libvmi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bdpayne/libvmi/statuses/{sha}","languages_url":"https://api.github.com/repos/bdpayne/libvmi/languages","stargazers_url":"https://api.github.com/repos/bdpayne/libvmi/stargazers","contributors_url":"https://api.github.com/repos/bdpayne/libvmi/contributors","subscribers_url":"https://api.github.com/repos/bdpayne/libvmi/subscribers","subscription_url":"https://api.github.com/repos/bdpayne/libvmi/subscription","commits_url":"https://api.github.com/repos/bdpayne/libvmi/commits{/sha}","git_commits_url":"https://api.github.com/repos/bdpayne/libvmi/git/commits{/sha}","comments_url":"https://api.github.com/repos/bdpayne/libvmi/comments{/number}","issue_comment_url":"https://api.github.com/repos/bdpayne/libvmi/issues/comments/{number}","contents_url":"https://api.github.com/repos/bdpayne/libvmi/contents/{+path}","compare_url":"https://api.github.com/repos/bdpayne/libvmi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bdpayne/libvmi/merges","archive_url":"https://api.github.com/repos/bdpayne/libvmi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bdpayne/libvmi/downloads","issues_url":"https://api.github.com/repos/bdpayne/libvmi/issues{/number}","pulls_url":"https://api.github.com/repos/bdpayne/libvmi/pulls{/number}","milestones_url":"https://api.github.com/repos/bdpayne/libvmi/milestones{/number}","notifications_url":"https://api.github.com/repos/bdpayne/libvmi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bdpayne/libvmi/labels{/name}","releases_url":"https://api.github.com/repos/bdpayne/libvmi/releases{/id}","created_at":"2013-01-02T22:06:12Z","updated_at":"2014-02-10T20:55:18Z","pushed_at":"2014-02-10T20:55:18Z","git_url":"git://github.com/bdpayne/libvmi.git","ssh_url":"git@github.com:bdpayne/libvmi.git","clone_url":"https://github.com/bdpayne/libvmi.git","svn_url":"https://github.com/bdpayne/libvmi","homepage":null,"size":3189,"stargazers_count":23,"watchers_count":23,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":24,"mirror_url":null,"open_issues_count":8,"forks":24,"open_issues":8,"watchers":23,"default_branch":"master","master_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bdpayne/libvmi/pulls/137"},"html":{"href":"https://github.com/bdpayne/libvmi/pull/137"},"issue":{"href":"https://api.github.com/repos/bdpayne/libvmi/issues/137"},"comments":{"href":"https://api.github.com/repos/bdpayne/libvmi/issues/137/comments"},"review_comments":{"href":"https://api.github.com/repos/bdpayne/libvmi/pulls/137/comments"},"review_comment":{"href":"https://api.github.com/repos/bdpayne/libvmi/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/bdpayne/libvmi/pulls/137/commits"},"statuses":{"href":"https://api.github.com/repos/bdpayne/libvmi/statuses/96b3a19e543dcc17bcdd1d021bd3921ceeee90e4"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":69,"deletions":12,"changed_files":6}}