)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"765108c295230fc36f0f88b73fb0864b91130fe6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix Swift tox test failure on AArch64"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Get the right __NR_ioprio_set value on AArch64 platform."},{"line_number":10,"context_line":"Pass all Swift tox test cases with the change."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ic93ce80fde223074e7d1a5338c8cf88863c6ddeb"},{"line_number":13,"context_line":"Closes-Bug: #1658405"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a3905b3_9e3e6e8a","line":10,"updated":"2017-01-23 04:46:28.000000000","message":"Oh and maybe we can go one step further and say this isn\u0027t fixing the tox tests, but more getting ioprio support working on aarch sounds much better.\n\n  IO Priority support on the aarch64 architecture \n\n  This patches fixes Swift\u0027s IO priority control on the aarch64 architecture\n  by getting the correct __NR_ioprio_set value.","commit_id":"0954e2a21fc85623ebf37177b06da70f27ca9e9d"}],"swift/common/utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c24189a29e3ed8cce77c688eda580dacea15ff98","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    if architecture \u003d\u003d \u0027x86_64\u0027 and arch_bits \u003d\u003d \u002764bit\u0027:"},{"line_number":122,"context_line":"        return 251"},{"line_number":123,"context_line":"    elif architecture \u003d\u003d \u0027aarch64\u0027 and arch_bits \u003d\u003d \u002764bit\u0027:"},{"line_number":124,"context_line":"        return 30"},{"line_number":125,"context_line":"    raise OSError(\"Swift doesn\u0027t support ionice priority for %s %s\" %"},{"line_number":126,"context_line":"                  (architecture, arch_bits))"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a3905b3_4f8b4968","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":17},"updated":"2017-01-23 18:41:36.000000000","message":"Seems to check out; the arch/arm64 unistd.h [1] imports from the generic version, which defines it as 30 [2]. Looks like the documentation also has some example code that would allow us to quickly add support for i386, PPC, and IA64 [3] at some point in the future.\n\n[1] https://github.com/torvalds/linux/blob/5924bbe/arch/arm64/include/uapi/asm/unistd.h#L19\n\n[2] https://github.com/torvalds/linux/blob/5924bbe/include/uapi/asm-generic/unistd.h#L110\n\n[3] https://github.com/torvalds/linux/blob/5924bbe/Documentation/block/ioprio.txt#L73-L84","commit_id":"9c532a25dfdd3f878f07059a308362e2dbdab82d"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"83fdb7a9e53568f81b3c4a194db9efe31a754ac3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                  (architecture, arch_bits))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# this syscall integer probably only works on x86_64 linux systems, you"},{"line_number":129,"context_line":"# can check if it\u0027s correct on yours with something like this:"},{"line_number":130,"context_line":"\"\"\""},{"line_number":131,"context_line":"#include \u003cstdio.h\u003e"},{"line_number":132,"context_line":"#include \u003csys/syscall.h\u003e"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_00be5dfe","line":129,"updated":"2017-01-24 06:05:15.000000000","message":"Does this comment also need updating with the AArch64 biz?","commit_id":"031ba1135764be77e4a2ed3a10cba7d132257bb0"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"83fdb7a9e53568f81b3c4a194db9efe31a754ac3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    printf(\"%d\\n\", __NR_ioprio_set);"},{"line_number":136,"context_line":"    return 0;"},{"line_number":137,"context_line":"}"},{"line_number":138,"context_line":"\"\"\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"# this is the value for \"which\" that says our who value will be a pid"},{"line_number":141,"context_line":"# pulled out of /usr/src/linux-headers-*/include/linux/ioprio.h"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_e0c23184","line":138,"updated":"2017-01-24 06:05:15.000000000","message":"Did you happen to use this script on your aarch64 system to get the value of the real constant acctually defined on your running system?","commit_id":"031ba1135764be77e4a2ed3a10cba7d132257bb0"}],"test/unit/common/test_utils.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9c7ca5133d62697d0c00c4cc529eb2c9e92fccae","unresolved":false,"context_lines":[{"line_number":3633,"context_line":""},{"line_number":3634,"context_line":"        with patch(\u0027os.uname\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027, \u0027\u0027, \u0027\u0027, \u0027x86_64\u0027)), \\"},{"line_number":3635,"context_line":"                patch(\u0027platform.architecture\u0027, return_value\u003d(\u002732bit\u0027, \u0027\u0027)):"},{"line_number":3636,"context_line":"            self.assertRaises(OSError, utils.NR_ioprio_set)"},{"line_number":3637,"context_line":""},{"line_number":3638,"context_line":"        with patch(\u0027os.uname\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027, \u0027\u0027, \u0027\u0027, \u0027alpha\u0027)), \\"},{"line_number":3639,"context_line":"                patch(\u0027platform.architecture\u0027, return_value\u003d(\u002764bit\u0027, \u0027\u0027)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a3905b3_837b77f4","line":3636,"updated":"2017-01-23 04:41:44.000000000","message":"This (x86_64) also does a check for a wrong arch_bits (32bit). ! assume aarch64 will only ever be 64bit. For both x86_64 and aarch64 we\u0027re going to the effort of only returning the syscall number on uname and arch_bits so we should test both pattens here for completeness (64bit and not 64bit) like we are doing here for x86_64:\n\n  with patch(\u0027os.uname\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027, \u0027\u0027, \u0027\u0027, \u0027aarch64\u0027)), \\\n          patch(\u0027platform.architecture\u0027, return_value\u003d(\u002732bit\u0027, \u0027\u0027)):\n  self.assertRaises(OSError, utils.NR_ioprio_set)","commit_id":"0954e2a21fc85623ebf37177b06da70f27ca9e9d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c24189a29e3ed8cce77c688eda580dacea15ff98","unresolved":false,"context_lines":[{"line_number":3581,"context_line":"            if architecture \u003d\u003d \u0027x86_64\u0027 and arch_bits \u003d\u003d \u002764bit\u0027:"},{"line_number":3582,"context_line":"                self.assertEqual(called, {\u0027syscall\u0027: (251, 1, pid, 1 \u003c\u003c 13)})"},{"line_number":3583,"context_line":"            elif architecture \u003d\u003d \u0027aarch64\u0027 and arch_bits \u003d\u003d \u002764bit\u0027:"},{"line_number":3584,"context_line":"                self.assertEqual(called, {\u0027syscall\u0027: (30, 1, pid, 1 \u003c\u003c 13)})"},{"line_number":3585,"context_line":"            called \u003d {}"},{"line_number":3586,"context_line":"            # just ionice priority is ignored"},{"line_number":3587,"context_line":"            utils.modify_priority({\u0027ionice_priority\u0027: \u00274\u0027}, logger)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a3905b3_afaf4d7b","line":3584,"updated":"2017-01-23 18:41:36.000000000","message":"Might deserve a\n\n else:\n     self.fail(\"Unexpected call: %r\" % called)","commit_id":"9c532a25dfdd3f878f07059a308362e2dbdab82d"}]}
