)]}'
{
  "commit": "da27f796a832122ee533c7685438dad1c4e338dd",
  "tree": "f65cbf61db048942e78fc877732d60be814eebb0",
  "parents": [
    "a80c4adcb574821e534779c48ae13953b7d1d996"
  ],
  "author": {
    "name": "Rik van Riel",
    "email": "riel@surriel.com",
    "time": "Fri Jan 27 13:46:51 2023 -0500"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Fri Jan 27 19:08:00 2023 -0500"
  },
  "message": "ipc,namespace: batch free ipc_namespace structures\n\nInstead of waiting for an RCU grace period between each ipc_namespace\nstructure that is being freed, wait an RCU grace period for every batch\nof ipc_namespace structures.\n\nThanks to Al Viro for the suggestion of the helper function.\n\nThis speeds up the run time of the test case that allocates ipc_namespaces\nin a loop from 6 minutes, to a little over 1 second:\n\nreal\t0m1.192s\nuser\t0m0.038s\nsys\t0m1.152s\n\nSigned-off-by: Rik van Riel \u003criel@surriel.com\u003e\nReported-by: Chris Mason \u003cclm@meta.com\u003e\nTested-by: Giuseppe Scrivano \u003cgscrivan@redhat.com\u003e\nSuggested-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ab467ee5834115b4bea458ebcd5607047d542d95",
      "old_mode": 33188,
      "old_path": "fs/namespace.c",
      "new_id": "1ad4e5acef06e957c72834922faf6e9b1d56648f",
      "new_mode": 33188,
      "new_path": "fs/namespace.c"
    },
    {
      "type": "modify",
      "old_id": "62475996fac669a52ab485733b90b14133a623fb",
      "old_mode": 33188,
      "old_path": "include/linux/mount.h",
      "new_id": "ec55a031aa8c1db73ffd0c1d1c4dfb0a4756412f",
      "new_mode": 33188,
      "new_path": "include/linux/mount.h"
    },
    {
      "type": "modify",
      "old_id": "d09aa1c1e3e653b70e3788d0359517bcb92982b9",
      "old_mode": 33188,
      "old_path": "ipc/mqueue.c",
      "new_id": "6c5bf7cce7fe3c559caf595ce7b1dfc0e4eb81be",
      "new_mode": 33188,
      "new_path": "ipc/mqueue.c"
    },
    {
      "type": "modify",
      "old_id": "a26860a41daca94f4239ad9486967001ac23d7f8",
      "old_mode": 33188,
      "old_path": "ipc/namespace.c",
      "new_id": "6ecc30effd3ec6e875b1db39e85b6be76e5a0186",
      "new_mode": 33188,
      "new_path": "ipc/namespace.c"
    },
    {
      "type": "modify",
      "old_id": "b2906e3665394210fc27d282d0027324fd38101b",
      "old_mode": 33188,
      "old_path": "ipc/util.h",
      "new_id": "67bdd2aa2c28db3ce48ac9bd9d45fccc57468262",
      "new_mode": 33188,
      "new_path": "ipc/util.h"
    }
  ]
}
