)]}'
{
  "commit": "4b2356b1ed79e6be3deca3737a3db3d132d2847a",
  "tree": "fda1cab226f0a36537a006ca0b87df54d9c655dc",
  "parents": [
    "729f1e841bcca28c2cd9f4034d6f7672604dbeda"
  ],
  "author": {
    "name": "Michael Munday",
    "email": "mike.munday@ibm.com",
    "time": "Thu Apr 23 06:34:55 2020 -0700"
  },
  "committer": {
    "name": "Michael Munday",
    "email": "mike.munday@ibm.com",
    "time": "Wed Apr 29 18:30:12 2020 +0000"
  },
  "message": "poly1305: modify s390x assembly to implement MAC interface\n\nThe vector (vx) implementation has been updated to read in the\nstate and update it - as opposed to being a single shot function.\nThis has allowed the new MAC interface can be implemented.\n\nFor performance reasons s390x uses a larger buffer than the generic\nimplementation. There is a relatively high fixed cost to read the\nstate, calculate the key coefficients and serialize the state, so\nit makes sense to buffer more blocks before calling it.\n\nFor now I\u0027ve had to remove the faster VMSL implementation. It is\ntoo complex for me to update in time for Go 1.15. At some point\nI\u0027d like to revisit it but for now it looks like using the MAC\ninterface is more of a win than using VMSL.\n\nThe benchmarks show considerable improvements when using the MAC\ninterface. The Sum benchmarks show slowdown due to a combination\nof the removal of the VMSL implementation and also the added\noverhead from splitting the summation function into multiple parts.\n\npoly1305:\n\nname              old speed      new speed      delta\n64                1.33GB/s ± 0%  0.80GB/s ± 1%   -39.51%  (p\u003d0.000 n\u003d16+20)\n1K                4.04GB/s ± 0%  2.97GB/s ± 0%   -26.46%  (p\u003d0.000 n\u003d19+19)\n2M                5.32GB/s ± 1%  3.63GB/s ± 0%   -31.76%  (p\u003d0.000 n\u003d20+19)\n64Unaligned       1.33GB/s ± 0%  0.80GB/s ± 0%   -39.80%  (p\u003d0.000 n\u003d19+18)\n1KUnaligned       4.09GB/s ± 1%  2.94GB/s ± 0%   -28.23%  (p\u003d0.000 n\u003d19+18)\n2MUnaligned       5.33GB/s ± 1%  3.52GB/s ± 0%   -34.04%  (p\u003d0.000 n\u003d20+19)\nWrite64           1.03GB/s ± 1%  1.49GB/s ± 1%   +44.34%  (p\u003d0.000 n\u003d20+20)\nWrite1K           1.21GB/s ± 0%  3.24GB/s ± 0%  +169.02%  (p\u003d0.000 n\u003d20+17)\nWrite2M           1.24GB/s ± 1%  3.63GB/s ± 0%  +192.36%  (p\u003d0.000 n\u003d20+19)\nWrite64Unaligned  1.04GB/s ± 1%  1.50GB/s ± 0%   +44.16%  (p\u003d0.000 n\u003d19+14)\nWrite1KUnaligned  1.21GB/s ± 0%  3.20GB/s ± 0%  +164.55%  (p\u003d0.000 n\u003d20+16)\nWrite2MUnaligned  1.24GB/s ± 1%  3.51GB/s ± 0%  +183.96%  (p\u003d0.000 n\u003d20+19)\n\nchacha20poly1305 (this vs. using generic MAC interface - post CL 206977):\n\nname         old speed      new speed      delta\nOpen-64       147MB/s ± 2%   156MB/s ± 1%   +6.15%  (p\u003d0.000 n\u003d20+19)\nSeal-64       151MB/s ± 0%   164MB/s ± 1%   +8.86%  (p\u003d0.000 n\u003d19+16)\nOpen-64-X     104MB/s ± 2%   111MB/s ± 1%   +6.24%  (p\u003d0.000 n\u003d20+20)\nSeal-64-X     109MB/s ± 2%   111MB/s ± 1%   +2.11%  (p\u003d0.000 n\u003d20+19)\nOpen-1350     555MB/s ± 0%   751MB/s ± 1%  +35.19%  (p\u003d0.000 n\u003d20+20)\nSeal-1350     557MB/s ± 0%   759MB/s ± 0%  +36.23%  (p\u003d0.000 n\u003d20+20)\nOpen-1350-X   517MB/s ± 1%   683MB/s ± 1%  +31.97%  (p\u003d0.000 n\u003d20+20)\nSeal-1350-X   511MB/s ± 0%   683MB/s ± 0%  +33.77%  (p\u003d0.000 n\u003d18+19)\nOpen-8192     672MB/s ± 0%  1013MB/s ± 0%  +50.65%  (p\u003d0.000 n\u003d19+19)\nSeal-8192     674MB/s ± 0%  1018MB/s ± 0%  +50.98%  (p\u003d0.000 n\u003d18+20)\nOpen-8192-X   663MB/s ± 0%   979MB/s ± 0%  +47.57%  (p\u003d0.000 n\u003d20+20)\nSeal-8192-X   658MB/s ± 0%   985MB/s ± 0%  +49.62%  (p\u003d0.000 n\u003d18+20)\n\nname         old allocs/op  new allocs/op  delta\nOpen-64          0.00           0.00          ~     (all equal)\nSeal-64          0.00           0.00          ~     (all equal)\nOpen-64-X        0.00           0.00          ~     (all equal)\nSeal-64-X        0.00           0.00          ~     (all equal)\nOpen-1350        0.00           0.00          ~     (all equal)\nSeal-1350        0.00           0.00          ~     (all equal)\nOpen-1350-X      0.00           0.00          ~     (all equal)\nSeal-1350-X      0.00           0.00          ~     (all equal)\nOpen-8192        0.00           0.00          ~     (all equal)\nSeal-8192        0.00           0.00          ~     (all equal)\nOpen-8192-X      0.00           0.00          ~     (all equal)\nSeal-8192-X      0.00           0.00          ~     (all equal)\n\nchacha20poly1305 (this vs. using asm Sum interface - pre CL 206977):\n\nname         old speed      new speed      delta\nOpen-64       144MB/s ± 0%   156MB/s ± 1%    +8.16%  (p\u003d0.000 n\u003d20+19)\nSeal-64       150MB/s ± 0%   164MB/s ± 1%    +9.35%  (p\u003d0.000 n\u003d20+16)\nOpen-64-X     104MB/s ± 1%   111MB/s ± 1%    +6.15%  (p\u003d0.000 n\u003d19+20)\nSeal-64-X     109MB/s ± 1%   111MB/s ± 1%    +1.43%  (p\u003d0.000 n\u003d19+19)\nOpen-1350     702MB/s ± 1%   751MB/s ± 1%    +6.98%  (p\u003d0.000 n\u003d20+20)\nSeal-1350     715MB/s ± 0%   759MB/s ± 0%    +6.09%  (p\u003d0.000 n\u003d19+20)\nOpen-1350-X   642MB/s ± 0%   683MB/s ± 1%    +6.37%  (p\u003d0.000 n\u003d19+20)\nSeal-1350-X   639MB/s ± 0%   683MB/s ± 0%    +6.98%  (p\u003d0.000 n\u003d20+19)\nOpen-8192     994MB/s ± 0%  1013MB/s ± 0%    +1.85%  (p\u003d0.000 n\u003d20+19)\nSeal-8192    1.00GB/s ± 0%  1.02GB/s ± 0%    +1.90%  (p\u003d0.000 n\u003d20+20)\nOpen-8192-X   965MB/s ± 0%   979MB/s ± 0%    +1.43%  (p\u003d0.000 n\u003d19+20)\nSeal-8192-X   962MB/s ± 0%   985MB/s ± 0%    +2.39%  (p\u003d0.000 n\u003d20+20)\n\nname         old allocs/op  new allocs/op  delta\nOpen-64          1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nSeal-64          1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nOpen-64-X        1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nSeal-64-X        1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nOpen-1350        1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nSeal-1350        1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nOpen-1350-X      1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nSeal-1350-X      1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nOpen-8192        1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nSeal-8192        1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nOpen-8192-X      1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\nSeal-8192-X      1.00 ± 0%      0.00       -100.00%  (p\u003d0.000 n\u003d20+20)\n\nUpdates golang/go#25219.\n\nChange-Id: Ib491e3a47b6b3ec8bbbe1f41f7bf42ad82f5c249\nReviewed-on: https://go-review.googlesource.com/c/crypto/+/219057\nRun-TryBot: Michael Munday \u003cmike.munday@ibm.com\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Filippo Valsorda \u003cfilippo@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "347c8b15fbe9371a8997a43ff608cc82fd925ff6",
      "old_mode": 33188,
      "old_path": "poly1305/mac_noasm.go",
      "new_id": "d118f30ed56c0ff1017c7c18e5003f7766f7801f",
      "new_mode": 33188,
      "new_path": "poly1305/mac_noasm.go"
    },
    {
      "type": "modify",
      "old_id": "3c75c2a6705346a0fda791694cb2678c3f3a3b92",
      "old_mode": 33188,
      "old_path": "poly1305/poly1305.go",
      "new_id": "9d7a6af09feb47240727065bb9d3683f4e18353e",
      "new_mode": 33188,
      "new_path": "poly1305/poly1305.go"
    },
    {
      "type": "modify",
      "old_id": "721a262b04a681e2ba15341977c8a7eb4fb12455",
      "old_mode": 33188,
      "old_path": "poly1305/poly1305_test.go",
      "new_id": "e7ec6d19dd2e3dd6ba2e9458852b1ea54b95eab3",
      "new_mode": 33188,
      "new_path": "poly1305/poly1305_test.go"
    },
    {
      "type": "modify",
      "old_id": "c77ff179d0f04d06c21ed9cf572d490f834eb7b6",
      "old_mode": 33188,
      "old_path": "poly1305/sum_generic.go",
      "new_id": "c942a65904fa97f4e8efa9203e7cfca42f2f72d6",
      "new_mode": 33188,
      "new_path": "poly1305/sum_generic.go"
    },
    {
      "type": "delete",
      "old_id": "2b55a29c5030e01c56c60913585bdd61dfac8ec7",
      "old_mode": 33188,
      "old_path": "poly1305/sum_noasm.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "5f91ff84a9e584bab35982fd733710adf55fe02c",
      "old_mode": 33188,
      "old_path": "poly1305/sum_s390x.go",
      "new_id": "958fedc0790b1b7d945a9651bc6c3e7ffaa62a99",
      "new_mode": 33188,
      "new_path": "poly1305/sum_s390x.go"
    },
    {
      "type": "modify",
      "old_id": "806d1694b041a42724dbe23b3b931bfd6ef1c8c7",
      "old_mode": 33188,
      "old_path": "poly1305/sum_s390x.s",
      "new_id": "0fa9ee6e0bffc1b396da3f0590f886dfeb17525f",
      "new_mode": 33188,
      "new_path": "poly1305/sum_s390x.s"
    },
    {
      "type": "delete",
      "old_id": "b439af9369344ad389394af0fe4811fc4a5bc430",
      "old_mode": 33188,
      "old_path": "poly1305/sum_vmsl_s390x.s",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "18d7ff8e85f02b8f409402622be9912bedf70def",
      "old_mode": 33188,
      "old_path": "poly1305/vectors_test.go",
      "new_id": "4788950f19c710291d690946689b7e3ca6ded3de",
      "new_mode": 33188,
      "new_path": "poly1305/vectors_test.go"
    }
  ]
}
