)]}'
{
  "commit": "228e548e602061b08ee8e8966f567c12aa079682",
  "tree": "4c79ecf071d6174d42da1557812a4646d0aaa5af",
  "parents": [
    "1c5cae815d19ffe02bdfda1260949ef2b1806171"
  ],
  "author": {
    "name": "Anton Blanchard",
    "email": "anton@samba.org",
    "time": "Mon May 02 20:21:35 2011 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu May 05 11:10:14 2011 -0700"
  },
  "message": "net: Add sendmmsg socket system call\n\nThis patch adds a multiple message send syscall and is the send\nversion of the existing recvmmsg syscall. This is heavily\nbased on the patch by Arnaldo that added recvmmsg.\n\nI wrote a microbenchmark to test the performance gains of using\nthis new syscall:\n\nhttp://ozlabs.org/~anton/junkcode/sendmmsg_test.c\n\nThe test was run on a ppc64 box with a 10 Gbit network card. The\nbenchmark can send both UDP and RAW ethernet packets.\n\n64B UDP\n\nbatch   pkts/sec\n1       804570\n2       872800 (+ 8 %)\n4       916556 (+14 %)\n8       939712 (+17 %)\n16      952688 (+18 %)\n32      956448 (+19 %)\n64      964800 (+20 %)\n\n64B raw socket\n\nbatch   pkts/sec\n1       1201449\n2       1350028 (+12 %)\n4       1461416 (+22 %)\n8       1513080 (+26 %)\n16      1541216 (+28 %)\n32      1553440 (+29 %)\n64      1557888 (+30 %)\n\nWe see a 20% improvement in throughput on UDP send and 30%\non raw socket send.\n\n[ Add sparc syscall entries. -DaveM ]\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60f64b132bd41ef70f4ecbda237cbb0c603a34b8",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/systbl.h",
      "new_id": "8489d372077fa4efebaaf0c1dae0b9730a37b8e6",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/systbl.h"
    },
    {
      "type": "modify",
      "old_id": "3c215648ce6dcaf4957b4cd051e517291646711c",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/asm/unistd.h",
      "new_id": "6d23c8193caa246a39b2285240d0727fa7d19980",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/asm/unistd.h"
    },
    {
      "type": "modify",
      "old_id": "9d897b6db9835ea31f8af84860b314ee93d88856",
      "old_mode": 33188,
      "old_path": "arch/sparc/include/asm/unistd.h",
      "new_id": "c5387ed0add8f87e9c98d165055484a05e60931c",
      "new_mode": 33188,
      "new_path": "arch/sparc/include/asm/unistd.h"
    },
    {
      "type": "modify",
      "old_id": "47ac73c32e883e50a36ec88e133ed679722ae55c",
      "old_mode": 33188,
      "old_path": "arch/sparc/kernel/systbls_32.S",
      "new_id": "332c83ff7701799f30538cb891c016337bd1c749",
      "new_mode": 33188,
      "new_path": "arch/sparc/kernel/systbls_32.S"
    },
    {
      "type": "modify",
      "old_id": "4f3170c1ef476a8914cbd239e18aac20b8ab7012",
      "old_mode": 33188,
      "old_path": "arch/sparc/kernel/systbls_64.S",
      "new_id": "43887ca0be0e263562e33f03d19fd202a8b2bf13",
      "new_mode": 33188,
      "new_path": "arch/sparc/kernel/systbls_64.S"
    },
    {
      "type": "modify",
      "old_id": "849a9d23c71d5c11080d92edbb705343879aa15e",
      "old_mode": 33188,
      "old_path": "arch/x86/ia32/ia32entry.S",
      "new_id": "95f5826be458a4a1368d45bc1cd6c81342d660b9",
      "new_mode": 33188,
      "new_path": "arch/x86/ia32/ia32entry.S"
    },
    {
      "type": "modify",
      "old_id": "a755ef5e5977540cd52b63e85374e8c4d03e7b8c",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/unistd_32.h",
      "new_id": "fb6a625c99bf622449d2378f3815d1d363453029",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/unistd_32.h"
    },
    {
      "type": "modify",
      "old_id": "160fa76bd5786e680da555ad96d8101a71edc99e",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/unistd_64.h",
      "new_id": "79f90eb15aad0f6c882f136b359506f9bcbc93e6",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/unistd_64.h"
    },
    {
      "type": "modify",
      "old_id": "abce34d5c79de0ce7e6275640a3470ccca9e1805",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/syscall_table_32.S",
      "new_id": "32cbffb0c494bb881f4341c174ad0ece29205ed0",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/syscall_table_32.S"
    },
    {
      "type": "modify",
      "old_id": "94de83c0f877629a4d25d8fedfd8fff290550e9e",
      "old_mode": 33188,
      "old_path": "include/linux/net.h",
      "new_id": "1da55e9b6f01a9733f38b309e7b282f447764da7",
      "new_mode": 33188,
      "new_path": "include/linux/net.h"
    },
    {
      "type": "modify",
      "old_id": "d2b5e982f0796aede07031273bbd0d7c786acf42",
      "old_mode": 33188,
      "old_path": "include/linux/socket.h",
      "new_id": "4ef98e422fde2c13169b851670dbc9d511e25088",
      "new_mode": 33188,
      "new_path": "include/linux/socket.h"
    },
    {
      "type": "modify",
      "old_id": "83ecc1749ef6153581d295706d6c4768c11931e0",
      "old_mode": 33188,
      "old_path": "include/linux/syscalls.h",
      "new_id": "ab71447d0c5ad7d470751b856cb4869960ad1fee",
      "new_mode": 33188,
      "new_path": "include/linux/syscalls.h"
    },
    {
      "type": "modify",
      "old_id": "28d5428ec6a21dbe8aef4663f4777d771cff1078",
      "old_mode": 33188,
      "old_path": "include/net/compat.h",
      "new_id": "9ee75edcc295da48db3cad0fbd8e1fd1a1b79f76",
      "new_mode": 33188,
      "new_path": "include/net/compat.h"
    },
    {
      "type": "modify",
      "old_id": "25cc41cd8f3314c75becbf6a668445583bf98582",
      "old_mode": 33188,
      "old_path": "kernel/sys_ni.c",
      "new_id": "97e966f171c656356ffc2d521aa866fb1675adfe",
      "new_mode": 33188,
      "new_path": "kernel/sys_ni.c"
    },
    {
      "type": "modify",
      "old_id": "3649d58953615fea0c0e1d1b5ba8882632df7676",
      "old_mode": 33188,
      "old_path": "net/compat.c",
      "new_id": "c578d9382e193db92a3b5a5511d62303be4df7c5",
      "new_mode": 33188,
      "new_path": "net/compat.c"
    },
    {
      "type": "modify",
      "old_id": "d25f5a9d6fa22c6894cefb0cf6093f438393aa28",
      "old_mode": 33188,
      "old_path": "net/socket.c",
      "new_id": "ed50255143d546f5d54cc01ece787eb86ab6cb1f",
      "new_mode": 33188,
      "new_path": "net/socket.c"
    }
  ]
}
