)]}'
{
  "commit": "34441427aab4bdb3069a4ffcda69a99357abcb2e",
  "tree": "3beebde910f25b0945e9105017fd743c9e5241a5",
  "parents": [
    "3c904afd7358e9ef515eb5df36b6f25c2b7fc2da"
  ],
  "author": {
    "name": "Robin Holt",
    "email": "holt@sgi.com",
    "time": "Tue May 11 14:06:46 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue May 11 17:33:41 2010 -0700"
  },
  "message": "revert \"procfs: provide stack information for threads\" and its fixup commits\n\nOriginally, commit d899bf7b (\"procfs: provide stack information for\nthreads\") attempted to introduce a new feature for showing where the\nthreadstack was located and how many pages are being utilized by the\nstack.\n\nCommit c44972f1 (\"procfs: disable per-task stack usage on NOMMU\") was\napplied to fix the NO_MMU case.\n\nCommit 89240ba0 (\"x86, fs: Fix x86 procfs stack information for threads on\n64-bit\") was applied to fix a bug in ia32 executables being loaded.\n\nCommit 9ebd4eba7 (\"procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel\nthreads\") was applied to fix a bug which had kernel threads printing a\nuserland stack address.\n\nCommit 1306d603f (\u0027proc: partially revert \"procfs: provide stack\ninformation for threads\"\u0027) was then applied to revert the stack pages\nbeing used to solve a significant performance regression.\n\nThis patch nearly undoes the effect of all these patches.\n\nThe reason for reverting these is it provides an unusable value in\nfield 28.  For x86_64, a fork will result in the task-\u003estack_start\nvalue being updated to the current user top of stack and not the stack\nstart address.  This unpredictability of the stack_start value makes\nit worthless.  That includes the intended use of showing how much stack\nspace a thread has.\n\nOther architectures will get different values.  As an example, ia64\ngets 0.  The do_fork() and copy_process() functions appear to treat the\nstack_start and stack_size parameters as architecture specific.\n\nI only partially reverted c44972f1 (\"procfs: disable per-task stack usage\non NOMMU\") .  If I had completely reverted it, I would have had to change\nmm/Makefile only build pagewalk.o when CONFIG_PROC_PAGE_MONITOR is\nconfigured.  Since I could not test the builds without significant effort,\nI decided to not change mm/Makefile.\n\nI only partially reverted 89240ba0 (\"x86, fs: Fix x86 procfs stack\ninformation for threads on 64-bit\") .  I left the KSTK_ESP() change in\nplace as that seemed worthwhile.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\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": "a4f30faa4f1f73ad4622b333007525f9134c21c4",
      "old_mode": 33188,
      "old_path": "Documentation/filesystems/proc.txt",
      "new_id": "1e359b62c40a2eb67e04ab299012760587cab29a",
      "new_mode": 33188,
      "new_path": "Documentation/filesystems/proc.txt"
    },
    {
      "type": "modify",
      "old_id": "4b6ed03cc4781b38352846206875cc5ffdfb992d",
      "old_mode": 33188,
      "old_path": "fs/compat.c",
      "new_id": "05448730f840be408e6bd7079df8c8ef26b03fd9",
      "new_mode": 33188,
      "new_path": "fs/compat.c"
    },
    {
      "type": "modify",
      "old_id": "49cdaa19e5b9b800f9c23b8770f28e4cb33c8fbf",
      "old_mode": 33188,
      "old_path": "fs/exec.c",
      "new_id": "e6e94c626c2cbebb7699597271a953b65e611e6e",
      "new_mode": 33188,
      "new_path": "fs/exec.c"
    },
    {
      "type": "modify",
      "old_id": "e51f2ec2c5e5c53809cacac73c544daaec76a579",
      "old_mode": 33188,
      "old_path": "fs/proc/array.c",
      "new_id": "885ab5513ac5cfe10e18c4fba149ddf478252f40",
      "new_mode": 33188,
      "new_path": "fs/proc/array.c"
    },
    {
      "type": "modify",
      "old_id": "070553427dd570176253d83b99fe91d7a6ec0c89",
      "old_mode": 33188,
      "old_path": "fs/proc/task_mmu.c",
      "new_id": "47f5b145f56eee5aaefc3b52aac8fa78b978b692",
      "new_mode": 33188,
      "new_path": "fs/proc/task_mmu.c"
    },
    {
      "type": "modify",
      "old_id": "dad7f668ebf70041f3897102a0ff13a1a456edad",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "2b7b81df78b307e432d9132db78277e0a3960ef7",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "44b0791b0a2e378d1ad20e390cbfbec981e7fad8",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "4c14942a0ee36fa994abdf91fa218d68b9e4052d",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    }
  ]
}
