)]}'
{
  "commit": "0fd879120d6f25b65084b288c61e0412cf265ba4",
  "tree": "a072def6560978025bd91549827c630d4fadd85e",
  "parents": [
    "3b6e1be4391d96e81cee022f77f7bab85d51cf4e"
  ],
  "author": {
    "name": "Eric Biggers",
    "email": "ebiggers@google.com",
    "time": "Tue Dec 17 03:54:56 2024 +0000"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jan 06 14:17:42 2025 -0800"
  },
  "message": "Disable the \"AVX10/256\" AES-GCM functions for now\n\nSince there is now a VAES+AVX2 implementation of AES-GCM, and the future\nof AVX10/256 is uncertain, disable the AES-GCM functions that use\nAVX10/256 (equivalently AVX512 with a maximum vector length of 256\nbits).  This leaves VAES+AVX2 as the sole 256-bit support for now.\n\nFor now this just affects Intel Ice Lake and Tiger Lake (which actually\nsupport AVX512, but where downclocking issues make 256-bit arguably\npreferable to 512-bit), where a slight performance loss is seen on long\nmessages.  The following tables compare AES-256-GCM throughput in MB/s\non Ice Lake server for various message lengths:\n\nEncryption:\n\n            | 16384 |  4096 |  4095 |  1420 |   512 |   500 |\n    --------+-------+-------+-------+-------+-------+-------+\n    Before  |  7533 |  6990 |  6220 |  5096 |  4200 |  2702 |\n    After   |  7403 |  6879 |  6236 |  4980 |  4040 |  2868 |\n\n            |   300 |   200 |    64 |    63 |    16 |\n    --------+-------+-------+-------+-------+-------+\n    Before  |  2086 |  1555 |  1031 |   657 |   433 |\n    After   |  2069 |  1635 |  1045 |   667 |   430 |\n\nDecryption:\n\n            | 16384 |  4096 |  4095 |  1420 |   512 |   500 |\n    --------+-------+-------+-------+-------+-------+-------+\n    Before  |  7703 |  7140 |  6524 |  5283 |  4244 |  2990 |\n    After   |  7572 |  7056 |  6494 |  5155 |  4224 |  3073 |\n\n            |   300 |   200 |    64 |    63 |    16 |\n    --------+-------+-------+-------+-------+-------+\n    Before  |  2276 |  1733 |  1070 |   680 |   447 |\n    After   |  2249 |  1743 |  1100 |   692 |   447 |\n\nThis change should be reconsidered if AVX10/256 sees widespread support,\nas we shouldn\u0027t carry forward a restriction to AVX2 unnecessarily.\n\nThis change also replaces gcm_init_vpclmulqdq_avx10 with\ngcm_init_vpclmulqdq_avx10_512, now instantiated using 512-bit vectors.\nOtherwise it would be the only avx10 function left using 256-bit.\n\nChange-Id: I7fd21568482118a2ce7a382e9042b187cd2739f7\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/74369\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "269ac801a25e83862316301256914ce81a344272",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/asm/aes-gcm-avx10-x86_64.pl",
      "new_id": "06ea7e6179145d78fb4f07d4ac74b561cd7a8cea",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/asm/aes-gcm-avx10-x86_64.pl"
    },
    {
      "type": "modify",
      "old_id": "e77c52589a1ba280896b846d5bd5a1548dafb906",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/gcm.cc.inc",
      "new_id": "d8ccf0093def11ccee7a0b354a9093a014fb8a94",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/gcm.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "d19552626949b79b09c090495212c267167bf16e",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/gcm_test.cc",
      "new_id": "6329675959da98bf98705134021e2f3410035b91",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/gcm_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f041bf8edd50fff4a3a86784f48f8063ac04904e",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/internal.h",
      "new_id": "7a6e9aa3c63327df5a8b587a068fb6f8f78119aa",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/internal.h"
    },
    {
      "type": "modify",
      "old_id": "bfd004521ba68616f484b33f7d09514aabf31979",
      "old_mode": 33188,
      "old_path": "crypto/impl_dispatch_test.cc",
      "new_id": "26913c7ee875e35a82fd17193b8e56cd854de439",
      "new_mode": 33188,
      "new_path": "crypto/impl_dispatch_test.cc"
    },
    {
      "type": "modify",
      "old_id": "62273c6b26b8d39b520f3cd15391db2cb5862664",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "5ebfaff895b36df09de80c53d3dc7a2c2e09bf0d",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    },
    {
      "type": "modify",
      "old_id": "b75bb07151d14112fe748e330acdc66fb9f62d7d",
      "old_mode": 33188,
      "old_path": "gen/bcm/aes-gcm-avx10-x86_64-apple.S",
      "new_id": "54fcde048559c3b77aa91bcbd97232e6119d37ef",
      "new_mode": 33188,
      "new_path": "gen/bcm/aes-gcm-avx10-x86_64-apple.S"
    },
    {
      "type": "modify",
      "old_id": "cf661c8667ddea85fd158483f4eebc3bd51db94c",
      "old_mode": 33188,
      "old_path": "gen/bcm/aes-gcm-avx10-x86_64-linux.S",
      "new_id": "2be6a8cb7b5593abb7440fff39527a855cfaf53f",
      "new_mode": 33188,
      "new_path": "gen/bcm/aes-gcm-avx10-x86_64-linux.S"
    },
    {
      "type": "modify",
      "old_id": "258f92322d2343ec1e7e8784359c8867d9cd1826",
      "old_mode": 33188,
      "old_path": "gen/bcm/aes-gcm-avx10-x86_64-win.asm",
      "new_id": "fb9f896a97d161cf136a64081b98039b61d9b8f3",
      "new_mode": 33188,
      "new_path": "gen/bcm/aes-gcm-avx10-x86_64-win.asm"
    }
  ]
}
