)]}'
{
  "log": [
    {
      "commit": "9ebd4eba761b624a6a6c9189335adeddcb1fa0e0",
      "tree": "8b5b5fc3514df3edf8bf6436636bf813c1f51e8c",
      "parents": [
        "6ad696d2cf535772dff659298ec7e7260e344595"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Nov 17 14:06:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel threads\n\nFix a small issue for the stack pointer in /proc/\u003cpid\u003e/stat.  In case of a\nkernel thread the value of the printed stack pointer should be 0.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c44972f1782124f945ec8bea8a78f30f1a3538bd",
      "tree": "f804afc972b794100547383b5ca8e1936a91c3aa",
      "parents": [
        "b9b9df62e7fd6b5f099c24bc867100ab86e1da5a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Sep 24 14:47:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 17:11:24 2009 -0700"
      },
      "message": "procfs: disable per-task stack usage on NOMMU\n\nIt needs walk_page_range().\n\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nTested-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db",
      "tree": "32a5ee7816b2f0cb3261dcca8102b9cafe9251bd",
      "parents": [
        "cba8aafe1e07dfc8bae5ba78be8e02883bd34d31"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Sep 22 16:45:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "procfs: provide stack information for threads\n\nA patch to give a better overview of the userland application stack usage,\nespecially for embedded linux.\n\nCurrently you are only able to dump the main process/thread stack usage\nwhich is showed in /proc/pid/status by the \"VmStk\" Value.  But you get no\ninformation about the consumed stack memory of the the threads.\n\nThere is an enhancement in the /proc/\u003cpid\u003e/{task/*,}/*maps and which marks\nthe vm mapping where the thread stack pointer reside with \"[thread stack\nxxxxxxxx]\".  xxxxxxxx is the maximum size of stack.  This is a value\ninformation, because libpthread doesn\u0027t set the start of the stack to the\ntop of the mapped area, depending of the pthread usage.\n\nA sample output of /proc/\u003cpid\u003e/task/\u003ctid\u003e/maps looks like:\n\n08048000-08049000 r-xp 00000000 03:00 8312       /opt/z\n08049000-0804a000 rw-p 00001000 03:00 8312       /opt/z\n0804a000-0806b000 rw-p 00000000 00:00 0          [heap]\na7d12000-a7d13000 ---p 00000000 00:00 0\na7d13000-a7f13000 rw-p 00000000 00:00 0          [thread stack: 001ff4b4]\na7f13000-a7f14000 ---p 00000000 00:00 0\na7f14000-a7f36000 rw-p 00000000 00:00 0\na7f36000-a8069000 r-xp 00000000 03:00 4222       /lib/libc.so.6\na8069000-a806b000 r--p 00133000 03:00 4222       /lib/libc.so.6\na806b000-a806c000 rw-p 00135000 03:00 4222       /lib/libc.so.6\na806c000-a806f000 rw-p 00000000 00:00 0\na806f000-a8083000 r-xp 00000000 03:00 14462      /lib/libpthread.so.0\na8083000-a8084000 r--p 00013000 03:00 14462      /lib/libpthread.so.0\na8084000-a8085000 rw-p 00014000 03:00 14462      /lib/libpthread.so.0\na8085000-a8088000 rw-p 00000000 00:00 0\na8088000-a80a4000 r-xp 00000000 03:00 8317       /lib/ld-linux.so.2\na80a4000-a80a5000 r--p 0001b000 03:00 8317       /lib/ld-linux.so.2\na80a5000-a80a6000 rw-p 0001c000 03:00 8317       /lib/ld-linux.so.2\nafaf5000-afb0a000 rw-p 00000000 00:00 0          [stack]\nffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]\n\nAlso there is a new entry \"stack usage\" in /proc/\u003cpid\u003e/{task/*,}/status\nwhich will you give the current stack usage in kb.\n\nA sample output of /proc/self/status looks like:\n\nName:\tcat\nState:\tR (running)\nTgid:\t507\nPid:\t507\n.\n.\n.\nCapBnd:\tfffffffffffffeff\nvoluntary_ctxt_switches:\t0\nnonvoluntary_ctxt_switches:\t0\nStack usage:\t12 kB\n\nI also fixed stack base address in /proc/\u003cpid\u003e/{task/*,}/stat to the base\naddress of the associated thread stack and not the one of the main\nprocess.  This makes more sense.\n\n[akpm@linux-foundation.org: fs/proc/array.c now needs walk_page_range()]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f83ce3e6b02d5e48b3a43b001390e2b58820389d",
      "tree": "71c57abf4f9d259f5bfa22deaf724db85738f862",
      "parents": [
        "7fdf523067666b0eaff330f362401ee50ce187c4"
      ],
      "author": {
        "name": "Jake Edge",
        "email": "jake@lwn.net",
        "time": "Mon May 04 12:51:14 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 04 15:14:23 2009 -0700"
      },
      "message": "proc: avoid information leaks to non-privileged processes\n\nBy using the same test as is used for /proc/pid/maps and /proc/pid/smaps,\nonly allow processes that can ptrace() a given process to see information\nthat might be used to bypass address space layout randomization (ASLR).\nThese include eip, esp, wchan, and start_stack in /proc/pid/stat as well\nas the non-symbolic output from /proc/pid/wchan.\n\nASLR can be bypassed by sampling eip as shown by the proof-of-concept\ncode at http://code.google.com/p/fuzzyaslr/ As part of a presentation\n(http://www.cr0.org/paper/to-jt-linux-alsr-leak.pdf) esp and wchan were\nalso noted as possibly usable information leaks as well.  The\nstart_stack address also leaks potentially useful information.\n\nCc: Stable Team \u003cstable@kernel.org\u003e\nSigned-off-by: Jake Edge \u003cjake@lwn.net\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c69e8d9c01db2adc503464993c358901c9af9de4",
      "tree": "bed94aaa9aeb7a7834d1c880f72b62a11a752c78",
      "parents": [
        "86a264abe542cfececb4df129bc45a0338d8cdb9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "message": "CRED: Use RCU to access another task\u0027s creds and to release a task\u0027s own creds\n\nUse RCU to access another task\u0027s creds and to release a task\u0027s own creds.\nThis means that it will be possible for the credentials of a task to be\nreplaced without another task (a) requiring a full lock to read them, and (b)\nseeing deallocated memory.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a",
      "tree": "9e76f972eb7ce9b84e0146c8e4126a3f86acb428",
      "parents": [
        "15a2460ed0af7538ca8e6c610fe607a2cd9da142"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "message": "CRED: Separate task security context from task_struct\n\nSeparate the task security context from task_struct.  At this point, the\nsecurity data is temporarily embedded in the task_struct with two pointers\npointing to it.\n\nNote that the Alpha arch is altered as it refers to (E)UID and (E)GID in\nentry.S via asm-offsets.\n\nWith comment fixes Signed-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "526719ba51e7d7bd31f7af9ab04b015b70096685",
      "tree": "ccbacb533487b9f0b9e475050b3804fa506e7faf",
      "parents": [
        "77122d0b5d1fb2276b1fe7bce6366f22b2f96606"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Oct 27 15:19:48 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 27 08:40:17 2008 -0700"
      },
      "message": "Switch to a valid email address...\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "45acb8db06bad529f0feaf89465ce33152640089",
      "tree": "f6b899d124b70a0a2cb8b760566b8cf883d9abf7",
      "parents": [
        "478307230810d7e2a753ed220db9066dfdf88718"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Oct 07 01:58:45 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:58 2008 +0400"
      },
      "message": "proc: remove now unneeded ADDBUF macro\n\nAfter local seq_file conversion it was forgotten.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "a6bebbc87a8c16eabb6bd5c6fd2d994be0236fba",
      "tree": "3e617ca49063f3a12c982da5d6c687882a1b4070",
      "parents": [
        "53167a3ef23df561d898dee636f3393e9fba937c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sun Oct 05 00:51:15 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 10 04:18:57 2008 +0400"
      },
      "message": "[PATCH] signal, procfs: some lock_task_sighand() users do not need rcu_read_lock()\n\nlock_task_sighand() make sure task-\u003esighand is being protected,\nso we do not need rcu_read_lock().\n[ exec() will get task-\u003esighand-\u003esiglock before change task-\u003esighand! ]\n\nBut code using rcu_read_lock() _just_ to protect lock_task_sighand()\nonly appear in procfs. (and some code in procfs use lock_task_sighand()\nwithout such redundant protection.)\n\nOther subsystem may put lock_task_sighand() into rcu_read_lock()\ncritical region, but these rcu_read_lock() are used for protecting\n\"for_each_process()\", \"find_task_by_vpid()\" etc. , not for protecting\nlock_task_sighand().\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n[ok from Oleg]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "f06febc96ba8e0af80bcc3eaec0a109e88275fac",
      "tree": "46dba9432ef25d2eae9434ff2df638c7a268c0f1",
      "parents": [
        "6bfb09a1005193be5c81ebac9f3ef85210142650"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 14 16:25:35 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang\n\nOverview\n\nThis patch reworks the handling of POSIX CPU timers, including the\nITIMER_PROF, ITIMER_VIRT timers and rlimit handling.  It was put together\nwith the help of Roland McGrath, the owner and original writer of this code.\n\nThe problem we ran into, and the reason for this rework, has to do with using\na profiling timer in a process with a large number of threads.  It appears\nthat the performance of the old implementation of run_posix_cpu_timers() was\nat least O(n*3) (where \"n\" is the number of threads in a process) or worse.\nEverything is fine with an increasing number of threads until the time taken\nfor that routine to run becomes the same as or greater than the tick time, at\nwhich point things degrade rather quickly.\n\nThis patch fixes bug 9906, \"Weird hang with NPTL and SIGPROF.\"\n\nCode Changes\n\nThis rework corrects the implementation of run_posix_cpu_timers() to make it\nrun in constant time for a particular machine.  (Performance may vary between\none machine and another depending upon whether the kernel is built as single-\nor multiprocessor and, in the latter case, depending upon the number of\nrunning processors.)  To do this, at each tick we now update fields in\nsignal_struct as well as task_struct.  The run_posix_cpu_timers() function\nuses those fields to make its decisions.\n\nWe define a new structure, \"task_cputime,\" to contain user, system and\nscheduler times and use these in appropriate places:\n\nstruct task_cputime {\n\tcputime_t utime;\n\tcputime_t stime;\n\tunsigned long long sum_exec_runtime;\n};\n\nThis is included in the structure \"thread_group_cputime,\" which is a new\nsubstructure of signal_struct and which varies for uniprocessor versus\nmultiprocessor kernels.  For uniprocessor kernels, it uses \"task_cputime\" as\na simple substructure, while for multiprocessor kernels it is a pointer:\n\nstruct thread_group_cputime {\n\tstruct task_cputime totals;\n};\n\nstruct thread_group_cputime {\n\tstruct task_cputime *totals;\n};\n\nWe also add a new task_cputime substructure directly to signal_struct, to\ncache the earliest expiration of process-wide timers, and task_cputime also\nreplaces the it_*_expires fields of task_struct (used for earliest expiration\nof thread timers).  The \"thread_group_cputime\" structure contains process-wide\ntimers that are updated via account_user_time() and friends.  In the non-SMP\ncase the structure is a simple aggregator; unfortunately in the SMP case that\nsimplicity was not achievable due to cache-line contention between CPUs (in\none measured case performance was actually _worse_ on a 16-cpu system than\nthe same test on a 4-cpu system, due to this contention).  For SMP, the\nthread_group_cputime counters are maintained as a per-cpu structure allocated\nusing alloc_percpu().  The timer functions update only the timer field in\nthe structure corresponding to the running CPU, obtained using per_cpu_ptr().\n\nWe define a set of inline functions in sched.h that we use to maintain the\nthread_group_cputime structure and hide the differences between UP and SMP\nimplementations from the rest of the kernel.  The thread_group_cputime_init()\nfunction initializes the thread_group_cputime structure for the given task.\nThe thread_group_cputime_alloc() is a no-op for UP; for SMP it calls the\nout-of-line function thread_group_cputime_alloc_smp() to allocate and fill\nin the per-cpu structures and fields.  The thread_group_cputime_free()\nfunction, also a no-op for UP, in SMP frees the per-cpu structures.  The\nthread_group_cputime_clone_thread() function (also a UP no-op) for SMP calls\nthread_group_cputime_alloc() if the per-cpu structures haven\u0027t yet been\nallocated.  The thread_group_cputime() function fills the task_cputime\nstructure it is passed with the contents of the thread_group_cputime fields;\nin UP it\u0027s that simple but in SMP it must also safely check that tsk-\u003esignal\nis non-NULL (if it is it just uses the appropriate fields of task_struct) and,\nif so, sums the per-cpu values for each online CPU.  Finally, the three\nfunctions account_group_user_time(), account_group_system_time() and\naccount_group_exec_runtime() are used by timer functions to update the\nrespective fields of the thread_group_cputime structure.\n\nNon-SMP operation is trivial and will not be mentioned further.\n\nThe per-cpu structure is always allocated when a task creates its first new\nthread, via a call to thread_group_cputime_clone_thread() from copy_signal().\nIt is freed at process exit via a call to thread_group_cputime_free() from\ncleanup_signal().\n\nAll functions that formerly summed utime/stime/sum_sched_runtime values from\nfrom all threads in the thread group now use thread_group_cputime() to\nsnapshot the values in the thread_group_cputime structure or the values in\nthe task structure itself if the per-cpu structure hasn\u0027t been allocated.\n\nFinally, the code in kernel/posix-cpu-timers.c has changed quite a bit.\nThe run_posix_cpu_timers() function has been split into a fast path and a\nslow path; the former safely checks whether there are any expired thread\ntimers and, if not, just returns, while the slow path does the heavy lifting.\nWith the dedicated thread group fields, timers are no longer \"rebalanced\" and\nthe process_timer_rebalance() function and related code has gone away.  All\nsumming loops are gone and all code that used them now uses the\nthread_group_cputime() inline.  When process-wide timers are set, the new\ntask_cputime structure in signal_struct is used to cache the earliest\nexpiration; this is checked in the fast path.\n\nPerformance\n\nThe fix appears not to add significant overhead to existing operations.  It\ngenerally performs the same as the current code except in two cases, one in\nwhich it performs slightly worse (Case 5 below) and one in which it performs\nvery significantly better (Case 2 below).  Overall it\u0027s a wash except in those\ntwo cases.\n\nI\u0027ve since done somewhat more involved testing on a dual-core Opteron system.\n\nCase 1: With no itimer running, for a test with 100,000 threads, the fixed\n\tkernel took 1428.5 seconds, 513 seconds more than the unfixed system,\n\tall of which was spent in the system.  There were twice as many\n\tvoluntary context switches with the fix as without it.\n\nCase 2: With an itimer running at .01 second ticks and 4000 threads (the most\n\tan unmodified kernel can handle), the fixed kernel ran the test in\n\teight percent of the time (5.8 seconds as opposed to 70 seconds) and\n\thad better tick accuracy (.012 seconds per tick as opposed to .023\n\tseconds per tick).\n\nCase 3: A 4000-thread test with an initial timer tick of .01 second and an\n\tinterval of 10,000 seconds (i.e. a timer that ticks only once) had\n\tvery nearly the same performance in both cases:  6.3 seconds elapsed\n\tfor the fixed kernel versus 5.5 seconds for the unfixed kernel.\n\nWith fewer threads (eight in these tests), the Case 1 test ran in essentially\nthe same time on both the modified and unmodified kernels (5.2 seconds versus\n5.8 seconds).  The Case 2 test ran in about the same time as well, 5.9 seconds\nversus 5.4 seconds but again with much better tick accuracy, .013 seconds per\ntick versus .025 seconds per tick for the unmodified kernel.\n\nSince the fix affected the rlimit code, I also tested soft and hard CPU limits.\n\nCase 4: With a hard CPU limit of 20 seconds and eight threads (and an itimer\n\trunning), the modified kernel was very slightly favored in that while\n\tit killed the process in 19.997 seconds of CPU time (5.002 seconds of\n\twall time), only .003 seconds of that was system time, the rest was\n\tuser time.  The unmodified kernel killed the process in 20.001 seconds\n\tof CPU (5.014 seconds of wall time) of which .016 seconds was system\n\ttime.  Really, though, the results were too close to call.  The results\n\twere essentially the same with no itimer running.\n\nCase 5: With a soft limit of 20 seconds and a hard limit of 2000 seconds\n\t(where the hard limit would never be reached) and an itimer running,\n\tthe modified kernel exhibited worse tick accuracy than the unmodified\n\tkernel: .050 seconds/tick versus .028 seconds/tick.  Otherwise,\n\tperformance was almost indistinguishable.  With no itimer running this\n\ttest exhibited virtually identical behavior and times in both cases.\n\nIn times past I did some limited performance testing.  those results are below.\n\nOn a four-cpu Opteron system without this fix, a sixteen-thread test executed\nin 3569.991 seconds, of which user was 3568.435s and system was 1.556s.  On\nthe same system with the fix, user and elapsed time were about the same, but\nsystem time dropped to 0.007 seconds.  Performance with eight, four and one\nthread were comparable.  Interestingly, the timer ticks with the fix seemed\nmore accurate:  The sixteen-thread test with the fix received 149543 ticks\nfor 0.024 seconds per tick, while the same test without the fix received 58720\nfor 0.061 seconds per tick.  Both cases were configured for an interval of\n0.01 seconds.  Again, the other tests were comparable.  Each thread in this\ntest computed the primes up to 25,000,000.\n\nI also did a test with a large number of threads, 100,000 threads, which is\nimpossible without the fix.  In this case each thread computed the primes only\nup to 10,000 (to make the runtime manageable).  System time dominated, at\n1546.968 seconds out of a total 2176.906 seconds (giving a user time of\n629.938s).  It received 147651 ticks for 0.015 seconds per tick, still quite\naccurate.  There is obviously no comparable test without the fix.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "49048622eae698e5c4ae61f7e71200f265ccc529",
      "tree": "e568595fe5329e1293eafc3a3cc833dfe89ffbf2",
      "parents": [
        "56c7426b3951e4f35a71d695f1c982989399d6fd"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Fri Sep 05 18:12:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 05 18:14:35 2008 +0200"
      },
      "message": "sched: fix process time monotonicity\n\nSpencer reported a problem where utime and stime were going negative despite\nthe fixes in commit b27f03d4bdc145a09fb7b0c0e004b29f1ee555fa. The suspected\nreason for the problem is that signal_struct maintains it\u0027s own utime and\nstime (of exited tasks), these are not updated using the new task_utime()\nroutine, hence sig-\u003eutime can go backwards and cause the same problem\nto occur (sig-\u003eutime, adds tsk-\u003eutime and not task_utime()). This patch\nfixes the problem\n\nTODO: using max(task-\u003eprev_utime, derived utime) works for now, but a more\ngeneric solution is to implement cputime_max() and use the cputime_gt()\nfunction for comparison.\n\nReported-by: spencer@bluehost.com\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d094efeb1e98010c6b99923f1eb7e17bf1e3a74",
      "tree": "6ee271b6da5796e5321d2ab6f9d7d9ba03c300a2",
      "parents": [
        "dae33574dcf5211e1f43c7e45fa29f73ba3e00cb"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: tracehook_tracer_task\n\nThis adds the tracehook_tracer_task() hook to consolidate all forms of\n\"Who is using ptrace on me?\" logic.  This is used for \"TracerPid:\" in\n/proc and for permission checks.  We also clean up the selinux code the\ncalled an identical accessor.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca05a99a54db1db5bca72eccb5866d2a86f8517f",
      "tree": "b39fba6604da4b4f77103d2769bb783118b9b508",
      "parents": [
        "cc94bc37d5e02aaf8a6409a28e3c62bbd479b9a8"
      ],
      "author": {
        "name": "Andrew G. Morgan",
        "email": "morgan@kernel.org",
        "time": "Tue May 27 22:05:17 2008 -0700"
      },
      "committer": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Sat May 31 16:36:16 2008 -0700"
      },
      "message": "capabilities: remain source compatible with 32-bit raw legacy capability support.\n\nSource code out there hard-codes a notion of what the\n_LINUX_CAPABILITY_VERSION #define means in terms of the semantics of the\nraw capability system calls capget() and capset().  Its unfortunate, but\ntrue.\n\nSince the confusing header file has been in a released kernel, there is\nsoftware that is erroneously using 64-bit capabilities with the semantics\nof 32-bit compatibilities.  These recently compiled programs may suffer\ncorruption of their memory when sys_getcap() overwrites more memory than\nthey are coded to expect, and the raising of added capabilities when using\nsys_capset().\n\nAs such, this patch does a number of things to clean up the situation\nfor all. It\n\n  1. forces the _LINUX_CAPABILITY_VERSION define to always retain its\n     legacy value.\n\n  2. adopts a new #define strategy for the kernel\u0027s internal\n     implementation of the preferred magic.\n\n  3. deprecates v2 capability magic in favor of a new (v3) magic\n     number. The functionality of v3 is entirely equivalent to v2,\n     the only difference being that the v2 magic causes the kernel\n     to log a \"deprecated\" warning so the admin can find applications\n     that may be using v2 inappropriately.\n\n[User space code continues to be encouraged to use the libcap API which\nprotects the application from details like this.  libcap-2.10 is the first\nto support v3 capabilities.]\n\nFixes issue reported in https://bugzilla.redhat.com/show_bug.cgi?id\u003d447518.\nThanks to Bojan Smojver for the report.\n\n[akpm@linux-foundation.org: s/depreciate/deprecate/g]\n[akpm@linux-foundation.org: be robust about put_user size]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Bojan Smojver \u003cbojan@rexursive.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\n"
    },
    {
      "commit": "289f8e27ed435dcbefad132def06f4e84351e94f",
      "tree": "e5b3f6206111d5ba1c71eb13a2f01813f4403cee",
      "parents": [
        "c8894419acf5e56851de9741c5047bebd78acd1f"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon May 12 14:02:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:24 2008 -0700"
      },
      "message": "capabilities: add bounding set to /proc/self/status\n\nThere is currently no way to query the bounding set of another task.  As there\nappears to be no security reason not to, and as Michael Kerrisk points out the\nfollowing valid reasons to do so exist:\n\n* consistency (I can see all of the other per-thread/process sets in\n  /proc/.../status)\n\n* debugging -- I could imagine that it would make the job of debugging an\n  application that uses capabilities a little simpler.\n\nthis patch adds the bounding set to /proc/self/status right after the\neffective set.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f3acc3140444a900ab280de942291959f0f615d",
      "tree": "0d7f3f9698071ff90fb9a127a4c6e86e1c37c945",
      "parents": [
        "a2dcb44c3c5a8151d2d9f6ac8ad0789efcdbe184"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:44:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:08:16 2008 -0400"
      },
      "message": "[PATCH] split linux/file.h\n\nInitial splitoff of the low-level stuff; taken to fdtable.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5d0fdf1e01899805b6c2c0b789a707dcb731b1ea",
      "tree": "19827c7b3cf365c0b403741ead6c7bc317cad51b",
      "parents": [
        "575537b3248ee9b7578a3bb3df33fcdda2bfc4d5"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Apr 30 00:53:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:40 2008 -0700"
      },
      "message": "tty_io: fix remaining pid struct locking\n\nThis fixes the last couple of pid struct locking failures I know about.\n\n[oleg@tv-sign.ru: clean up do_task_stat()]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06fffb1267c9d986687b69d74a46ee332a50575e",
      "tree": "bfbef85a5fa65550f40d83e75d8e23cea5238772",
      "parents": [
        "d6cf723a142f63ccb92272bc0e9bfffd3c3a5cac"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Apr 30 00:52:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:34 2008 -0700"
      },
      "message": "do_task_stat: don\u0027t take rcu_read_lock()\n\nlock_task_sighand() was changed, and do_task_stat() doesn\u0027t need\nrcu_read_lock any longer.  sighand-\u003esiglock protects all \"interesting\"\nfields.\n\nExcept: it doesn\u0027t protect -\u003etty-\u003epgrp, but neither does rcu_read_lock(), this\nshould be fixed.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Pavel Emelyanov \u003cxemul@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df5f8314ca30d6a76735748e5ba4ca9809c0f434",
      "tree": "e0a6157b1666a320e69586a81c77a3fe83b36a2a",
      "parents": [
        "a56d3fc74c0178c5f41c48315604d62cff4e746d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: seqfile convert proc_pid_status to properly handle pid namespaces\n\nCurrently we possibly lookup the pid in the wrong pid namespace.  So\nseq_file convert proc_pid_status which ensures the proper pid namespaces is\npassed in.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: s390 build fix]\n[akpm@linux-foundation.org: fix task_name() output]\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a56d3fc74c0178c5f41c48315604d62cff4e746d",
      "tree": "a6049be18c706090b8c65dc4f6ff9398f880199d",
      "parents": [
        "ee992744ea53db0a90c986fd0a70fbbf91e7f8bd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "seqfile convert proc_pid_statm\n\nThis conversion is just for code cleanliness, uniformity, and general safety.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee992744ea53db0a90c986fd0a70fbbf91e7f8bd",
      "tree": "2d15727e92c407bb22c4842923cbfb2dfda82306",
      "parents": [
        "be614086a4aff163d5aa0dc160638d1193b59cde"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: rewrite do_task_stat to correctly handle pid namespaces.\n\nCurrently (as pointed out by Oleg) do_task_stat has a race when calling\ntask_pid_nr_ns with the task exiting.  In addition do_task_stat is not\ncurrently displaying information in the context of the pid namespace that\nmounted the /proc filesystem.  So \"cut -d\u0027 \u0027 -f 1 /proc/\u003cpid\u003e/stat\" may not\nequal \u003cpid\u003e.\n\nThis patch fixes the problem by converting to a single_open seq_file show\nmethod.  Getting the pid namespace from the filesystem superblock instead of\ncurrent, and simply using the the struct pid from the inode instead of\nattempting to get that same pid from the task.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e338d263a76af78fe8f38a72131188b58fceb591",
      "tree": "f3f046fc6fd66de43de7191830f0daf3bc4ec8eb",
      "parents": [
        "8f6936f4d29aa14e54a2470b954a2e1f96322988"
      ],
      "author": {
        "name": "Andrew Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Feb 04 22:29:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "Add 64-bit capability support to the kernel\n\nThe patch supports legacy (32-bit) capability userspace, and where possible\ntranslates 32-bit capabilities to/from userspace and the VFS to 64-bit\nkernel space capabilities.  If a capability set cannot be compressed into\n32-bits for consumption by user space, the system call fails, with -ERANGE.\n\nFWIW libcap-2.00 supports this change (and earlier capability formats)\n\n http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/\n\n[akpm@linux-foundation.org: coding-syle fixes]\n[akpm@linux-foundation.org: use get_task_comm()]\n[ezk@cs.sunysb.edu: build fix]\n[akpm@linux-foundation.org: do not initialise statics to 0 or NULL]\n[akpm@linux-foundation.org: unused var]\n[serue@us.ibm.com: export __cap_ symbols]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75659ca0c10992dcb39258518368a0f6f56e935d",
      "tree": "5d014ceb2f10158061a23d0d976f9a613d85e659",
      "parents": [
        "fbdde7bd274d74729954190f99afcb1e3d9bbfba",
        "2dfe485a2c8afa54cb069fcf48476f6c90ea3fdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "message": "Merge branch \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits)\n  Remove commented-out code copied from NFS\n  NFS: Switch from intr mount option to TASK_KILLABLE\n  Add wait_for_completion_killable\n  Add wait_event_killable\n  Add schedule_timeout_killable\n  Use mutex_lock_killable in vfs_readdir\n  Add mutex_lock_killable\n  Use lock_page_killable\n  Add lock_page_killable\n  Add fatal_signal_pending\n  Add TASK_WAKEKILL\n  exit: Use task_is_*\n  signal: Use task_is_*\n  sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL\n  ptrace: Use task_is_*\n  power: Use task_is_*\n  wait: Use TASK_NORMAL\n  proc/base.c: Use task_is_*\n  proc/array.c: Use TASK_REPORT\n  perfmon: Use task_is_*\n  ...\n\nFixed up conflicts in NFS/sunrpc manually..\n"
    },
    {
      "commit": "a98fdcef941e107eeabae622d85a1f476f25a160",
      "tree": "1702a6e810016eea5e995eb7c91a101688e8c59c",
      "parents": [
        "4fd3670eb1d3c33e8952cf1e79edbb2d517dcfb5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Jan 15 00:02:37 2008 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 14 13:23:00 2008 -0800"
      },
      "message": "fix the \"remove task_ppid_nr_ns\" commit\n\nCommit 84427eaef1fb91704c7112bdb598c810003b99f3 (remove task_ppid_nr_ns)\nmoved the task_tgid_nr_ns(task-\u003ereal_parent) outside of lock_task_sighand().\nThis is wrong, -\u003ereal_parent could be freed/reused.\n\nBoth -\u003eparent/real_parent point to nothing after __exit_signal() because\nwe remove the child from -\u003echildren list, and thus the child can\u0027t be\nreparented when its parent exits.\n\nrcu_read_lock() protects -\u003eparent/real_parent, but _only_ if we know it was\nvalid before we take rcu lock.\n\nRevert this part of the patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84427eaef1fb91704c7112bdb598c810003b99f3",
      "tree": "bf22a7186295fcb6dc6bced34cfa73aa74b27300",
      "parents": [
        "974a9f0b47da74e28f68b9c8645c3786aa5ace1a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jan 10 12:52:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jan 13 09:56:43 2008 -0800"
      },
      "message": "remove task_ppid_nr_ns\n\ntask_ppid_nr_ns is called in three places.  One of these should never\nhave called it.  In the other two, using it broke the existing\nsemantics.  This was presumably accidental.  If the function had not\nbeen there, it would have been much more obvious to the eye that those\npatches were changing the behavior.  We don\u0027t need this function.\n\nIn task_state, the pid of the ptracer is not the ppid of the ptracer.\n\nIn do_task_stat, ppid is the tgid of the real_parent, not its pid.\nI also moved the call outside of lock_task_sighand, since it doesn\u0027t\nneed it.\n\nIn sys_getppid, ppid is the tgid of the real_parent, not its pid.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1587e2b1880632d959db6ac9e79cb1d99a73c656",
      "tree": "083188c4df42d49156618b1cabec341951554661",
      "parents": [
        "21498223daad359d048b35b0ee4d1b93300ef258"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:03:36 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:20:28 2007 -0500"
      },
      "message": "proc/array.c: Use TASK_REPORT\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "08e4570a4a393bcc241f78dfc444cb0b07995fc0",
      "tree": "e151f5d5ae0e9cb361e91a08c4d0fb8a7171b8ce",
      "parents": [
        "5e8869bb699d50be5c0733edfc71cfcd5b43e10a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 26 21:21:49 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 26 21:21:49 2007 +0100"
      },
      "message": "sched: fix prev_stime calculation\n\nSrivatsa Vaddagiri noticed occasionally incorrect CPU usage\nvalues in top and tracked it down to stime going below 0 in\ntask_stime(). Negative values are possible there due to the\nsampled nature of stime/utime.\n\nFix suggested by Balbir Singh.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nReviewed-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9301899be75b464ef097f0b5af7af6d9bd8f68a7",
      "tree": "a7053c5c0babcdbad6d4baff0551d60e5c4308af",
      "parents": [
        "82798a17ad40df827d465329a20ace80497f9b32"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "message": "sched: fix /proc/\u003cPID\u003e/stat stime/utime monotonicity, part 2\n\nExtend Peter\u0027s patch to fix accounting issues, by keeping stime\nmonotonic too.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\n"
    },
    {
      "commit": "73a2bcb0edb9ffb0b007b3546b430e2c6e415eee",
      "tree": "dd84f61589c7dd21b7be973c288611ffe547f21b",
      "parents": [
        "f7402e0361d4472535e07cfca648f2fa81d85cd2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: keep utime/stime monotonic\n\nkeep utime/stime monotonic.\n\ncpustats use utime/stime as a ratio against sum_exec_runtime, as a\nconsequence it can happen - when the ratio changes faster than time\naccumulates - that either can be appear to go backwards.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec2626815bf9a9922e49820b03e670e833f3ca3c",
      "tree": "c1d6ff9559a62c5636adaae7a6c7cac397762f42",
      "parents": [
        "0a4908e19fd016d60403fc76cf38b2d08d21e2d2",
        "f9e26291be31cb494c1845e356daba84b39ab059"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 12:07:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 12:07:03 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  sched: fix guest time accounting going faster than user time accounting\n"
    },
    {
      "commit": "270f722d4d5f94b02fd48eed47e57917ab00a858",
      "tree": "f6f58a0730c8968d2b4b983965b4409761616ab2",
      "parents": [
        "d85f50d5e1aa99ab082035f94265847521819e58"
      ],
      "author": {
        "name": "Eugene Teo",
        "email": "eugeneteo@kernel.sg",
        "time": "Thu Oct 18 23:40:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:42 2007 -0700"
      },
      "message": "Fix tsk-\u003eexit_state usage\n\ntsk-\u003eexit_state can only be 0, EXIT_ZOMBIE, or EXIT_DEAD.  A non-zero test\nis the same as tsk-\u003eexit_state \u0026 (EXIT_ZOMBIE | EXIT_DEAD), so just testing\ntsk-\u003eexit_state is sufficient.\n\nSigned-off-by: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47afb0f9d794d525a372c8d69902147cc88222a",
      "tree": "7bd67280e2edc1c3b1803d4a93bee794088e9342",
      "parents": [
        "858d72ead4864da0fb0b89b919524125ce998e27"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: round up the API\n\nThe set of functions process_session, task_session, process_group and\ntask_pgrp is confusing, as the names can be mixed with each other when looking\nat the code for a long time.\n\nThe proposals are to\n* equip the functions that return the integer with _nr suffix to\n  represent that fact,\n* and to make all functions work with task (not process) by making\n  the common prefix of the same name.\n\nFor monotony the routines signal_session() and set_signal_session() are\nreplaced with task_session_nr() and set_task_session(), especially since they\nare only used with the explicit task-\u003esignal dereference.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9e26291be31cb494c1845e356daba84b39ab059",
      "tree": "8c64fdbdb0c01aa2b73e41c5aefc06b80254dac2",
      "parents": [
        "4fa4d23fa20de67df919030c1216295664866ad7"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Oct 19 20:52:40 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 19 20:52:40 2007 +0200"
      },
      "message": "sched: fix guest time accounting going faster than user time accounting\n\ncputime_add already adds, dont do it twice.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ac52315d4cf5f561f36dabaf0720c00d3553162",
      "tree": "afe7284f34a65d2540fcb2a9b764834f9d790fa7",
      "parents": [
        "5e84cfde51cf303d368fcb48f22059f37b3872de"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "message": "sched: guest CPU accounting: add guest-CPU /proc/\u003cpid\u003e/stat fields\n\nlike for cpustat, introduce the \"gtime\" (guest time of the task) and\n\"cgtime\" (guest time of the task children) fields for the\ntasks. Modify signal_struct and task_struct.\n\nModify /proc/\u003cpid\u003e/stat to display these new fields.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nAcked-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "efe567fc8281661524ffa75477a7c4ca9b466c63",
      "tree": "d545f25d113646491e75bd09b521dfa6db5f0276",
      "parents": [
        "c57baf1e1e24b004b57d282267542baab802753c"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Aug 23 15:18:02 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 23 15:18:02 2007 +0200"
      },
      "message": "sched: accounting regression since rc1\n\nFix the accounting regression for CONFIG_VIRT_CPU_ACCOUNTING.  It\nreverts parts of commit b27f03d4bdc145a09fb7b0c0e004b29f1ee555fa by\nconverting fs/proc/array.c back to cputime_t.  The new functions\ntask_utime and task_stime now return cputime_t instead of clock_t.  If\nCONFIG_VIRT_CPU_ACCOUTING is set, task-\u003eutime and task-\u003estime are\nreturned directly instead of using sum_exec_runtime.\n\nPatch is tested on s390x with and without VIRT_CPU_ACCOUTING as well as\non i386.\n\n[ mingo@elte.hu: cleanups, comments. ]\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "10b275ddfd05ccb414cfe0cc56a0f47ff20fe807",
      "tree": "22547c4df78a575194522fc0ecc01b9e54439d09",
      "parents": [
        "add096909da63ef32d6766f6771c07c9f16c6ee5",
        "8ea02606681beb41568c62ba060bdf51fc9ba14e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 11:02:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 11:02:49 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  [PATCH] sched: fix up fs/proc/array.c whitespace problems\n  [PATCH] sched: prettify prio_to_wmult[]\n  [PATCH] sched: document prio_to_wmult[]\n  [PATCH] sched: improve weight-array comments\n  [PATCH] sched: remove dead code from task_stime()\n\nFixed up trivial conflict in fs/proc/array.c\n"
    },
    {
      "commit": "b663a79c191508f27cd885224b592a878c0ba0f6",
      "tree": "270a0472bf1fb0c7323ecb60ec68e40d02dcb1b4",
      "parents": [
        "a6c15c2b0fbfd5c0a84f5f0e1e3f20f85d2b8692"
      ],
      "author": {
        "name": "Maxim Uvarov",
        "email": "muvarov@ru.mvista.com",
        "time": "Sun Jul 15 23:40:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "taskstats: add context-switch counters\n\nMake available to the user the following task and process performance\nstatistics:\n\n\t* Involuntary Context Switches (task_struct-\u003enivcsw)\n\t* Voluntary Context Switches (task_struct-\u003envcsw)\n\nStatistics information is available from:\n\t1. taskstats interface (Documentation/accounting/)\n\t2. /proc/PID/status (task only).\n\nThis data is useful for detecting hyperactivity patterns between processes.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Maxim Uvarov \u003cmuvarov@ru.mvista.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Jonathan Lim \u003cjlim@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "924b42d5a2dbe508407a0a6290d3751f826bccdd",
      "tree": "c13a647ae93bcf033bddb713c1e117e84698c679",
      "parents": [
        "7c3f1a573237b90ef331267260358a0ec4ac9079"
      ],
      "author": {
        "name": "Tomas Janousek",
        "email": "tjanouse@redhat.com",
        "time": "Sun Jul 15 23:39:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "Use boot based time for process start time and boot time in /proc\n\nCommit 411187fb05cd11676b0979d9fbf3291db69dbce2 caused boot time to move and\nprocess start times to become invalid after suspend.  Using boot based time\nfor those restores the old behaviour and fixes the issue.\n\n[akpm@linux-foundation.org: little cleanup]\nSigned-off-by: Tomas Janousek \u003ctjanouse@redhat.com\u003e\nCc: Tomas Smetana \u003ctsmetana@redhat.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ea02606681beb41568c62ba060bdf51fc9ba14e",
      "tree": "a0022c43da7a7a2200f32c7e425a38f8418920e5",
      "parents": [
        "e4af30be8fd0bed0e8f96e4e1ebd546a3dfa8f2b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 16 09:46:31 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 16 09:46:31 2007 +0200"
      },
      "message": "[PATCH] sched: fix up fs/proc/array.c whitespace problems\n\nwhile changing task_stime() i noticed a whitespace style problem in\narray.c - fix it. While at it, fix all the other style problems too,\nmost of them in the scheduler-stats related portions of array.c.\n\nThere is no change in functionality:\n\n   text    data     bss     dec     hex filename\n   4356      28       0    4384    1120 array.o-before\n   4356      28       0    4384    1120 array.o-after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5926c50b83b626991c8c38efbca2020ee96b215f",
      "tree": "94aa3db6228de4d61aa63f30c94c4887b860b2b9",
      "parents": [
        "8f41958bdd577731f7411c9605cfaa9db6766809"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 16 09:46:30 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 16 09:46:30 2007 +0200"
      },
      "message": "[PATCH] sched: remove dead code from task_stime()\n\nAlexey Dobriyan noticed that task_stime() contains a piece of dead code.\n(which is a remnant of earlier versions of this code) Remove that code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b27f03d4bdc145a09fb7b0c0e004b29f1ee555fa",
      "tree": "37b918b7dcc548671db53d4f3c2fdc673939e086",
      "parents": [
        "1b9f19c2125dd1021b9327111dc40b14b557ee12"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:59 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:59 2007 +0200"
      },
      "message": "sched: make use of precise accounting for /proc task stats\n\nmake use of CFS\u0027s precise accounting to drive /proc/\u003cpid\u003e/stat statistics.\n\nthis code was co-authored by:\n\n Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\n Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\n Ingo Molnar \u003cmingo@elte.hu\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\n"
    },
    {
      "commit": "62480d13d5d1812176e969a47e2db78a5398d02e",
      "tree": "0aa30d3e3d9fcf8488163e6fd5b70ddb06fecf98",
      "parents": [
        "e05606d3301525aa67b081ad9fccade2b31ab35a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:59 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:59 2007 +0200"
      },
      "message": "sched: remove the SleepAVG field\n\nremove the SleepAVG field from /proc/\u003cpid\u003e/status, as\nwith the removal of the sleep-average code this value\nno longer makes sense.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97dc32cdb1b53832801159d5f634b41aad9d0a23",
      "tree": "438f59c84d3528de5f68583d312beceb1aa32659",
      "parents": [
        "4d7bf11d649c72621ca31b8ea12b9c94af380e63"
      ],
      "author": {
        "name": "William Cohen",
        "email": "wcohen@redhat.com",
        "time": "Tue May 08 00:23:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:58 2007 -0700"
      },
      "message": "reduce size of task_struct on 64-bit machines\n\nThis past week I was playing around with that pahole tool\n(http://oops.ghostprotocols.net:81/acme/dwarves/) and looking at the size\nof various struct in the kernel.  I was surprised by the size of the\ntask_struct on x86_64, approaching 4K.  I looked through the fields in\ntask_struct and found that a number of them were declared as \"unsigned\nlong\" rather than \"unsigned int\" despite them appearing okay as 32-bit\nsized fields.  On x86_64 \"unsigned long\" ends up being 8 bytes in size and\nforces 8 byte alignment.  Is there a reason there a reason they are\n\"unsigned long\"?\n\nThe patch below drops the size of the struct from 3808 bytes (60 64-byte\ncachelines) to 3760 bytes (59 64-byte cachelines).  A couple other fields\nin the task struct take a signficant amount of space:\n\nstruct thread_struct       thread;               688\nstruct held_lock           held_locks[30];       1680\n\nCONFIG_LOCKDEP is turned on in the .config\n\n[akpm@linux-foundation.org: fix printk warnings]\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab521dc0f8e117fd808d3e425216864d60390500",
      "tree": "f9d6449c4d8c9508fd43edfe845108043e1536b2",
      "parents": [
        "3e7cd6c413c9e6fbb5e1ee2acdadb4ababd2d474"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Feb 12 00:53:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:32 2007 -0800"
      },
      "message": "[PATCH] tty: update the tty layer to work with struct pid\n\nOf kernel subsystems that work with pids the tty layer is probably the largest\nconsumer.  But it has the nice virtue that the assiation with a session only\nlasts until the session leader exits.  Which means that no reference counting\nis required.  So using struct pid winds up being a simple optimization to\navoid hash table lookups.\n\nIn the long term the use of pid_nr also ensures that when we have multiple pid\nspaces mixed everything will work correctly.\n\nSigned-off-by: Eric W. Biederman \u003ceric@maxwell.lnxi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ec320afdc9552c92191d5f89fcd1ebe588334ca",
      "tree": "e526fb29f9487f1ea34aa9ccdf14c318aea2159f",
      "parents": [
        "937949d9edbf4049bd41af6c9f92c26280584564"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Fri Dec 08 02:37:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] add process_session() helper routine: deprecate old field\n\nAdd an anonymous union and ((deprecated)) to catch direct usage of the\nsession field.\n\n[akpm@osdl.org: fix various missed conversions]\n[jdike@addtoit.com: fix UML bug]\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "915935041281c64589e2b7fe38437be22567fb6f",
      "tree": "fef15e8442be8ab8c72439ff916855444a8e95b8",
      "parents": [
        "24ec839c431eb79bb8f6abc00c4e1eb3b8c4d517"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Dec 08 02:36:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:38 2006 -0800"
      },
      "message": "[PATCH] do_task_stat(): don\u0027t take tty_mutex\n\n-\u003esignal-\u003etty is protected by -\u003esiglock, no need to take the global tty_mutex.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0fa9db6abdb2875a6d3069ddc6a2846a73fa5cd",
      "tree": "840fd70ce726f94ff389d97dd012e53ae02f1dcf",
      "parents": [
        "a593d6edeb0a5a2c6e6919b225cec668a375df52"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 02 02:18:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: drop tasklist lock in task_state()\n\ntask_state() needs tasklist_lock to protect -\u003eparent/-\u003ereal_parent.  However\ntask-\u003eparent points to nowhere only when the actions below happen in order\n\n\t1) release_task(task)\n\t2) release_task(task-\u003eparent)\n\t3) a grace period passed\n\nBut 3) implies that the memory ops from 1) should be finished, so pid_alive()\ncan\u0027t be true in such a case.\n\nOtherwise, we don\u0027t care if -\u003eparent/-\u003ereal_parent changes under us.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a593d6edeb0a5a2c6e6919b225cec668a375df52",
      "tree": "f61ea811ad6c9d6bbba9268bdb08cf507fab5e93",
      "parents": [
        "5e6b3f42edc20e988b186fbfb9eec174294222ea"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 02 02:18:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: convert do_task_stat() to use lock_task_sighand()\n\nDrop tasklist_lock. -\u003esiglock protects almost all interesting data\n(including sub-threads traversal) except:\n\n\t-\u003esignal-\u003etty\n\t\tprotected by tty_mutex\n\n\t-\u003ereal_parent\n\t\tthe task can\u0027t be unhashed while we are holding\n\t\t-\u003esiglock, so -\u003ereal_parent can change from under us\n\t\tbut we can safely dereference it under rcu_read_lock()\n\n\t-\u003epgrp/-\u003esession\n\t\twe can get inconsistent numbers if the task does\n\t\tsys_setsid/daemonize at the same time. I hope this\n\t\tis acceptable.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e6b3f42edc20e988b186fbfb9eec174294222ea",
      "tree": "3a99b922dab485df36e3a839b315b1ef2af5b0e9",
      "parents": [
        "7fbaac005cab2f3b4d6999cdb32fb93d442c5cdb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 02 02:18:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:24 2006 -0700"
      },
      "message": "[PATCH] proc: convert task_sig() to use lock_task_sighand()\n\nlock_task_sighand() can take -\u003esiglock without holding tasklist_lock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3cfd0885fac78c130a119ed576d18b5948fa2a5a",
      "tree": "9a49ab330a39fc32cff3208038f1cef7763780aa",
      "parents": [
        "808a0d389ff8d85017ec811085a6083394c02caf"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Sep 29 02:00:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:16 2006 -0700"
      },
      "message": "[PATCH] tty: stop the tty vanishing under procfs access\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25890454667b3295f67b3372352be90705f8667c",
      "tree": "f66e24be59ced75853eb82709e3036e735aac21e",
      "parents": [
        "a3baf649ca9ca0a96fba538f03b0f17c043b755c"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: /proc export of aggregated block I/O delays\n\nExport I/O delays seen by a task through /proc/\u003ctgid\u003e/stats for use in top\netc.\n\nNote that delays for I/O done for swapping in pages (swapin I/O) is clubbed\ntogether with all other I/O here (this is not the case in the netlink\ninterface where the swapin I/O is kept distinct)\n\n[akpm@osdl.org: printk warning fix]\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "4dee26b7e26eb3c78da8bf6c1c52ee5419145b28",
      "tree": "fbea634975b43d58ce50319c2ff703a20fbd133f",
      "parents": [
        "b75f7a51ca75c977d7d77f735d7a7859194eb39e"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: remove it_real_value calculation from proc/*/stat\n\nRemove the it_real_value from /proc/*/stat, during 1.2.x was the last time it\nreturned useful data (as it was directly maintained by the scheduler), now\nit\u0027s only a waste of time to calculate it.  Return 0 instead.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff678b8da6478d861c1b0ecb3ac14575760e906",
      "tree": "0ca983ce820ac8bb9f6e8b193926e0804116a7e0",
      "parents": [
        "df78488de7befd387e9d060da6e18bb5d1cb882c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 09 20:52:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:38 2006 -0800"
      },
      "message": "[PATCH] hrtimer: switch itimers to hrtimer\n\nswitch itimers to a hrtimers-based implementation\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "347a8dc3b815f0c0fa62a1df075184ffe4cbdcf1",
      "tree": "a6ec76690127e87fe6efa42b6238caadd6c07e7b",
      "parents": [
        "9bbc8346fb21fad3f678220b067450e436e45dbf"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Jan 06 00:19:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:53 2006 -0800"
      },
      "message": "[PATCH] s390: cleanup Kconfig\n\nSanitize some s390 Kconfig options.  We have ARCH_S390, ARCH_S390X,\nARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT.  Replace these 6 options by\nS390, 64BIT and COMPAT.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4fb3a53860cee2aaaf81186c451b7da0b95b45c1",
      "tree": "db66ba7d3886644729707586aed781c445e12c16",
      "parents": [
        "af4e5a218e18ad588d60a4f9d6f8fb5db1a32587"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 16 19:28:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:50:02 2005 -0700"
      },
      "message": "[PATCH] files: fix preemption issues\n\nWith the new fdtable locking rules, you have to protect fdtable with either\n-\u003efile_lock or rcu_read_lock/unlock().  There are some places where we\naren\u0027t doing either.  This patch fixes those places.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
