)]}'
{
  "log": [
    {
      "commit": "6687a97d4041f996f725902d2990e5de6ef5cbe5",
      "tree": "6ab982091cde7179d94cf592f9c669fd22d93a23",
      "parents": [
        "6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 24 03:18:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] timer-irq-driven soft-watchdog, cleanups\n\nMake the softlockup detector purely timer-interrupt driven, removing\nsoftirq-context (timer) dependencies.  This means that if the softlockup\nwatchdog triggers, it has truly observed a longer than 10 seconds\nscheduling delay of a SCHED_FIFO prio 99 task.\n\n(the patch also turns off the softlockup detector during the initial bootup\nphase and does small style fixes)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "c61afb181c649754ea221f104e268cbacfc993e3",
      "tree": "870917b3f9175cf1663a2620d989856913cfb5f8",
      "parents": [
        "101a50019ae5e370d73984ee05d56dd3b08f330a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache optimizations\n\nThe hooks in the slab cache allocator code path for support of NUMA\nmempolicies and cpuset memory spreading are in an important code path.  Many\nsystems will use neither feature.\n\nThis patch optimizes those hooks down to a single check of some bits in the\ncurrent tasks task_struct flags.  For non NUMA systems, this hook and related\ncode is already ifdef\u0027d out.\n\nThe optimization is done by using another task flag, set if the task is using\na non-default NUMA mempolicy.  Taking this flag bit along with the\nPF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this \u0027cpuset\nmemory spreading\u0027 patch set, one can check for the combination of any of these\nspecial case memory placement mechanisms with a single test of the current\ntasks task_struct flags.\n\nThis patch also tightens up the code, to save a few bytes of kernel text\nspace, and moves some of it out of line.  Due to the nested inlines called\nfrom multiple places, we were ending up with three copies of this code, which\nonce we get off the main code path (for local node allocation) seems a bit\nwasteful of instruction memory.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "825a46af5ac171f9f41f794a0a00165588ba1589",
      "tree": "b690fe9d809d7b047f0393097fc79892e1217d98",
      "parents": [
        "8a39cc60bfa5a72f32d975729a354daca124f6de"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:22 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread basic implementation\n\nThis patch provides the implementation and cpuset interface for an alternative\nmemory allocation policy that can be applied to certain kinds of memory\nallocations, such as the page cache (file system buffers) and some slab caches\n(such as inode caches).\n\nThe policy is called \"memory spreading.\" If enabled, it spreads out these\nkinds of memory allocations over all the nodes allowed to a task, instead of\npreferring to place them on the node where the task is executing.\n\nAll other kinds of allocations, including anonymous pages for a tasks stack\nand data regions, are not affected by this policy choice, and continue to be\nallocated preferring the node local to execution, as modified by the NUMA\nmempolicy.\n\nThere are two boolean flag files per cpuset that control where the kernel\nallocates pages for the file system buffers and related in kernel data\nstructures.  They are called \u0027memory_spread_page\u0027 and \u0027memory_spread_slab\u0027.\n\nIf the per-cpuset boolean flag file \u0027memory_spread_page\u0027 is set, then the\nkernel will spread the file system buffers (page cache) evenly over all the\nnodes that the faulting task is allowed to use, instead of preferring to put\nthose pages on the node where the task is running.\n\nIf the per-cpuset boolean flag file \u0027memory_spread_slab\u0027 is set, then the\nkernel will spread some file system related slab caches, such as for inodes\nand dentries evenly over all the nodes that the faulting task is allowed to\nuse, instead of preferring to put those pages on the node where the task is\nrunning.\n\nThe implementation is simple.  Setting the cpuset flags \u0027memory_spread_page\u0027\nor \u0027memory_spread_cache\u0027 turns on the per-process flags PF_SPREAD_PAGE or\nPF_SPREAD_SLAB, respectively, for each task that is in the cpuset or\nsubsequently joins that cpuset.  In subsequent patches, the page allocation\ncalls for the affected page cache and slab caches are modified to perform an\ninline check for these flags, and if set, a call to a new routine\ncpuset_mem_spread_node() returns the node to prefer for the allocation.\n\nThe cpuset_mem_spread_node() routine is also simple.  It uses the value of a\nper-task rotor cpuset_mem_spread_rotor to select the next node in the current\ntasks mems_allowed to prefer for the allocation.\n\nThis policy can provide substantial improvements for jobs that need to place\nthread local data on the corresponding node, but that need to access large\nfile system data sets that need to be spread across the several nodes in the\njobs cpuset in order to fit.  Without this patch, especially for jobs that\nmight have one thread reading in the data set, the memory allocation across\nthe nodes in the jobs cpuset can become very uneven.\n\nA couple of Copyright year ranges are updated as well.  And a couple of email\naddresses that can be found in the MAINTAINERS file are removed.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4",
      "tree": "d4fe59a7ca0c110690937085548936a4535c39db",
      "parents": [
        "6dac40a7ce2483a47b54af07afebeb84131c7228"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "message": "[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "7cd9013be6c22f3ff6f777354f766c8c0b955e17",
      "tree": "328e45aadb4c5bc9b6cd530be03572070201f5e5",
      "parents": [
        "27d162e26a873883937b64526445877bd3341d23"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Mar 11 03:27:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 11 09:19:34 2006 -0800"
      },
      "message": "[PATCH] remove __put_task_struct_cb export again\n\nThe patch \u0027[PATCH] RCU signal handling\u0027 [1] added an export for\n__put_task_struct_cb, a put_task_struct helper newly introduced in that\npatch.  But the put_task_struct couldn\u0027t be used modular previously as\n__put_task_struct wasn\u0027t exported.  There are not callers of it in modular\ncode, and it shouldn\u0027t be exported because we don\u0027t want drivers to hold\nreferences to task_structs.\n\nThis patch removes the export and folds __put_task_struct into\n__put_task_struct_cb as there\u0027s no other caller.\n\n[1] http://www2.kernel.org/git/gitweb.cgi?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommit;h\u003de56d090310d7625ecb43a1eeebd479f04affb48b\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0551fbd29e16fccd46e41b7d01bf0f8f39b14212",
      "tree": "760783df743eec940d6f6cb848498580ddde03d8",
      "parents": [
        "f61388822a6040ff462c5f7260daa0f1017f2db0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Feb 28 16:59:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] Add mm-\u003etask_size and fix powerpc vdso\n\nThis patch adds mm-\u003etask_size to keep track of the task size of a given mm\nand uses that to fix the powerpc vdso so that it uses the mm task size to\ndecide what pages to fault in instead of the current thread flags (which\nbroke when ptracing).\n\n(akpm: I expect that mm_struct.task_size will become the way in which we\nfinally sort out the confusion between 32-bit processes and 32-bit mm\u0027s.  It\nmay need tweaks, but at this stage this patch is powerpc-only.)\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6077cb80cde4506720f9165eba99ee07438513f",
      "tree": "f4462e51cf0a14a113c0c524711636c8429424bb",
      "parents": [
        "f822566165dd46ff5de9bf895cfa6c51f53bb0c4"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Tue Feb 14 13:53:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] sched: revert \"filter affine wakeups\"\n\nRevert commit d7102e95b7b9c00277562c29aad421d2d521c5f6:\n\n    [PATCH] sched: filter affine wakeups\n\nApparently caused more than 10% performance regression for aim7 benchmark.\nThe setup in use is 16-cpu HP rx8620, 64Gb of memory and 12 MSA1000s with 144\ndisks.  Each disk is 72Gb with a single ext3 filesystem (courtesy of HP, who\nsupplied benchmark results).\n\nThe problem is, for aim7, the wake-up pattern is random, but it still needs\nload balancing action in the wake-up path to achieve best performance.  With\nthe above commit, lack of load balancing hurts that workload.\n\nHowever, for workloads like database transaction processing, the requirement\nis exactly opposite.  In the wake up path, best performance is achieved with\nabsolutely zero load balancing.  We simply wake up the process on the CPU that\nit was previously run.  Worst performance is obtained when we do load\nbalancing at wake up.\n\nThere isn\u0027t an easy way to auto detect the workload characteristics.  Ingo\u0027s\nearlier patch that detects idle CPU and decide whether to load balance or not\ndoesn\u0027t perform with aim7 either since all CPUs are busy (it causes even\nbigger perf.  regression).\n\nRevert commit d7102e95b7b9c00277562c29aad421d2d521c5f6, which causes more\nthan 10% performance regression with aim7.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ac95f2f90e022c16d293d7978faddf7e779a1a9",
      "tree": "dcc1769ed614585e956c20c718506cdfe4b0bf92",
      "parents": [
        "c70d3d703ad94727dab2a3664aeee33d71e00715"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Feb 09 22:41:50 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Feb 09 16:17:36 2006 -0800"
      },
      "message": "[PATCH] do_sigaction: cleanup -\u003esa_mask manipulation\n\nClear unblockable signals beforehand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "150256d8aadb3a337c31efa9e175cbd25bf06b06",
      "tree": "8cd7e2a0bc6af23984682c5ea3ca687809580c5a",
      "parents": [
        "a60fc5190a31d98508ea6a76f74217f4104e74b7"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 18 17:43:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] Generic sys_rt_sigsuspend()\n\nThe TIF_RESTORE_SIGMASK flag allows us to have a generic implementation of\nsys_rt_sigsuspend() instead of duplicating it for each architecture.  This\nprovides such an implementation and makes arch/powerpc use it.\n\nIt also tidies up the ppc32 sys_sigsuspend() to use TIF_RESTORE_SIGMASK.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0a9499c3dd50d333e2aedb7e894873c58da3785",
      "tree": "1b9610020884091984ce8290c70bebdc3e7bb09b",
      "parents": [
        "2d0cfb527944c2cfee2cffab14f52d483e329fcf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 14 13:20:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:25:20 2006 -0800"
      },
      "message": "[PATCH] sched: add new SCHED_BATCH policy\n\nAdd a new SCHED_BATCH (3) scheduling policy: such tasks are presumed\nCPU-intensive, and will acquire a constant +5 priority level penalty.  Such\npolicy is nice for workloads that are non-interactive, but which do not\nwant to give up their nice levels.  The policy is also useful for workloads\nthat want a deterministic scheduling policy without interactivity causing\nextra preemptions (between that workload\u0027s tasks).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9fc658763bf992e778243ebe898b03746151ab88",
      "tree": "9ae10dfbf30c2301e8b7ae2845c725078088521b",
      "parents": [
        "d7102e95b7b9c00277562c29aad421d2d521c5f6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Jan 12 01:05:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:50 2006 -0800"
      },
      "message": "[PATCH] missing helper - task_stack_page()\n\nPatchset annotates arch/* uses of -\u003ethread_info.  Ones that really are about\naccess of thread_info of given process are simply switched to\ntask_thread_info(task); ones that deal with access to objects on stack are\nswitched to new helper - task_stack_page().  A _lot_ of the latter are\nactually open-coded instances of \"find where pt_regs are\"; those are\nconsolidated into task_pt_regs(task) (many architectures actually have such\nhelper already).\n\nNote that these annotations are not mandatory - any code not converted to\nthese helpers still works.  However, they clean up a lot of places and have\nactually caught a number of bugs, so converting out of tree ports would be a\ngood idea...\n\nAs an example of breakage caught by that stuff, see i386 pt_regs mess - we\nused to have it open-coded in a bunch of places and when back in April Stas\nhad fixed a bug in copy_thread(), the rest had been left out of sync.  That\nrequired two followup patches (the latest - just before 2.6.15) _and_ still\nhad left /proc/*/stat eip field broken.  Try ps -eo eip on i386 and watch the\njunk...\n\nThis patch:\n\nnew helper - task_stack_page(task).  Returns pointer to the memory object\ncontaining task stack; usually thread_info of task sits in the beginning\nof that object.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d7102e95b7b9c00277562c29aad421d2d521c5f6",
      "tree": "3ad3d94c329095962c6cd6dcea41e1ccf2db5a7e",
      "parents": [
        "198e2f181163233b379dc7ce8a6d7516b84042e7"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Thu Jan 12 01:05:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:50 2006 -0800"
      },
      "message": "[PATCH] sched: filter affine wakeups\n\n\r)\n\nFrom: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\n\nTrack the last waker CPU, and only consider wakeup-balancing if there\u0027s a\nmatch between current waker CPU and the previous waker CPU.  This ensures\nthat there is some correlation between two subsequent wakeup events before\nwe move the task.  Should help random-wakeup workloads on large SMP\nsystems, by reducing the migration attempts by a factor of nr_cpus.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "198e2f181163233b379dc7ce8a6d7516b84042e7",
      "tree": "cc4067ca1c81034ba8d214b7ff4c39f2f5be66ee",
      "parents": [
        "4dc7a0bbeb6882ad665e588e82fabe5bb4645f2f"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Thu Jan 12 01:05:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:50 2006 -0800"
      },
      "message": "[PATCH] scheduler cache-hot-autodetect\n\n\r)\n\nFrom: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nThis is the latest version of the scheduler cache-hot-auto-tune patch.\n\nThe first problem was that detection time scaled with O(N^2), which is\nunacceptable on larger SMP and NUMA systems. To solve this:\n\n- I\u0027ve added a \u0027domain distance\u0027 function, which is used to cache\n  measurement results. Each distance is only measured once. This means\n  that e.g. on NUMA distances of 0, 1 and 2 might be measured, on HT\n  distances 0 and 1, and on SMP distance 0 is measured. The code walks\n  the domain tree to determine the distance, so it automatically follows\n  whatever hierarchy an architecture sets up. This cuts down on the boot\n  time significantly and removes the O(N^2) limit. The only assumption\n  is that migration costs can be expressed as a function of domain\n  distance - this covers the overwhelming majority of existing systems,\n  and is a good guess even for more assymetric systems.\n\n  [ People hacking systems that have assymetries that break this\n    assumption (e.g. different CPU speeds) should experiment a bit with\n    the cpu_distance() function. Adding a -\u003emigration_distance factor to\n    the domain structure would be one possible solution - but lets first\n    see the problem systems, if they exist at all. Lets not overdesign. ]\n\nAnother problem was that only a single cache-size was used for measuring\nthe cost of migration, and most architectures didnt set that variable\nup. Furthermore, a single cache-size does not fit NUMA hierarchies with\nL3 caches and does not fit HT setups, where different CPUs will often\nhave different \u0027effective cache sizes\u0027. To solve this problem:\n\n- Instead of relying on a single cache-size provided by the platform and\n  sticking to it, the code now auto-detects the \u0027effective migration\n  cost\u0027 between two measured CPUs, via iterating through a wide range of\n  cachesizes. The code searches for the maximum migration cost, which\n  occurs when the working set of the test-workload falls just below the\n  \u0027effective cache size\u0027. I.e. real-life optimized search is done for\n  the maximum migration cost, between two real CPUs.\n\n  This, amongst other things, has the positive effect hat if e.g. two\n  CPUs share a L2/L3 cache, a different (and accurate) migration cost\n  will be found than between two CPUs on the same system that dont share\n  any caches.\n\n(The reliable measurement of migration costs is tricky - see the source\nfor details.)\n\nFurthermore i\u0027ve added various boot-time options to override/tune\nmigration behavior.\n\nFirstly, there\u0027s a blanket override for autodetection:\n\n\tmigration_cost\u003d1000,2000,3000\n\nwill override the depth 0/1/2 values with 1msec/2msec/3msec values.\n\nSecondly, there\u0027s a global factor that can be used to increase (or\ndecrease) the autodetected values:\n\n\tmigration_factor\u003d120\n\nwill increase the autodetected values by 20%. This option is useful to\ntune things in a workload-dependent way - e.g. if a workload is\ncache-insensitive then CPU utilization can be maximized by specifying\nmigration_factor\u003d0.\n\nI\u0027ve tested the autodetection code quite extensively on x86, on 3\nP3/Xeon/2MB, and the autodetected values look pretty good:\n\nDual Celeron (128K L2 cache):\n\n ---------------------\n migration cost matrix (max_cache_size: 131072, cpu: 467 MHz):\n ---------------------\n           [00]    [01]\n [00]:     -     1.7(1)\n [01]:   1.7(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (0) 1.7 (1784008)\n ---------------------\n\nHere the slow memory subsystem dominates system performance, and even\nthough caches are small, the migration cost is 1.7 msecs.\n\nDual HT P4 (512K L2 cache):\n\n ---------------------\n migration cost matrix (max_cache_size: 524288, cpu: 2379 MHz):\n ---------------------\n           [00]    [01]    [02]    [03]\n [00]:     -     0.4(1)  0.0(0)  0.4(1)\n [01]:   0.4(1)    -     0.4(1)  0.0(0)\n [02]:   0.0(0)  0.4(1)    -     0.4(1)\n [03]:   0.4(1)  0.0(0)  0.4(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (33900) 0.4 (448514)\n ---------------------\n\nHere it can be seen that there is no migration cost between two HT\nsiblings (CPU#0/2 and CPU#1/3 are separate physical CPUs). A fast memory\nsystem makes inter-physical-CPU migration pretty cheap: 0.4 msecs.\n\n8-way P3/Xeon [2MB L2 cache]:\n\n ---------------------\n migration cost matrix (max_cache_size: 2097152, cpu: 700 MHz):\n ---------------------\n           [00]    [01]    [02]    [03]    [04]    [05]    [06]    [07]\n [00]:     -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [01]:  19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [02]:  19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [03]:  19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [04]:  19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1)\n [05]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1)\n [06]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1)\n [07]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (0) 19.2 (19281756)\n ---------------------\n\nThis one has huge caches and a relatively slow memory subsystem - so the\nmigration cost is 19 msecs.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: \u003cwilder@us.ibm.com\u003e\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e16885c5ad624a6efe1b1bf764e075d75f65a788",
      "tree": "de137e799ddc0a696bb288b34fade65af1708a5e",
      "parents": [
        "a9fad4cc3975573a359a92ad047f5995d8391631"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 11 12:17:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] uninline capable()\n\nUninline capable().  Saves 2K of kernel text on a generic .config, and 1K on a\ntiny config.  In addition it makes the use of capable more consistent between\nCONFIG_SECURITY and !CONFIG_SECURITY\n\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": "4c29c4c5f28616f2a87f0e6499aa9776d9be58ad",
      "tree": "897af28f11c412f9d784df2c86e5f659588b4f30",
      "parents": [
        "d974837ae076101d33a59eefc6bfef923eaa0e32"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jan 09 20:54:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:02:02 2006 -0800"
      },
      "message": "[PATCH] include/linux/sched.h: no need to guard the normalize_rt_tasks() prototype\n\nThere\u0027s no need to guard the normalize_rt_tasks() prototype with an #ifdef\nCONFIG_MAGIC_SYSRQ.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.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": "408894ee4dd4debfdedd472eb4d8414892fc90f6",
      "tree": "b324c1086b804cc05c2839f9d9675eef2bc7c949",
      "parents": [
        "f3f54ffa703c6298240ffd69616451d645bae4d5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:20 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:20 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, debugging code\n\nmutex implementation - add debugging code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "b5f545c880a2a47947ba2118b2509644ab7a2969",
      "tree": "8720e02262b0ff6309ae79603f6c63965296d378",
      "parents": [
        "cab8eb594e84b434d20412fc5a3985b0bee3ab9f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jan 08 01:02:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:53 2006 -0800"
      },
      "message": "[PATCH] keys: Permit running process to instantiate keys\n\nMake it possible for a running process (such as gssapid) to be able to\ninstantiate a key, as was requested by Trond Myklebust for NFS4.\n\nThe patch makes the following changes:\n\n (1) A new, optional key type method has been added. This permits a key type\n     to intercept requests at the point /sbin/request-key is about to be\n     spawned and do something else with them - passing them over the\n     rpc_pipefs files or netlink sockets for instance.\n\n     The uninstantiated key, the authorisation key and the intended operation\n     name are passed to the method.\n\n (2) The callout_info is no longer passed as an argument to /sbin/request-key\n     to prevent unauthorised viewing of this data using ps or by looking in\n     /proc/pid/cmdline.\n\n     This means that the old /sbin/request-key program will not work with the\n     patched kernel as it will expect to see an extra argument that is no\n     longer there.\n\n     A revised keyutils package will be made available tomorrow.\n\n (3) The callout_info is now attached to the authorisation key. Reading this\n     key will retrieve the information.\n\n (4) A new field has been added to the task_struct. This holds the\n     authorisation key currently active for a thread. Searches now look here\n     for the caller\u0027s set of keys rather than looking for an auth key in the\n     lowest level of the session keyring.\n\n     This permits a thread to be servicing multiple requests at once and to\n     switch between them. Note that this is per-thread, not per-process, and\n     so is usable in multithreaded programs.\n\n     The setting of this field is inherited across fork and exec.\n\n (5) A new keyctl function (KEYCTL_ASSUME_AUTHORITY) has been added that\n     permits a thread to assume the authority to deal with an uninstantiated\n     key. Assumption is only permitted if the authorisation key associated\n     with the uninstantiated key is somewhere in the thread\u0027s keyrings.\n\n     This function can also clear the assumption.\n\n (6) A new magic key specifier has been added to refer to the currently\n     assumed authorisation key (KEY_SPEC_REQKEY_AUTH_KEY).\n\n (7) Instantiation will only proceed if the appropriate authorisation key is\n     assumed first. The assumed authorisation key is discarded if\n     instantiation is successful.\n\n (8) key_validate() is moved from the file of request_key functions to the\n     file of permissions functions.\n\n (9) The documentation is updated.\n\nFrom: \u003cValdis.Kletnieks@vt.edu\u003e\n\n    Build fix.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Alexander Zangerl \u003caz@bond.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d4829cd5b4bd1ea58ba1bebad44d562f4027c290",
      "tree": "c60f85fdb0233d7a8574b203aeac96d7570c583f",
      "parents": [
        "2d89c929078588aa9b9c674ef03ee9aa816b59b8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Jan 08 01:01:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] remove get_task_struct_rcu()\n\nThe latest set of signal-RCU patches does not use get_task_struct_rcu().\nAttached is a patch that removes it.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e56d090310d7625ecb43a1eeebd479f04affb48b",
      "tree": "2f479215dff4a2d8f3a9ed85200a5bc4f51534be",
      "parents": [
        "4369ef3c3e9d3bd9b879580678778f558d481e90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 08 01:01:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] RCU signal handling\n\nRCU tasklist_lock and RCU signal handling: send signals RCU-read-locked\ninstead of tasklist_lock read-locked.  This is a scalability improvement on\nSMP and a preemption-latency improvement under PREEMPT_RCU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "930d915252edda7042c944ed3c30194a2f9fe163",
      "tree": "620452f11a9949943765b7a28e5b919f40f32b12",
      "parents": [
        "21eac81f252fe31c3cf64b805a1e8652192f3a3b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:41 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: PF_SWAPWRITE to allow writing to swap\n\nAdd PF_SWAPWRITE to control a processes permission to write to swap.\n\n- Use PF_SWAPWRITE in may_write_to_queue() instead of checking for kswapd\n  and pdflush\n\n- Set PF_SWAPWRITE flag for kswapd and pdflush\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3cb487149bd706aa6aeb02042332a450978dc1c",
      "tree": "69051e0f9853314cf275e4e800faad950e3053c3",
      "parents": [
        "070f80326a215d8e6c4fd6f175e28eb446c492bc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:29 2006 -0800"
      },
      "message": "[PATCH] atomic_long_t \u0026 include/asm-generic/atomic.h V2\n\nSeveral counters already have the need to use 64 atomic variables on 64 bit\nplatforms (see mm_counter_t in sched.h).  We have to do ugly ifdefs to fall\nback to 32 bit atomic on 32 bit platforms.\n\nThe VM statistics patch that I am working on will also make more extensive\nuse of atomic64.\n\nThis patch introduces a new type atomic_long_t by providing definitions in\nasm-generic/atomic.h that works similar to the c \"long\" type.  Its 32 bits\non 32 bit platforms and 64 bits on 64 bit platforms.\n\nAlso cleans up the determination of the mm_counter_t in sched.h.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a9d9baa1e819b2f92f9cfa5240f766c535e636a6",
      "tree": "0ae15e5b1071b395affa0ac9abf6fd746ad60b0e",
      "parents": [
        "e0f39591cc178026607fcbbe9a53be435fe8285d"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Mon Nov 28 13:43:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] clean up lock_cpu_hotplug() in cpufreq\n\nThere are some callers in cpufreq hotplug notify path that the lowest\nfunction calls lock_cpu_hotplug().  The lock is already held during\ncpu_up() and cpu_down() calls when the notify calls are broadcast to\nregistered clients.\n\nIdeally if possible, we could disable_preempt() at the highest caller and\nmake sure we dont sleep in the path down in cpufreq-\u003edriver_target() calls\nbut the calls are so intertwined and cumbersome to cleanup.\n\nHence we consistently use lock_cpu_hotplug() and unlock_cpu_hotplug() in\nall places.\n\n - Removed export of cpucontrol semaphore and made it static.\n - removed explicit uses of up/down with lock_cpu_hotplug()\n   so we can keep track of the the callers in same thread context and\n   just keep refcounts without calling a down() that causes a deadlock.\n - Removed current_in_hotplug() uses\n - Removed PF_HOTPLUG_CPU in sched.h introduced for the current_in_hotplug()\n   temporary workaround.\n\nTested with insmod of cpufreq_stat.ko, and logical online/offline\nto make sure we dont have any hang situations.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Zwane Mwaikambo \u003czwane@linuxpower.ca\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20dcae32439384b6863c626bb3b2a09bed65b33e",
      "tree": "9750c39119447fb32963448bf1935e1ba22b2f9d",
      "parents": [
        "4557398f8cbaf9f254cff747534b4724c7f75c4f"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Nov 13 16:07:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] aio: remove kioctx from mm_struct\n\nSync iocbs have a life cycle that don\u0027t need a kioctx.  Their retrying, if\nany, is done in the context of their owner who has allocated them on the\nstack.\n\nThe sole user of a sync iocb\u0027s ctx reference was aio_complete() checking for\nan elevated iocb ref count that could never happen.  No path which grabs an\niocb ref has access to sync iocbs.\n\nIf we were to implement sync iocb cancelation it would be done by the owner of\nthe iocb using its on-stack reference.\n\nRemoving this chunk from aio_complete allows us to remove the entire kioctx\ninstance from mm_struct, reducing its size by a third.  On a i386 testing box\nthe slab size went from 768 to 504 bytes and from 5 to 8 per page.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nAcked-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f037360f2ed111fe89a8f5cb6ba351f4e9934e53",
      "tree": "5978627d4252a7faf6d4fb9577fe8aa55e5db648",
      "parents": [
        "10ebffde3d3916026974352b7900e44afe2b243f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:57 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: thread_info header cleanup\n\na) in smp_lock.h #include of sched.h and spinlock.h moved under #ifdef\n   CONFIG_LOCK_KERNEL.\n\nb) interrupt.h now explicitly pulls sched.h (not via smp_lock.h from\n   hardirq.h as it used to)\n\nc) in three more places we need changes to compensate for (a) - one place\n   in arch/sparc needs string.h now, hardirq.h needs forward declaration of\n   task_struct and preempt.h needs direct include of thread_info.h.\n\nd) thread_info-related helpers in sched.h and thread_info.h put under\n   ifndef __HAVE_THREAD_FUNCTIONS.  Obviously safe.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10ebffde3d3916026974352b7900e44afe2b243f",
      "tree": "ac88fa33694f5bea1b6958e1e56bcd4c9b95b002",
      "parents": [
        "a1261f54611ec4ad6a7ab7080f86747e3ac3685b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: introduce setup_thread_stack() and end_of_stack()\n\nencapsulates the rest of arch-dependent operations with thread_info access.\nTwo new helpers - setup_thread_stack() and end_of_stack().  For normal case\nthe former consists of copying thread_info of parent to new thread_info and\nthe latter returns pointer immediately past the end of thread_info.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1261f54611ec4ad6a7ab7080f86747e3ac3685b",
      "tree": "8a65c419da590e3712543f69284fb5f8cd613a37",
      "parents": [
        "7feacd53347c04aee789ba5d632eda0c3fc421c4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: introduce task_thread_info\n\nnew helper - task_thread_info(task).  On platforms that have thread_info\nallocated separately (i.e.  in default case) it simply returns\ntask-\u003ethread_info.  m68k wants (and for good reasons) to embed its thread_info\ninto task_struct.  So it will (in later patch) have task_thread_info() of its\nown.  For now we just add a macro for generic case and convert existing\ninstances of its body in core kernel to uses of new macro.  Obviously safe -\nall normal architectures get the same preprocessor output they used to get.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90d45d17f3e68608ac7ba8fc3d7acce022a19c8e",
      "tree": "615b2f21c3e02e0ec901febd180014fed64a6a01",
      "parents": [
        "330d57fb98a916fa8e1363846540dd420e99499a"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Tue Nov 08 21:34:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:50 2005 -0800"
      },
      "message": "[PATCH] cpu hotplug: fix locking in cpufreq drivers\n\nWhen calling target drivers to set frequency, we take cpucontrol lock.\nWhen we modified the code to accomodate CPU hotplug, there was an attempt\nto take a double lock of cpucontrol leading to a deadlock.  Since the\ncurrent thread context is already holding the cpucontrol lock, we dont need\nto make another attempt to acquire it.\n\nNow we leave a trace in current-\u003eflags indicating current thread already is\nunder cpucontrol lock held, so we dont attempt to do this another time.\n\nThanks to Andrew Morton for the beating:-)\n\nFrom: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\n\n  Build fix\n\n(akpm: this patch is still unpleasant.  Ashok continues to look for a cleaner\nsolution, doesn\u0027t he?  ;))\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "621d31219d9a788bda924a0613048053f3f5f211",
      "tree": "9fb9846fdd999ba04c436aa84c7da0d8233ac545",
      "parents": [
        "b67a1b9e4bf878aa5d4b6b44cb5a251a2f425f0d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:45 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:31 2005 -0800"
      },
      "message": "[PATCH] cleanup the usage of SEND_SIG_xxx constants\n\nThis patch simplifies some checks for magic siginfo values.  It should not\nchange the behaviour in any way.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4098f9918e068e51fed1727f6ba80efcec372378",
      "tree": "0495f14e29ad93c165988be49c70ec658fffd086",
      "parents": [
        "70a6a0cb92f24fd6bbe2e75299168909f735676a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:03:21 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:28 2005 -0800"
      },
      "message": "[PATCH] sched: hardcode non-smp set_cpus_allowed\n\nSimplify the UP (1 CPU) implementatin of set_cpus_allowed.\n\nThe one CPU is hardcoded to be cpu 0 - so just test for that bit, and avoid\nhaving to pick up the cpu_online_map.\n\nAlso, unexport cpu_online_map: it was only needed for set_cpus_allowed().\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-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": "053199edf54f685e7dea765b60d4d5e9070dadec",
      "tree": "a2d12a8b7f07b59048da992e7ae9405bc4ee292b",
      "parents": [
        "5aa15b5f27fc2c404530c6c8eabdb8437deb3163"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:30 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpusets: dual semaphore locking overhaul\n\nOverhaul cpuset locking.  Replace single semaphore with two semaphores.\n\nThe suggestion to use two locks was made by Roman Zippel.\n\nBoth locks are global.  Code that wants to modify cpusets must first\nacquire the exclusive manage_sem, which allows them read-only access to\ncpusets, and holds off other would-be modifiers.  Before making actual\nchanges, the second semaphore, callback_sem must be acquired as well.  Code\nthat needs only to query cpusets must acquire callback_sem, which is also a\nglobal exclusive lock.\n\nThe earlier problems with double tripping are avoided, because it is\nallowed for holders of manage_sem to nest the second callback_sem lock, and\nonly callback_sem is needed by code called from within __alloc_pages(),\nwhere the double tripping had been possible.\n\nThis is not quite the same as a normal read/write semaphore, because\nobtaining read-only access with intent to change must hold off other such\nattempts, while allowing read-only access w/o such intention.  Changing\ncpusets involves several related checks and changes, which must be done\nwhile allowing read-only queries (to avoid the double trip), but while\nensuring nothing changes (holding off other would be modifiers.)\n\nThis overhaul of cpuset locking also makes careful use of task_lock() to\nguard access to the task-\u003ecpuset pointer, closing a couple of race\nconditions noticed while reading this code (thanks, Roman).  I\u0027ve never\nseen these races fail in any use or test.\n\nSee further the comments in the code.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f412ac08c9861b4791af0145934c22f1458686da",
      "tree": "5e515efa116f3968c2caa75bc691a197199313a8",
      "parents": [
        "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: fix rss and mmlist locking\n\nA couple of oddities were guarded by page_table_lock, no longer properly\nguarded when that is split.\n\nThe mm_counters of file_rss and anon_rss: make those an atomic_t, or an\natomic64_t if the architecture supports it, in such a case.  Definitions by\ncourtesy of Christoph Lameter: who spent considerable effort on more scalable\nways of counting, but found insufficient benefit in practice.\n\nAnd adding an mm with swap to the mmlist for swapoff: the list is well-\nguarded by its own lock, but the list_empty check now has to be repeated\ninside it.\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": "f449952bc8bde7fbc73c6d20dff92b627a21f8b9",
      "tree": "2d7dc4b7381274b1111c76e436b4a81d119f656a",
      "parents": [
        "365e9c87a982c03d0af3886e29d877f581b59611"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: mm_struct hiwaters moved\n\nSlight and timid rearrangement of mm_struct: hiwater_rss and hiwater_vm were\ntacked on the end, but it seems better to keep them near _file_rss, _anon_rss\nand total_vm, in the same cacheline on those arches verified.\n\nThere are likely to be more profitable rearrangements, but less obvious (is it\ngood or bad that saved_auxv[AT_VECTOR_SIZE] isolates cpu_vm_mask and context\nfrom many others?), needing serious instrumentation.\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": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\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": "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": "46113830a18847cff8da73005e57bc49c2f95a56",
      "tree": "93946fc290d9481e7055217ff497583647d1e4d4",
      "parents": [
        "094804c5a132f04c12dd4902ee15c64362e5c1af"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@gnumonks.org",
        "time": "Mon Oct 10 19:44:29 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 16:16:33 2005 -0700"
      },
      "message": "[PATCH] Fix signal sending in usbdevio on async URB completion\n\nIf a process issues an URB from userspace and (starts to) terminate\nbefore the URB comes back, we run into the issue described above.  This\nis because the urb saves a pointer to \"current\" when it is posted to the\ndevice, but there\u0027s no guarantee that this pointer is still valid\nafterwards.\n\nIn fact, there are three separate issues:\n\n1) the pointer to \"current\" can become invalid, since the task could be\n   completely gone when the URB completion comes back from the device.\n\n2) Even if the saved task pointer is still pointing to a valid task_struct,\n   task_struct-\u003esighand could have gone meanwhile.\n\n3) Even if the process is perfectly fine, permissions may have changed,\n   and we can no longer send it a signal.\n\nSo what we do instead, is to save the PID and uid\u0027s of the process, and\nintroduce a new kill_proc_info_as_uid() function.\n\nSigned-off-by: Harald Welte \u003claforge@gnumonks.org\u003e\n[ Fixed up types and added symbol exports ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a8342d233a39ee582e9f7260e12d2f5fd194a05",
      "tree": "cf0972e1deec828977794cc300597bb448535d4c",
      "parents": [
        "aa55a08687059aa169d10a313c41f238c2070488"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 29 15:18:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 29 15:18:21 2005 -0700"
      },
      "message": "Revert task flag re-ordering, add comments\n\nRoland points out that the flags end up having non-obvious dependencies\nelsewhere, so revert aa55a08687059aa169d10a313c41f238c2070488 and add\nsome comments about why things are as they are.\n\nWe\u0027ll just have to fix up the broken comparisons. Roland has a patch.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa55a08687059aa169d10a313c41f238c2070488",
      "tree": "9eaad6fc01e385778142b451a22bef99af9ecc68",
      "parents": [
        "b20fd6508c565df04a6b5816f17e03b04d4f924d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Sep 29 19:58:53 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 29 09:05:52 2005 -0700"
      },
      "message": "[PATCH] fix TASK_STOPPED vs TASK_NONINTERACTIVE interaction\n\ndo_signal_stop:\n\n\tfor_each_thread(t) {\n\t\tif (t-\u003estate \u003c TASK_STOPPED)\n\t\t\t++sig-\u003egroup_stop_count;\n\t}\n\nHowever, TASK_NONINTERACTIVE \u003e TASK_STOPPED, so this loop will not\ncount TASK_INTERRUPTIBLE | TASK_NONINTERACTIVE threads.\n\nSee also wait_task_stopped(), which checks -\u003estate \u003e TASK_STOPPED.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\n\n[ We really probably should always use the appropriate bitmasks to test\n  task states, not do it like this. Using something like\n\n\t#define TASK_RUNNABLE (TASK_RUNNING | TASK_INTERRUPTIBLE | \\\n\t\t\t\tTASK_UNINTERRUPTIBLE | TASK_NONINTERACTIVE)\n\n  and then doing \"if (task-\u003estate \u0026 TASK_RUNNABLE)\" or similar. But the\n  ordering of the task states is historical, and keeping the ordering\n  does make sense regardless. ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "498d0c5711094b0e1fd93f5355d270ccebdec706",
      "tree": "e155f09b6f5b752171638028e574947e275cc3d9",
      "parents": [
        "921717a2a1cde78c9b2aa971c16510d63efe7320"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Sep 13 01:25:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:29 2005 -0700"
      },
      "message": "[PATCH] set_current_state() commentary\n\nExplain the mysteries of set_current_state().\n\nQuoth Linus:\n\n The scheduler itself never needs the memory barrier at all.\n\n The barrier is needed only if the user itself ends up testing some other\n thing afterwards, ie if you have\n\n \tset_process_state(TASK_INTERRUPTIBLE);\n \tif (still_need_to_sleep())\n \t\tschedule();\n\n then the \"still_need_to_sleep()\" thing may test flags and wakeup events,\n and then you _may_ want to (and often do) make sure that the write of\n TASK_INTERRUPTIBLE is serialized wrt the reads of any wakeup data (since\n the wakeup may have happened on another CPU).\n\n So the comment is somewhat wrong. We don\u0027t really _care_ whether the state\n propagates out to other CPU\u0027s since all of our actions are purely local,\n and there is nothing we do that is conditional on any other CPU: we\u0027re\n going to sleep unconditionally, and the scheduler only cares about _our_\n state, not about somebody elses state.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3426599af9524104be6938bcb1fcaab314781c7",
      "tree": "c6d354bddb5b8cd298d139b60a9257ebd8323b90",
      "parents": [
        "f24ec7f6c6278c0ea4c00efe96d50b1e66796c44"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Mon Sep 12 04:30:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 09:16:27 2005 -0700"
      },
      "message": "[PATCH] cpuset semaphore depth check optimize\n\nOptimize the deadlock avoidance check on the global cpuset\nsemaphore cpuset_sem.  Instead of adding a depth counter to the\ntask struct of each task, rather just two words are enough, one\nto store the depth and the other the current cpuset_sem holder.\n\nThanks to Nikita Danilov for the idea.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\n\n[ We may want to change this further, but at least it\u0027s now\n  a totally internal decision to the cpusets code ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a2a979821b6ab75a4f143cfaa1c4672cc259ec10",
      "tree": "4e327a4a8c14829d4addf8a09e13355e0cf565a4",
      "parents": [
        "9fe66dfd8846706ff11ed7990d06c92644973bd8"
      ],
      "author": {
        "name": "Keith Owens",
        "email": "kaos@sgi.com",
        "time": "Sun Sep 11 17:19:06 2005 +1000"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Sun Sep 11 14:01:30 2005 -0700"
      },
      "message": "[PATCH] MCA/INIT: scheduler hooks\n\nScheduler hooks to see/change which process is deemed to be on a cpu.\n\nSigned-off-by: Keith Owens \u003ckaos@sgi.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "64ed93a268bc18fa6f72f61420d0e0022c5e38d1",
      "tree": "1332ce542510b88014767f3536d9150710a2f3f9",
      "parents": [
        "672289e9faa56acd4e39ad866ea258b7be7c99a6"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:36 2005 -0700"
      },
      "message": "[PATCH] add schedule_timeout_{,un}interruptible() interfaces\n\nAdd schedule_timeout_{,un}interruptible() interfaces so that\nschedule_timeout() callers don\u0027t have to worry about forgetting to add the\nset_current_state() call beforehand.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d79fc0fc6645b0cf5cd980da76942ca6d6300fa4",
      "tree": "e74aca1df1d37dbd7af66636a4e39a3f7e1af479",
      "parents": [
        "95cdf3b799a481969a48d69a1a52916ad5da6694"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:26:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:22 2005 -0700"
      },
      "message": "[PATCH] sched: TASK_NONINTERACTIVE\n\nThis patch implements a task state bit (TASK_NONINTERACTIVE), which can be\nused by blocking points to mark the task\u0027s wait as \"non-interactive\".  This\ndoes not mean the task will be considered a CPU-hog - the wait will simply\nnot have an effect on the waiting task\u0027s priority - positive or negative\nalike.  Right now only pipe_wait() will make use of it, because it\u0027s a\ncommon source of not-so-interactive waits (kernel compilation jobs, etc.).\n\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": "4247bdc60048018b98f71228b45cfbc5f5270c86",
      "tree": "6f6abbd10685af84c97e661da6771726a12209ac",
      "parents": [
        "fb1c8f93d869b34cacb8b8932e2b83d96a19d720"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat Sep 10 00:26:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] cpuset semaphore depth check deadlock fix\n\nThe cpusets-formalize-intermediate-gfp_kernel-containment patch\nhas a deadlock problem.\n\nThis patch was part of a set of four patches to make more\nextensive use of the cpuset \u0027mem_exclusive\u0027 attribute to\nmanage kernel GFP_KERNEL memory allocations and to constrain\nthe out-of-memory (oom) killer.\n\nA task that is changing cpusets in particular ways on a system\nwhen it is very short of free memory could double trip over\nthe global cpuset_sem semaphore (get the lock and then deadlock\ntrying to get it again).\n\nThe second attempt to get cpuset_sem would be in the routine\ncpuset_zone_allowed().  This was discovered by code inspection.\nI can not reproduce the problem except with an artifically\nhacked kernel and a specialized stress test.\n\nIn real life you cannot hit this unless you are manipulating\ncpusets, and are very unlikely to hit it unless you are rapidly\nmodifying cpusets on a memory tight system.  Even then it would\nbe a rare occurence.\n\nIf you did hit it, the task double tripping over cpuset_sem\nwould deadlock in the kernel, and any other task also trying\nto manipulate cpusets would deadlock there too, on cpuset_sem.\nYour batch manager would be wedged solid (if it was cpuset\nsavvy), but classic Unix shells and utilities would work well\nenough to reboot the system.\n\nThe unusual condition that led to this bug is that unlike most\nsemaphores, cpuset_sem _can_ be acquired while in the page\nallocation code, when __alloc_pages() calls cpuset_zone_allowed.\nSo it easy to mistakenly perform the following sequence:\n  1) task makes system call to alter a cpuset\n  2) take cpuset_sem\n  3) try to allocate memory\n  4) memory allocator, via cpuset_zone_allowed, trys to take cpuset_sem\n  5) deadlock\n\nThe reason that this is not a serious bug for most users\nis that almost all calls to allocate memory don\u0027t require\ntaking cpuset_sem.  Only some code paths off the beaten\ntrack require taking cpuset_sem -- which is good.  Taking\na global semaphore on the main code path for allocating\nmemory would not scale well.\n\nThis patch fixes this deadlock by wrapping the up() and down()\ncalls on cpuset_sem in kernel/cpuset.c with code that tracks\nthe nesting depth of the current task on that semaphore, and\nonly does the real down() if the task doesn\u0027t hold the lock\nalready, and only does the real up() if the nesting depth\n(number of unmatched downs) is exactly one.\n\nThe previous required use of refresh_mems(), anytime that\nthe cpuset_sem semaphore was acquired and the code executed\nwhile holding that semaphore might try to allocate memory, is\nno longer required.  Two refresh_mems() calls were removed\nthanks to this.  This is a good change, as failing to get\nall the necessary refresh_mems() calls placed was a primary\nsource of bugs in this cpuset code.  The only remaining call\nto refresh_mems() is made while doing a memory allocation,\nif certain task memory placement data needs to be updated\nfrom its cpuset, due to the cpuset having been changed behind\nthe tasks back.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "383f2835eb9afb723af71850037b2f074ac9db60",
      "tree": "1ef99fd4d7246b2afa16dc7d1514b6ff25fa8284",
      "parents": [
        "b0d62e6d5b3318b6b722121d945afa295f7201b5"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Fri Sep 09 13:02:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:31 2005 -0700"
      },
      "message": "[PATCH] Prefetch kernel stacks to speed up context switch\n\nFor architecture like ia64, the switch stack structure is fairly large\n(currently 528 bytes).  For context switch intensive application, we found\nthat significant amount of cache misses occurs in switch_to() function.\nThe following patch adds a hook in the schedule() function to prefetch\nswitch stack structure as soon as \u0027next\u0027 task is determined.  This allows\nmaximum overlap in prefetch cache lines for that structure.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c1cfda20a508b181bdda8c0045f7c0c333880a5",
      "tree": "eaa5b7ef7407316c36def26169574d0e37b1e60a",
      "parents": [
        "ef08e3b4981aebf2ba9bd7025ef7210e8eec07ce"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Tue Sep 06 15:18:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:40 2005 -0700"
      },
      "message": "[PATCH] cpusets: Move the ia64 domain setup code to the generic code\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\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": "36d57ac4a818cb4aa3edbdf63ad2ebc31106f925",
      "tree": "445eda00ee5974a65e21152cd240fb604c6d112d",
      "parents": [
        "32605a18152b246df483fadc1c23854addde8755"
      ],
      "author": {
        "name": "H. J. Lu",
        "email": "hjl@lucon.org",
        "time": "Tue Sep 06 15:16:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:21 2005 -0700"
      },
      "message": "[PATCH] auxiliary vector cleanups\n\nThe size of auxiliary vector is fixed at 42 in linux/sched.h.  But it isn\u0027t\nvery obvious when looking at linux/elf.h.  This patch adds AT_VECTOR_SIZE\nso that we can change it if necessary when a new vector is added.\n\nBecause of include file ordering problems, doing this necessitated the\nextraction of the AT_* symbols into a standalone header file.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8446f1d391f3d27e6bf9c43d4cbcdac0ca720417",
      "tree": "738853af877c9a391b4f2db467e7f90c6e2e38ed",
      "parents": [
        "4732efbeb997189d9f9b04708dc26bf8613ed721"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 06 15:16:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:17 2005 -0700"
      },
      "message": "[PATCH] detect soft lockups\n\nThis patch adds a new kernel debug feature: CONFIG_DETECT_SOFTLOCKUP.\n\nWhen enabled then per-CPU watchdog threads are started, which try to run\nonce per second.  If they get delayed for more than 10 seconds then a\ncallback from the timer interrupt detects this condition and prints out a\nwarning message and a stack dump (once per lockup incident).  The feature\nis otherwise non-intrusive, it doesnt try to unlock the box in any way, it\nonly gets the debug info out, automatically, and on all CPUs affected by\nthe lockup.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-Off-By: Matthias Urlichs \u003csmurf@smurf.noris.de\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eeca28300df110bd6ed54b31193c83b87921443",
      "tree": "7db42d8a18d80eca538f5b7d25e0532b8fa38b85",
      "parents": [
        "bd4c625c061c2a38568d0add3478f59172455159"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Tue Jul 12 17:06:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:38:38 2005 -0700"
      },
      "message": "[PATCH] inotify\n\ninotify is intended to correct the deficiencies of dnotify, particularly\nits inability to scale and its terrible user interface:\n\n        * dnotify requires the opening of one fd per each directory\n          that you intend to watch. This quickly results in too many\n          open files and pins removable media, preventing unmount.\n        * dnotify is directory-based. You only learn about changes to\n          directories. Sure, a change to a file in a directory affects\n          the directory, but you are then forced to keep a cache of\n          stat structures.\n        * dnotify\u0027s interface to user-space is awful.  Signals?\n\ninotify provides a more usable, simple, powerful solution to file change\nnotification:\n\n        * inotify\u0027s interface is a system call that returns a fd, not SIGIO.\n\t  You get a single fd, which is select()-able.\n        * inotify has an event that says \"the filesystem that the item\n          you were watching is on was unmounted.\"\n        * inotify can watch directories or files.\n\nInotify is currently used by Beagle (a desktop search infrastructure),\nGamin (a FAM replacement), and other projects.\n\nSee Documentation/filesystems/inotify.txt.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22e2c507c301c3dbbcf91b4948b88f78842ee6c9",
      "tree": "9a97c91d1362e69703aa286021daffb8a5456f4c",
      "parents": [
        "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Jun 27 10:55:12 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:33:29 2005 -0700"
      },
      "message": "[PATCH] Update cfq io scheduler to time sliced design\n\nThis updates the CFQ io scheduler to the new time sliced design (cfq\nv3).  It provides full process fairness, while giving excellent\naggregate system throughput even for many competing processes.  It\nsupports io priorities, either inherited from the cpu nice value or set\ndirectly with the ioprio_get/set syscalls.  The latter closely mimic\nset/getpriority.\n\nThis import is based on my latest from -mm.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2031d0f586839bc68f35bcf8580b18947f8491d4",
      "tree": "e317615b4cb62350edeea0afe0a4fc94152cee29",
      "parents": [
        "98e7f29418a4931f97e6b78d1ef3a47103fe6cd5",
        "3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 17:16:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 17:16:53 2005 -0700"
      },
      "message": "Merge Christoph\u0027s freeze cleanup patch\n"
    },
    {
      "commit": "3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73",
      "tree": "d1e7c1e2e8902072042aefc3a7976b271cf76021",
      "parents": [
        "b3e112bcc19abd8e9657dca34a87316786e096f3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Fri Jun 24 23:13:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 17:10:13 2005 -0700"
      },
      "message": "[PATCH] Cleanup patch for process freezing\n\n1. Establish a simple API for process freezing defined in linux/include/sched.h:\n\n   frozen(process)\t\tCheck for frozen process\n   freezing(process)\t\tCheck if a process is being frozen\n   freeze(process)\t\tTell a process to freeze (go to refrigerator)\n   thaw_process(process)\tRestart process\n   frozen_process(process)\tProcess is frozen now\n\n2. Remove all references to PF_FREEZE and PF_FROZEN from all\n   kernel sources except sched.h\n\n3. Fix numerous locations where try_to_freeze is manually done by a driver\n\n4. Remove the argument that is no longer necessary from two function calls.\n\n5. Some whitespace cleanup\n\n6. Clear potential race in refrigerator (provides an open window of PF_FREEZE\n   cleared before setting PF_FROZEN, recalc_sigpending does not check\n   PF_FROZEN).\n\nThis patch does not address the problem of freeze_processes() violating the rule\nthat a task may only modify its own flags by setting PF_FREEZE. This is not clean\nin an SMP environment. freeze(process) is therefore not SMP safe!\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a20ff27ef75d866730ee796acd811a925af762f",
      "tree": "a9e6acd72db03cfec5fdaee8cfab231032216581",
      "parents": [
        "37e4ab3f0cba13adf3535d373fd98e5ee47b5410"
      ],
      "author": {
        "name": "Dinakar Guniguntala",
        "email": "dino@in.ibm.com",
        "time": "Sat Jun 25 14:57:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:45 2005 -0700"
      },
      "message": "[PATCH] Dynamic sched domains: sched changes\n\nThe following patches add dynamic sched domains functionality that was\nextensively discussed on lkml and lse-tech.  I would like to see this added to\n-mm\n\no The main advantage with this feature is that it ensures that the scheduler\n  load balacing code only balances against the cpus that are in the sched\n  domain as defined by an exclusive cpuset and not all of the cpus in the\n  system. This removes any overhead due to load balancing code trying to\n  pull tasks outside of the cpu exclusive cpuset only to be prevented by\n  the tasks\u0027 cpus_allowed mask.\no cpu exclusive cpusets are useful for servers running orthogonal\n  workloads such as RT applications requiring low latency and HPC\n  applications that are throughput sensitive\n\no It provides a new API partition_sched_domains in sched.c\n  that makes dynamic sched domains possible.\no cpu_exclusive cpusets sets are now associated with a sched domain.\n  Which means that the users can dynamically modify the sched domains\n  through the cpuset file system interface\no ia64 sched domain code has been updated to support this feature as well\no Currently, this does not support hotplug. (However some of my tests\n  indicate hotplug+preempt is currently broken)\no I have tested it extensively on x86.\no This should have very minimal impact on performance as none of\n  the fast paths are affected\n\nSigned-off-by: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "476d139c218e44e045e4bc6d4cc02b010b343939",
      "tree": "82a6537b829b2b35156fba5a312f4e44273a4356",
      "parents": [
        "674311d5b411e9042df4fdf7aef0b3c8217b6240"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Jun 25 14:57:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:44 2005 -0700"
      },
      "message": "[PATCH] sched: consolidate sbe sbf\n\nConsolidate balance-on-exec with balance-on-fork.  This is made easy by the\nsched-domains RCU patches.\n\nAs well as the general goodness of code reduction, this allows the runqueues\nto be unlocked during balance-on-fork.\n\nschedstats is a problem.  Maybe just have balance-on-event instead of\ndistinguishing fork and exec?\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-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": "4866cde064afbb6c2a488c265e696879de616daa",
      "tree": "6effad1ab6271129fc607b98273086409876563a",
      "parents": [
        "48c08d3f8ff94fa118187e4d8d4a5707bb85e59d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Jun 25 14:57:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:43 2005 -0700"
      },
      "message": "[PATCH] sched: cleanup context switch locking\n\nInstead of requiring architecture code to interact with the scheduler\u0027s\nlocking implementation, provide a couple of defines that can be used by the\narchitecture to request runqueue unlocked context switches, and ask for\ninterrupts to be enabled over the context switch.\n\nAlso replaces the \"switch_lock\" used by these architectures with an oncpu\nflag (note, not a potentially slow bitflag).  This eliminates one bus\nlocked memory operation when context switching, and simplifies the\ntask_running function.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68767a0ae428801649d510d9a65bb71feed44dd1",
      "tree": "678e2daa5726acf46ffd00a337d931e08ab928f9",
      "parents": [
        "147cbb4bbe991452698f0772d8292f22825710ba"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Jun 25 14:57:20 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:42 2005 -0700"
      },
      "message": "[PATCH] sched: schedstats update for balance on fork\n\nAdd SCHEDSTAT statistics for sched-balance-fork.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "147cbb4bbe991452698f0772d8292f22825710ba",
      "tree": "cb86550d7e440e7dfbe22b0af6d2cfc991cb76cf",
      "parents": [
        "cafb20c1f9976a70d633bb1e1c8c24eab00e4e80"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Jun 25 14:57:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:42 2005 -0700"
      },
      "message": "[PATCH] sched: balance on fork\n\nReimplement the balance on exec balancing to be sched-domains aware.  Use this\nto also do balance on fork balancing.  Make x86_64 do balance on fork over the\nNUMA domain.\n\nThe problem that the non sched domains aware blancing became apparent on dual\ncore, multi socket opterons.  What we want is for the new tasks to be sent to\na different socket, but more often than not, we would first load up our\nsibling core, or fill two cores of a single remote socket before selecting a\nnew one.\n\nThis gives large improvements to STREAM on such systems.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7897986bad8f6cd50d6149345aca7f6480f49464",
      "tree": "10a5e08e004ae685aaab6823a3774803455b7704",
      "parents": [
        "99b61ccf0bf0e9a85823d39a5db6a1519caeb13d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Jun 25 14:57:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:41 2005 -0700"
      },
      "message": "[PATCH] sched: balance timers\n\nDo CPU load averaging over a number of different intervals.  Allow each\ninterval to be chosen by sending a parameter to source_load and target_load.\n0 is instantaneous, idx \u003e 0 returns a decaying average with the most recent\nsample weighted at 2^(idx-1).  To a maximum of 3 (could be easily increased).\n\nSo generally a higher number will result in more conservative balancing.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e30148c3d524a9c1c63ca28261bc24c457eb07a",
      "tree": "a2fcc46cc11fe871ad976c07476d934a07313576",
      "parents": [
        "8589b4e00e352f983259140f25a262d973be6bc5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jun 23 22:00:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:19 2005 -0700"
      },
      "message": "[PATCH] Keys: Make request-key create an authorisation key\n\nThe attached patch makes the following changes:\n\n (1) There\u0027s a new special key type called \".request_key_auth\".\n\n     This is an authorisation key for when one process requests a key and\n     another process is started to construct it. This type of key cannot be\n     created by the user; nor can it be requested by kernel services.\n\n     Authorisation keys hold two references:\n\n     (a) Each refers to a key being constructed. When the key being\n     \t constructed is instantiated the authorisation key is revoked,\n     \t rendering it of no further use.\n\n     (b) The \"authorising process\". This is either:\n\n     \t (i) the process that called request_key(), or:\n\n     \t (ii) if the process that called request_key() itself had an\n     \t      authorisation key in its session keyring, then the authorising\n     \t      process referred to by that authorisation key will also be\n     \t      referred to by the new authorisation key.\n\n\t This means that the process that initiated a chain of key requests\n\t will authorise the lot of them, and will, by default, wind up with\n\t the keys obtained from them in its keyrings.\n\n (2) request_key() creates an authorisation key which is then passed to\n     /sbin/request-key in as part of a new session keyring.\n\n (3) When request_key() is searching for a key to hand back to the caller, if\n     it comes across an authorisation key in the session keyring of the\n     calling process, it will also search the keyrings of the process\n     specified therein and it will use the specified process\u0027s credentials\n     (fsuid, fsgid, groups) to do that rather than the calling process\u0027s\n     credentials.\n\n     This allows a process started by /sbin/request-key to find keys belonging\n     to the authorising process.\n\n (4) A key can be read, even if the process executing KEYCTL_READ doesn\u0027t have\n     direct read or search permission if that key is contained within the\n     keyrings of a process specified by an authorisation key found within the\n     calling process\u0027s session keyring, and is searchable using the\n     credentials of the authorising process.\n\n     This allows a process started by /sbin/request-key to read keys belonging\n     to the authorising process.\n\n (5) The magic KEY_SPEC_*_KEYRING key IDs when passed to KEYCTL_INSTANTIATE or\n     KEYCTL_NEGATE will specify a keyring of the authorising process, rather\n     than the process doing the instantiation.\n\n (6) One of the process keyrings can be nominated as the default to which\n     request_key() should attach new keys if not otherwise specified. This is\n     done with KEYCTL_SET_REQKEY_KEYRING and one of the KEY_REQKEY_DEFL_*\n     constants. The current setting can also be read using this call.\n\n (7) request_key() is partially interruptible. If it is waiting for another\n     process to finish constructing a key, it can be interrupted. This permits\n     a request-key cycle to be broken without recourse to rebooting.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-Off-By: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6e711448137ca3301512cec41a2c2ce852b3d0a",
      "tree": "f0765ebd90fdbdf270c05fcd7f3d32b24ba56681",
      "parents": [
        "8b0914ea7475615c7c8965c1ac8fe4069270f25c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 23 00:09:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] setuid core dump\n\nAdd a new `suid_dumpable\u0027 sysctl:\n\nThis value can be used to query and set the core dump mode for setuid\nor otherwise protected/tainted binaries. The modes are\n\n0 - (default) - traditional behaviour.  Any process which has changed\n    privilege levels or is execute only will not be dumped\n\n1 - (debug) - all processes dump core when possible.  The core dump is\n    owned by the current user and no security is applied.  This is intended\n    for system debugging situations only.  Ptrace is unchecked.\n\n2 - (suidsafe) - any binary which normally would not be dumped is dumped\n    readable by root only.  This allows the end user to remove such a dump but\n    not access it directly.  For security reasons core dumps in this mode will\n    not overwrite one another or other files.  This mode is appropriate when\n    adminstrators are attempting to debug problems in a normal environment.\n\n(akpm:\n\n\u003e \u003e +EXPORT_SYMBOL(suid_dumpable);\n\u003e\n\u003e EXPORT_SYMBOL_GPL?\n\nNo problem to me.\n\n\u003e \u003e  \tif (current-\u003eeuid \u003d\u003d current-\u003euid \u0026\u0026 current-\u003eegid \u003d\u003d current-\u003egid)\n\u003e \u003e  \t\tcurrent-\u003emm-\u003edumpable \u003d 1;\n\u003e\n\u003e Should this be SUID_DUMP_USER?\n\nActually the feedback I had from last time was that the SUID_ defines\nshould go because its clearer to follow the numbers. They can go\neverywhere (and there are lots of places where dumpable is tested/used\nas a bool in untouched code)\n\n\u003e Maybe this should be renamed to `dump_policy\u0027 or something.  Doing that\n\u003e would help us catch any code which isn\u0027t using the #defines, too.\n\nFair comment. The patch was designed to be easy to maintain for Red Hat\nrather than for merging. Changing that field would create a gigantic\ndiff because it is used all over the place.\n\n)\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": "1363c3cd8603a913a27e2995dccbd70d5312d8e6",
      "tree": "405e7fc1ef44678f3ca0a54c536d0457e6e80f45",
      "parents": [
        "e7c8d5c9955a4d2e88e36b640563f5d6d5aba48a"
      ],
      "author": {
        "name": "Wolfgang Wander",
        "email": "wwc@rentec.com",
        "time": "Tue Jun 21 17:14:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:16 2005 -0700"
      },
      "message": "[PATCH] Avoiding mmap fragmentation\n\nIngo recently introduced a great speedup for allocating new mmaps using the\nfree_area_cache pointer which boosts the specweb SSL benchmark by 4-5% and\ncauses huge performance increases in thread creation.\n\nThe downside of this patch is that it does lead to fragmentation in the\nmmap-ed areas (visible via /proc/self/maps), such that some applications\nthat work fine under 2.4 kernels quickly run out of memory on any 2.6\nkernel.\n\nThe problem is twofold:\n\n  1) the free_area_cache is used to continue a search for memory where\n     the last search ended.  Before the change new areas were always\n     searched from the base address on.\n\n     So now new small areas are cluttering holes of all sizes\n     throughout the whole mmap-able region whereas before small holes\n     tended to close holes near the base leaving holes far from the base\n     large and available for larger requests.\n\n  2) the free_area_cache also is set to the location of the last\n     munmap-ed area so in scenarios where we allocate e.g.  five regions of\n     1K each, then free regions 4 2 3 in this order the next request for 1K\n     will be placed in the position of the old region 3, whereas before we\n     appended it to the still active region 1, placing it at the location\n     of the old region 2.  Before we had 1 free region of 2K, now we only\n     get two free regions of 1K -\u003e fragmentation.\n\nThe patch addresses thes issues by introducing yet another cache descriptor\ncached_hole_size that contains the largest known hole size below the\ncurrent free_area_cache.  If a new request comes in the size is compared\nagainst the cached_hole_size and if the request can be filled with a hole\nbelow free_area_cache the search is started from the base instead.\n\nThe results look promising: Whereas 2.6.12-rc4 fragments quickly and my\n(earlier posted) leakme.c test program terminates after 50000+ iterations\nwith 96 distinct and fragmented maps in /proc/self/maps it performs nicely\n(as expected) with thread creation, Ingo\u0027s test_str02 with 20000 threads\nrequires 0.7s system time.\n\nTaking out Ingo\u0027s patch (un-patch available per request) by basically\ndeleting all mentions of free_area_cache from the kernel and starting the\nsearch for new memory always at the respective bases we observe: leakme\nterminates successfully with 11 distinctive hardly fragmented areas in\n/proc/self/maps but thread creating is gringdingly slow: 30+s(!) system\ntime for Ingo\u0027s test_str02 with 20000 threads.\n\nNow - drumroll ;-) the appended patch works fine with leakme: it ends with\nonly 7 distinct areas in /proc/self/maps and also thread creation seems\nsufficiently fast with 0.71s for 20000 threads.\n\nSigned-off-by: Wolfgang Wander \u003cwwc@rentec.com\u003e\nCredit-to: \"Richard Purdie\" \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e (partly)\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3677209239ed71d2654e73eecfab1dbec2af11a9",
      "tree": "125d9d7553c5f6dc6ad030e4c829a5bf71ab3ef5",
      "parents": [
        "291c4a75ce7632ee5c565359fb875ba0597f76be"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Thu May 05 16:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:48 2005 -0700"
      },
      "message": "[PATCH] comments on locking of task-\u003ecomm\n\nAdd some comments about task-\u003ecomm, to explain what it is near its definition\nand provide some important pointers to its uses.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "408b664a7d394a5e4315fbd14aca49b042cb2b08",
      "tree": "bd3ebe72229227962d157e46e61ed65b78d6e28b",
      "parents": [
        "c31403a1f5a761599df38bcc2d6ba94f24320c33"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun May 01 08:59:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:29 2005 -0700"
      },
      "message": "[PATCH] make lots of things static\n\nAnother large rollup of various patches from Adrian which make things static\nwhere they were needlessly exported.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e43379f10b42194b8a6e1de342cfb44463c0f6da",
      "tree": "bf6463200dc7e14f266b7f12807c7cbfbb6700c2",
      "parents": [
        "9fc1427a01a9df3605e219c6de0c59c4639209a1"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun May 01 08:59:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:00 2005 -0700"
      },
      "message": "[PATCH] nice and rt-prio rlimits\n\nAdd a pair of rlimits for allowing non-root tasks to raise nice and rt\npriorities. Defaults to traditional behavior. Originally written by\nChris Wright.\n\nThe patch implements a simple rlimit ceiling for the RT (and nice) priorities\na task can set.  The rlimit defaults to 0, meaning no change in behavior by\ndefault.  A value of 50 means RT priority levels 1-50 are allowed.  A value of\n100 means all 99 privilege levels from 1 to 99 are allowed.  CAP_SYS_NICE is\nblanket permission.\n\n(akpm: see http://www.uwsg.iu.edu/hypermail/linux/kernel/0503.1/1921.html for\ntips on integrating this with PAM).\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-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": "6c46ada700568897165409e618ed584683838b49",
      "tree": "3e58ca796d70c7867bb2acd6fbe239f671decd78",
      "parents": [
        "2f4cfacecd522849dac254f87273525eeca33d1d"
      ],
      "author": {
        "name": "Coywolf Qi Hunt",
        "email": "coywolf@lovecn.org",
        "time": "Sat Apr 16 15:26:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:26:01 2005 -0700"
      },
      "message": "[PATCH] reparent_to_init cleanup\n\nThis patch hides reparent_to_init().  reparent_to_init() should only be\ncalled by daemonize().\n\nSigned-off-by: Coywolf Qi Hunt \u003ccoywolf@lovecn.org\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"
    }
  ]
}
