)]}'
{
  "commit": "9eefe520c814f6f62c5d36a2ddcd3fb99dfdb30e",
  "tree": "064ce99674f144b681f8d365d1e20d99c8078d0c",
  "parents": [
    "f1a43f93f0f3bab418800eaccb9e2e3b5427e173"
  ],
  "author": {
    "name": "Nadia Derbey",
    "email": "Nadia.Derbey@bull.net",
    "time": "Fri Jul 25 01:48:08 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Jul 25 10:53:42 2008 -0700"
  },
  "message": "ipc: do not use a negative value to re-enable msgmni automatic recomputing\n\nThis patch proposes an alternative to the \"magical\npositive-versus-negative number trick\" Andrew complained about last week\nin http://lkml.org/lkml/2008/6/24/418.\n\nThis had been introduced with the patches that scale msgmni to the amount\nof lowmem.  With these patches, msgmni has a registered notification\nroutine that recomputes msgmni value upon memory add/remove or ipc\nnamespace creation/ removal.\n\nWhen msgmni is changed from user space (i.e.  value written to the proc\nfile), that notification routine is unregistered, and the way to make it\nregistered back is to write a negative value into the proc file.  This is\nthe \"magical positive-versus-negative number trick\".\n\nTo fix this, a new proc file is introduced: /proc/sys/kernel/auto_msgmni.\nThis file acts as ON/OFF for msgmni automatic recomputing.\n\nWith this patch, the process is the following:\n1) kernel boots in \"automatic recomputing mode\"\n   /proc/sys/kernel/msgmni contains the value that has been computed (depends\n                           on lowmem)\n   /proc/sys/kernel/automatic_msgmni contains \"1\"\n\n2) echo \u003cval\u003e \u003e /proc/sys/kernel/msgmni\n   . sets msg_ctlmni to \u003cval\u003e\n   . de-activates automatic recomputing (i.e. if, say, some memory is added\n     msgmni won\u0027t be recomputed anymore)\n   . /proc/sys/kernel/automatic_msgmni now contains \"0\"\n\n3) echo \"0\" \u003e /proc/sys/kernel/automatic_msgmni\n   . de-activates msgmni automatic recomputing\n     this has the same effect as 2) except that msg_ctlmni\u0027s value stays\n     blocked at its current value)\n\n3) echo \"1\" \u003e /proc/sys/kernel/automatic_msgmni\n   . recomputes msgmni\u0027s value based on the current available memory size\n     and number of ipc namespaces\n   . re-activates automatic recomputing for msgmni.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Solofo Ramangalahy \u003cSolofo.Ramangalahy@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea6c18a8b0d442d13dabcdeca9961fb8540ca451",
      "old_mode": 33188,
      "old_path": "include/linux/ipc_namespace.h",
      "new_id": "ea330f9e710015c2c8a4b80ebfaec9cd133ffcdd",
      "new_mode": 33188,
      "new_path": "include/linux/ipc_namespace.h"
    },
    {
      "type": "modify",
      "old_id": "d3497465cc0a5aa461dabce18b0f7af4dc537cea",
      "old_mode": 33188,
      "old_path": "ipc/ipc_sysctl.c",
      "new_id": "69bc85978ba0bb04f0f77745cfa842aea69b7c76",
      "new_mode": 33188,
      "new_path": "ipc/ipc_sysctl.c"
    },
    {
      "type": "modify",
      "old_id": "70ff09183f7ba73529842fbd9eabda0e3de72269",
      "old_mode": 33188,
      "old_path": "ipc/ipcns_notifier.c",
      "new_id": "b9b31a4f77e114cff79eef3cd25e075a3dc8d871",
      "new_mode": 33188,
      "new_path": "ipc/ipcns_notifier.c"
    }
  ]
}
