{"action":"opened","number":7618,"pull_request":{"url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/7618","id":193801459,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzODAxNDU5","html_url":"https://github.com/zfsonlinux/zfs/pull/7618","diff_url":"https://github.com/zfsonlinux/zfs/pull/7618.diff","patch_url":"https://github.com/zfsonlinux/zfs/pull/7618.patch","issue_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/7618","number":7618,"state":"open","locked":false,"title":"Add tunables for channel programs","user":{"login":"jgallag88","id":4139386,"node_id":"MDQ6VXNlcjQxMzkzODY=","avatar_url":"https://avatars1.githubusercontent.com/u/4139386?v=4","gravatar_id":"","url":"https://api.github.com/users/jgallag88","html_url":"https://github.com/jgallag88","followers_url":"https://api.github.com/users/jgallag88/followers","following_url":"https://api.github.com/users/jgallag88/following{/other_user}","gists_url":"https://api.github.com/users/jgallag88/gists{/gist_id}","starred_url":"https://api.github.com/users/jgallag88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgallag88/subscriptions","organizations_url":"https://api.github.com/users/jgallag88/orgs","repos_url":"https://api.github.com/users/jgallag88/repos","events_url":"https://api.github.com/users/jgallag88/events{/privacy}","received_events_url":"https://api.github.com/users/jgallag88/received_events","type":"User","site_admin":false},"body":"### Description\r\n<!--- Describe your changes in detail -->\r\nThis patch adds tunables for modifying the maximum memory limit and maximum instruction limit that can be specified when running a channel program.\r\n\r\nOn Illumos, a channel program making use of increased limits has to be invoked through libzfs_core rather than by using the `zfs program` command, because the `zfs` command exits with an error if the limit specified is greater than the hard-coded default maximum. Because on Linux the tunables are officially documented, I wanted to make sure that if these tunables were modified, the additional time/memory could be used via the `zfs program` command, so I removed these checks from the command. Instead, we just rely on the checks in the kernel to reject programs which specify limits which are too large.\r\n\r\nThe only downside to this is that the error message when trying to run a program with a too-large limit becomes slightly less specific. Instead of\r\n> Invalid memory limit: 200000000\r\n\r\nwe would now get\r\n> Channel program execution failed:\r\n> Invalid instruction or memory limit.\r\n\r\nor, if the amount of memory specified was so large that a buffer for the return value couldn't be allocated\r\n> Channel program execution failed:\r\n> Return value too large.\r\n\r\n### Motivation and Context\r\n<!--- Why is this change required? What problem does it solve? -->\r\n<!--- If it fixes an open issue, please link to the issue here. -->\r\nThis provides tunables equivalent to ones which exist on Illumos already.\r\n\r\n### How Has This Been Tested?\r\n<!--- Please describe in detail how you tested your changes. -->\r\n<!--- Include details of your testing environment, and the tests you ran to -->\r\n<!--- see how your change affects other areas of the code, etc. -->\r\n<!--- If your change is a performance enhancement, please provide benchmarks here. -->\r\n\r\nIncreased and decreased the tunables, and checked that the kernel correctly ran or rejected channel programs according to whether the limits specified were within or greater than the max limits.\r\n\r\n```\r\n$ ./scripts/zfs-tests.sh -T channel_program\r\n...\r\nResults Summary\r\nPASS\t  50\r\n\r\nRunning Time:\t00:01:16\r\nPercent passed:\t100.0%\r\nLog directory:\t/var/tmp/test_results/20180609T233228\r\n```\r\n\r\n### Types of changes\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Performance enhancement (non-breaking change which improves efficiency)\r\n- [ ] Code cleanup (non-breaking change which makes code smaller or more readable)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation (a change to man pages or other documentation)\r\n\r\n### Checklist:\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [x] My code follows the ZFS on Linux [code style requirements](https://github.com/zfsonlinux/zfs/blob/master/.github/CONTRIBUTING.md#coding-conventions).\r\n- [x] I have updated the documentation accordingly.\r\n- [x] I have read the [**contributing** document](https://github.com/zfsonlinux/zfs/blob/master/.github/CONTRIBUTING.md).\r\n- [ ] I have added [tests](https://github.com/zfsonlinux/zfs/tree/master/tests) to cover my changes.\r\n- [ ] All new and existing tests passed.\r\n- [x] All commit messages are properly formatted and contain [`Signed-off-by`](https://github.com/zfsonlinux/zfs/blob/master/.github/CONTRIBUTING.md#signed-off-by).\r\n- [ ] Change has been approved by a ZFS on Linux member.\r\n","created_at":"2018-06-09T23:51:35Z","updated_at":"2018-06-09T23:51:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/7618/commits","review_comments_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/7618/comments","review_comment_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/7618/comments","statuses_url":"https://api.github.com/repos/zfsonlinux/zfs/statuses/9c2a19052517e6f60ca8625b262b02fa29651439","head":{"label":"jgallag88:chanProgTunables","ref":"chanProgTunables","sha":"9c2a19052517e6f60ca8625b262b02fa29651439","user":{"login":"jgallag88","id":4139386,"node_id":"MDQ6VXNlcjQxMzkzODY=","avatar_url":"https://avatars1.githubusercontent.com/u/4139386?v=4","gravatar_id":"","url":"https://api.github.com/users/jgallag88","html_url":"https://github.com/jgallag88","followers_url":"https://api.github.com/users/jgallag88/followers","following_url":"https://api.github.com/users/jgallag88/following{/other_user}","gists_url":"https://api.github.com/users/jgallag88/gists{/gist_id}","starred_url":"https://api.github.com/users/jgallag88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgallag88/subscriptions","organizations_url":"https://api.github.com/users/jgallag88/orgs","repos_url":"https://api.github.com/users/jgallag88/repos","events_url":"https://api.github.com/users/jgallag88/events{/privacy}","received_events_url":"https://api.github.com/users/jgallag88/received_events","type":"User","site_admin":false},"repo":{"id":136225181,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYyMjUxODE=","name":"zfs","full_name":"jgallag88/zfs","owner":{"login":"jgallag88","id":4139386,"node_id":"MDQ6VXNlcjQxMzkzODY=","avatar_url":"https://avatars1.githubusercontent.com/u/4139386?v=4","gravatar_id":"","url":"https://api.github.com/users/jgallag88","html_url":"https://github.com/jgallag88","followers_url":"https://api.github.com/users/jgallag88/followers","following_url":"https://api.github.com/users/jgallag88/following{/other_user}","gists_url":"https://api.github.com/users/jgallag88/gists{/gist_id}","starred_url":"https://api.github.com/users/jgallag88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgallag88/subscriptions","organizations_url":"https://api.github.com/users/jgallag88/orgs","repos_url":"https://api.github.com/users/jgallag88/repos","events_url":"https://api.github.com/users/jgallag88/events{/privacy}","received_events_url":"https://api.github.com/users/jgallag88/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jgallag88/zfs","description":"ZFS on Linux - the official OpenZFS implementation for Linux.","fork":true,"url":"https://api.github.com/repos/jgallag88/zfs","forks_url":"https://api.github.com/repos/jgallag88/zfs/forks","keys_url":"https://api.github.com/repos/jgallag88/zfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jgallag88/zfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jgallag88/zfs/teams","hooks_url":"https://api.github.com/repos/jgallag88/zfs/hooks","issue_events_url":"https://api.github.com/repos/jgallag88/zfs/issues/events{/number}","events_url":"https://api.github.com/repos/jgallag88/zfs/events","assignees_url":"https://api.github.com/repos/jgallag88/zfs/assignees{/user}","branches_url":"https://api.github.com/repos/jgallag88/zfs/branches{/branch}","tags_url":"https://api.github.com/repos/jgallag88/zfs/tags","blobs_url":"https://api.github.com/repos/jgallag88/zfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jgallag88/zfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jgallag88/zfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/jgallag88/zfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jgallag88/zfs/statuses/{sha}","languages_url":"https://api.github.com/repos/jgallag88/zfs/languages","stargazers_url":"https://api.github.com/repos/jgallag88/zfs/stargazers","contributors_url":"https://api.github.com/repos/jgallag88/zfs/contributors","subscribers_url":"https://api.github.com/repos/jgallag88/zfs/subscribers","subscription_url":"https://api.github.com/repos/jgallag88/zfs/subscription","commits_url":"https://api.github.com/repos/jgallag88/zfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/jgallag88/zfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/jgallag88/zfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/jgallag88/zfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/jgallag88/zfs/contents/{+path}","compare_url":"https://api.github.com/repos/jgallag88/zfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jgallag88/zfs/merges","archive_url":"https://api.github.com/repos/jgallag88/zfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jgallag88/zfs/downloads","issues_url":"https://api.github.com/repos/jgallag88/zfs/issues{/number}","pulls_url":"https://api.github.com/repos/jgallag88/zfs/pulls{/number}","milestones_url":"https://api.github.com/repos/jgallag88/zfs/milestones{/number}","notifications_url":"https://api.github.com/repos/jgallag88/zfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jgallag88/zfs/labels{/name}","releases_url":"https://api.github.com/repos/jgallag88/zfs/releases{/id}","deployments_url":"https://api.github.com/repos/jgallag88/zfs/deployments","created_at":"2018-06-05T19:29:59Z","updated_at":"2018-06-05T19:30:09Z","pushed_at":"2018-06-09T22:13:00Z","git_url":"git://github.com/jgallag88/zfs.git","ssh_url":"git@github.com:jgallag88/zfs.git","clone_url":"https://github.com/jgallag88/zfs.git","svn_url":"https://github.com/jgallag88/zfs","homepage":"http://zfsonlinux.org/","size":49646,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"zfsonlinux:master","ref":"master","sha":"2ffd89fcb90969bd9e3a118cfe373dd356d1519a","user":{"login":"zfsonlinux","id":575083,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU3NTA4Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/575083?v=4","gravatar_id":"","url":"https://api.github.com/users/zfsonlinux","html_url":"https://github.com/zfsonlinux","followers_url":"https://api.github.com/users/zfsonlinux/followers","following_url":"https://api.github.com/users/zfsonlinux/following{/other_user}","gists_url":"https://api.github.com/users/zfsonlinux/gists{/gist_id}","starred_url":"https://api.github.com/users/zfsonlinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zfsonlinux/subscriptions","organizations_url":"https://api.github.com/users/zfsonlinux/orgs","repos_url":"https://api.github.com/users/zfsonlinux/repos","events_url":"https://api.github.com/users/zfsonlinux/events{/privacy}","received_events_url":"https://api.github.com/users/zfsonlinux/received_events","type":"Organization","site_admin":false},"repo":{"id":437011,"node_id":"MDEwOlJlcG9zaXRvcnk0MzcwMTE=","name":"zfs","full_name":"zfsonlinux/zfs","owner":{"login":"zfsonlinux","id":575083,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU3NTA4Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/575083?v=4","gravatar_id":"","url":"https://api.github.com/users/zfsonlinux","html_url":"https://github.com/zfsonlinux","followers_url":"https://api.github.com/users/zfsonlinux/followers","following_url":"https://api.github.com/users/zfsonlinux/following{/other_user}","gists_url":"https://api.github.com/users/zfsonlinux/gists{/gist_id}","starred_url":"https://api.github.com/users/zfsonlinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zfsonlinux/subscriptions","organizations_url":"https://api.github.com/users/zfsonlinux/orgs","repos_url":"https://api.github.com/users/zfsonlinux/repos","events_url":"https://api.github.com/users/zfsonlinux/events{/privacy}","received_events_url":"https://api.github.com/users/zfsonlinux/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zfsonlinux/zfs","description":"ZFS on Linux - the official OpenZFS implementation for Linux.","fork":false,"url":"https://api.github.com/repos/zfsonlinux/zfs","forks_url":"https://api.github.com/repos/zfsonlinux/zfs/forks","keys_url":"https://api.github.com/repos/zfsonlinux/zfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zfsonlinux/zfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zfsonlinux/zfs/teams","hooks_url":"https://api.github.com/repos/zfsonlinux/zfs/hooks","issue_events_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/events{/number}","events_url":"https://api.github.com/repos/zfsonlinux/zfs/events","assignees_url":"https://api.github.com/repos/zfsonlinux/zfs/assignees{/user}","branches_url":"https://api.github.com/repos/zfsonlinux/zfs/branches{/branch}","tags_url":"https://api.github.com/repos/zfsonlinux/zfs/tags","blobs_url":"https://api.github.com/repos/zfsonlinux/zfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zfsonlinux/zfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zfsonlinux/zfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/zfsonlinux/zfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zfsonlinux/zfs/statuses/{sha}","languages_url":"https://api.github.com/repos/zfsonlinux/zfs/languages","stargazers_url":"https://api.github.com/repos/zfsonlinux/zfs/stargazers","contributors_url":"https://api.github.com/repos/zfsonlinux/zfs/contributors","subscribers_url":"https://api.github.com/repos/zfsonlinux/zfs/subscribers","subscription_url":"https://api.github.com/repos/zfsonlinux/zfs/subscription","commits_url":"https://api.github.com/repos/zfsonlinux/zfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/zfsonlinux/zfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/zfsonlinux/zfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/zfsonlinux/zfs/contents/{+path}","compare_url":"https://api.github.com/repos/zfsonlinux/zfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zfsonlinux/zfs/merges","archive_url":"https://api.github.com/repos/zfsonlinux/zfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zfsonlinux/zfs/downloads","issues_url":"https://api.github.com/repos/zfsonlinux/zfs/issues{/number}","pulls_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls{/number}","milestones_url":"https://api.github.com/repos/zfsonlinux/zfs/milestones{/number}","notifications_url":"https://api.github.com/repos/zfsonlinux/zfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zfsonlinux/zfs/labels{/name}","releases_url":"https://api.github.com/repos/zfsonlinux/zfs/releases{/id}","deployments_url":"https://api.github.com/repos/zfsonlinux/zfs/deployments","created_at":"2009-12-14T20:20:34Z","updated_at":"2018-06-09T23:09:18Z","pushed_at":"2018-06-08T18:14:17Z","git_url":"git://github.com/zfsonlinux/zfs.git","ssh_url":"git@github.com:zfsonlinux/zfs.git","clone_url":"https://github.com/zfsonlinux/zfs.git","svn_url":"https://github.com/zfsonlinux/zfs","homepage":"http://zfsonlinux.org/","size":49657,"stargazers_count":3311,"watchers_count":3311,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":766,"mirror_url":null,"archived":false,"open_issues_count":954,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":766,"open_issues":954,"watchers":3311,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/7618"},"html":{"href":"https://github.com/zfsonlinux/zfs/pull/7618"},"issue":{"href":"https://api.github.com/repos/zfsonlinux/zfs/issues/7618"},"comments":{"href":"https://api.github.com/repos/zfsonlinux/zfs/issues/7618/comments"},"review_comments":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/7618/comments"},"review_comment":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/7618/commits"},"statuses":{"href":"https://api.github.com/repos/zfsonlinux/zfs/statuses/9c2a19052517e6f60ca8625b262b02fa29651439"}},"author_association":"NONE","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":49,"deletions":26,"changed_files":5}}
{"actor":{"display_login":"jgallag88"}}