)]}'
{
  "commit": "107778b592576c0c8e8d2ca7a2aa5415a4908223",
  "tree": "0e07f6abd2acaf69bf25efacf520584d748c860b",
  "parents": [
    "4d03c5047a07a62563e1a8fa798ea258f048bfde"
  ],
  "author": {
    "name": "Johannes Goetzfried",
    "email": "Johannes.Goetzfried@informatik.stud.uni-erlangen.de",
    "time": "Mon May 28 15:54:24 2012 +0200"
  },
  "committer": {
    "name": "Herbert Xu",
    "email": "herbert@gondor.apana.org.au",
    "time": "Tue Jun 12 16:46:07 2012 +0800"
  },
  "message": "crypto: twofish - add x86_64/avx assembler implementation\n\nThis patch adds a x86_64/avx assembler implementation of the Twofish block\ncipher. The implementation processes eight blocks in parallel (two 4 block\nchunk AVX operations). The table-lookups are done in general-purpose registers.\nFor small blocksizes the 3way-parallel functions from the twofish-x86_64-3way\nmodule are called. A good performance increase is provided for blocksizes\ngreater or equal to 128B.\n\nPatch has been tested with tcrypt and automated filesystem tests.\n\nTcrypt benchmark results:\n\nIntel Core i5-2500 CPU (fam:6, model:42, step:7)\n\ntwofish-avx-x86_64 vs. twofish-x86_64-3way\n128bit key:                                             (lrw:256bit)    (xts:256bit)\nsize    ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec lrw-enc lrw-dec xts-enc xts-dec\n16B     0.96x   0.97x   1.00x   0.95x   0.97x   0.97x   0.96x   0.95x   0.95x   0.98x\n64B     0.99x   0.99x   1.00x   0.99x   0.98x   0.98x   0.99x   0.98x   0.99x   0.98x\n256B    1.20x   1.21x   1.00x   1.19x   1.15x   1.14x   1.19x   1.20x   1.18x   1.19x\n1024B   1.29x   1.30x   1.00x   1.28x   1.23x   1.24x   1.26x   1.28x   1.26x   1.27x\n8192B   1.31x   1.32x   1.00x   1.31x   1.25x   1.25x   1.28x   1.29x   1.28x   1.30x\n\n256bit key:                                             (lrw:384bit)    (xts:512bit)\nsize    ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec lrw-enc lrw-dec xts-enc xts-dec\n16B     0.96x   0.96x   1.00x   0.96x   0.97x   0.98x   0.95x   0.95x   0.95x   0.96x\n64B     1.00x   0.99x   1.00x   0.98x   0.98x   1.01x   0.98x   0.98x   0.98x   0.98x\n256B    1.20x   1.21x   1.00x   1.21x   1.15x   1.15x   1.19x   1.20x   1.18x   1.19x\n1024B   1.29x   1.30x   1.00x   1.28x   1.23x   1.23x   1.26x   1.27x   1.26x   1.27x\n8192B   1.31x   1.33x   1.00x   1.31x   1.26x   1.26x   1.29x   1.29x   1.28x   1.30x\n\ntwofish-avx-x86_64 vs aes-asm (8kB block):\n         128bit  256bit\necb-enc  1.19x   1.63x\necb-dec  1.18x   1.62x\ncbc-enc  0.75x   1.03x\ncbc-dec  1.23x   1.67x\nctr-enc  1.24x   1.65x\nctr-dec  1.24x   1.65x\nlrw-enc  1.15x   1.53x\nlrw-dec  1.14x   1.52x\nxts-enc  1.16x   1.56x\nxts-dec  1.16x   1.56x\n\nSigned-off-by: Johannes Goetzfried \u003cJohannes.Goetzfried@informatik.stud.uni-erlangen.de\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "479f95a744f7ab8b770abcf3af81c99a28790079",
      "old_mode": 33188,
      "old_path": "arch/x86/crypto/Makefile",
      "new_id": "3420feef0c700281e6533f984073162d31769aee",
      "new_mode": 33188,
      "new_path": "arch/x86/crypto/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc31b89ba4c3135bd8d00006adcec66802aa12b1",
      "new_mode": 33188,
      "new_path": "arch/x86/crypto/twofish-avx-x86_64-asm_64.S"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "599f19e4bef68ffa24269f49bf97dd0f71fbb79c",
      "new_mode": 33188,
      "new_path": "arch/x86/crypto/twofish_avx_glue.c"
    },
    {
      "type": "modify",
      "old_id": "922ab24cce3152c1a2737043d316e015ed794e27",
      "old_mode": 33188,
      "old_path": "arch/x86/crypto/twofish_glue_3way.c",
      "new_id": "77e4e55a26608c4df51297e44b0bcb78c4c7aa37",
      "new_mode": 33188,
      "new_path": "arch/x86/crypto/twofish_glue_3way.c"
    },
    {
      "type": "modify",
      "old_id": "8e84225c096b6adfafcde59d08e066e5751af9c2",
      "old_mode": 33188,
      "old_path": "crypto/Kconfig",
      "new_id": "e00a4e49e013a68ca7a499eac1b27f818ed52668",
      "new_mode": 33188,
      "new_path": "crypto/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "750cce44bad6a026460c1d64d053c0033fa63e7f",
      "old_mode": 33188,
      "old_path": "crypto/tcrypt.c",
      "new_id": "2af879786e7585606a9ffdf99d8674056acdb4fc",
      "new_mode": 33188,
      "new_path": "crypto/tcrypt.c"
    },
    {
      "type": "modify",
      "old_id": "eb6d20f8ec5d2c6081ca5f763a8f603363c3d919",
      "old_mode": 33188,
      "old_path": "crypto/testmgr.c",
      "new_id": "73b3ec6fe1a2253ef261c32445abeb91bd4a510d",
      "new_mode": 33188,
      "new_path": "crypto/testmgr.c"
    }
  ]
}
