)]}'
{
  "commit": "752851f921a235645fce8bdb3d696f70b364435a",
  "tree": "84012f29255b1a0b30d5971467322016e287af8c",
  "parents": [
    "b65f49530062549f97ef54d1d00ef63b83d182fa"
  ],
  "author": {
    "name": "David Howells",
    "email": "dhowells@redhat.com",
    "time": "Tue Apr 09 20:18:23 2024 +0100"
  },
  "committer": {
    "name": "David Howells",
    "email": "dhowells@redhat.com",
    "time": "Tue Dec 03 23:36:16 2024 +0000"
  },
  "message": "rxrpc: Implement RACK/TLP to deal with transmission stalls [RFC8985]\n\nWhen an rxrpc call is in its transmission phase and is sending a lot of\npackets, stalls occasionally occur that cause severe performance\ndegradation (eg. increasing the transmission time for a 256MiB payload from\n0.7s to 2.5s over a 10G link).\n\nrxrpc already implements TCP-style congestion control [RFC5681] and this\nhelps mitigate the effects, but occasionally we\u0027re missing a time event\nthat deals with a missing ACK, leading to a stall until the RTO expires.\n\nFix this by implementing RACK/TLP in rxrpc.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\ncc: Marc Dionne \u003cmarc.dionne@auristor.com\u003e\ncc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\ncc: Eric Dumazet \u003cedumazet@google.com\u003e\ncc: Jakub Kicinski \u003ckuba@kernel.org\u003e\ncc: Paolo Abeni \u003cpabeni@redhat.com\u003e\ncc: linux-afs@lists.infradead.org\ncc: netdev@vger.kernel.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "71df5c48a413d0978c4a96cc02cc7100f4c31c5d",
      "old_mode": 33188,
      "old_path": "include/trace/events/rxrpc.h",
      "new_id": "2f119d18a061fe6706456e629ccfdf5282bf98be",
      "new_mode": 33188,
      "new_path": "include/trace/events/rxrpc.h"
    },
    {
      "type": "modify",
      "old_id": "ac5caf5a48e1616ab456df7a124a663156bac660",
      "old_mode": 33188,
      "old_path": "net/rxrpc/Makefile",
      "new_id": "210b75e3179e9874737fb4cfd5f8cada45afb719",
      "new_mode": 33188,
      "new_path": "net/rxrpc/Makefile"
    },
    {
      "type": "modify",
      "old_id": "a9d732ba6df0d182e21a4c7258ddffac9783a367",
      "old_mode": 33188,
      "old_path": "net/rxrpc/ar-internal.h",
      "new_id": "0c0a3c89dba3258293a4aba2e11ce606882c6f34",
      "new_mode": 33188,
      "new_path": "net/rxrpc/ar-internal.h"
    },
    {
      "type": "modify",
      "old_id": "7af2755442512227703386cddbe76ab723d880dc",
      "old_mode": 33188,
      "old_path": "net/rxrpc/call_event.c",
      "new_id": "8e477f7f885014891363343f4fe153bf896e7579",
      "new_mode": 33188,
      "new_path": "net/rxrpc/call_event.c"
    },
    {
      "type": "modify",
      "old_id": "fb4ee0d2e9e1600f0bb672303a3d79a09f991aa8",
      "old_mode": 33188,
      "old_path": "net/rxrpc/call_object.c",
      "new_id": "5a543c3f6fb0856c745e9136b1476a0b872990bc",
      "new_mode": 33188,
      "new_path": "net/rxrpc/call_object.c"
    },
    {
      "type": "modify",
      "old_id": "9f308bd512e93fde6db9aafc3eca4997bd1b3233",
      "old_mode": 33188,
      "old_path": "net/rxrpc/input.c",
      "new_id": "4974b5accafa3372238127b5fccfff05bc8215cf",
      "new_mode": 33188,
      "new_path": "net/rxrpc/input.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13c371261e0a58ae8772adde08925419552602bc",
      "new_mode": 33188,
      "new_path": "net/rxrpc/input_rack.c"
    },
    {
      "type": "modify",
      "old_id": "fbacf2056f643f5f9fc5f45626fca74141fde29a",
      "old_mode": 33188,
      "old_path": "net/rxrpc/io_thread.c",
      "new_id": "2925c7fc82cfb47e4cbe86f95df4c252518b9320",
      "new_mode": 33188,
      "new_path": "net/rxrpc/io_thread.c"
    },
    {
      "type": "modify",
      "old_id": "f934551a9b1c69c1887a435a510a46fd99c3cee6",
      "old_mode": 33188,
      "old_path": "net/rxrpc/output.c",
      "new_id": "6f7a125d6e9085e519f7c9cc6fc39c2b401887ba",
      "new_mode": 33188,
      "new_path": "net/rxrpc/output.c"
    }
  ]
}
