)]}'
{
  "log": [
    {
      "commit": "943eae03143790c71cf42fe13529f1b74ceb0266",
      "tree": "64b815091689324d1124ccafd7ab80274033bd2f",
      "parents": [
        "9d86b7d37018c917837477dd4501d44bf8f3f98c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Oct 29 07:32:07 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 10:35:07 2005 -0700"
      },
      "message": "[PATCH] missing exports of do_settimeofday() variants\n\nfrv, sh64, ia64 and sparc64 do not have do_settimeofday() exported (the\nlast two are using variant in kernel/time.c).  Exports added to match\nthe rest of architectures.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d027de54c77d38eedc9b331c7a2a39807d34691",
      "tree": "cfa290c7ca6b63f33b2b4624695596f38bcda2fd",
      "parents": [
        "47e627ce83b6df9f4bb8e4b0a4dde1c5d7a4c929"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 29 19:37:40 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 10:28:13 2005 -0700"
      },
      "message": "[PATCH] fix -\u003esignal-\u003elive leak in copy_process()\n\nexit_signal() (called from copy_process\u0027s error path) should decrement\n-\u003esignal-\u003elive, otherwise forking process will miss \u0027group_dead\u0027 in\ndo_exit().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9796fdd829da626374458e8706daedcc0e432ddd",
      "tree": "a0b4af7f45267cdcdfb677c2167906c6ef981b76",
      "parents": [
        "55016f10e31bb15b85d8c500f979dfdceb37d548"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:22:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:49 2005 -0700"
      },
      "message": "[PATCH] gfp_t: kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72ab373a5688a78cbdaf3bf96012e597d5399bb7",
      "tree": "906d4857e3cebe48649c4459acb78dca698d58c0",
      "parents": [
        "a362f463a6d316d14daed0f817e151835ce97ff7"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Oct 27 03:16:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 27 09:08:43 2005 -0700"
      },
      "message": "[PATCH] Yet more posix-cpu-timer fixes\n\nThis just makes sure that a thread\u0027s expiry times can\u0027t get reset after\nit clears them in do_exit.\n\nThis is what allowed us to re-introduce the stricter BUG_ON() check in\na362f463a6d316d14daed0f817e151835ce97ff7.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a362f463a6d316d14daed0f817e151835ce97ff7",
      "tree": "99b510438f9c88860ae17f1233cf21be24a152e3",
      "parents": [
        "7a4ed937aa44acdeb8c6ba671509dc7b54b09d3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 27 09:07:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 27 09:07:33 2005 -0700"
      },
      "message": "Revert \"remove false BUG_ON() from run_posix_cpu_timers()\"\n\nThis reverts commit 3de463c7d9d58f8cf3395268230cb20a4c15bffa.\n\nRoland has another patch that allows us to leave the BUG_ON() in place\nby just making sure that the condition it tests for really is always\ntrue.\n\nThat goes in next.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a4ed937aa44acdeb8c6ba671509dc7b54b09d3a",
      "tree": "b602abc9445b2c4a10788147c58a28fe1f4e63f7",
      "parents": [
        "e02fd44056dd8077b49b4bd92c5799a75e89cd65"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Oct 26 20:26:53 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 15:21:14 2005 -0700"
      },
      "message": "[PATCH] Fix cpu timers expiration time\n\nThere\u0027s a silly off-by-one error in the code that updates the expiration\nof posix CPU timers, causing them to not be properly updated when they\nhit exactly on their expiration time (which should be the normal case).\n\nThis causes them to then fire immediately again, and only _then_ get\nproperly updated.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70ab81c2ed3d1323e7d6805bf59cbb570dff7937",
      "tree": "7679256f81780842aa443846f4cea7524c0db37a",
      "parents": [
        "b0917bd912d3708c50e1df1b5e1648d0547108a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 11:23:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 11:23:06 2005 -0700"
      },
      "message": "posix cpu timers: fix timer ordering\n\nPointed out by Oleg Nesterov, who has been walking over the code\nforwards and backwards.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb32051532fed727de0d513a9a578b54c0b7ea5a",
      "tree": "128c1b4f00aae8a26cbfc03805a0b53c9f35e546",
      "parents": [
        "958d24df82e021704437da0789c47fcf581e4b85"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Oct 26 01:59:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 10:39:43 2005 -0700"
      },
      "message": "[PATCH] export cpu_online_map\n\nWith CONFIG_SMP\u003dn:\n\n*** Warning: \"cpu_online_map\" [drivers/firmware/dcdbas.ko] undefined!\n\ndue to set_cpus_allowed().\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a69ac4a78d8bd9e1ec478bd7297d4f047fcd44a8",
      "tree": "a56edf4f69cc01c6d4b7b3eeee3646c7ea9810df",
      "parents": [
        "ca531a0a5e01e5122f67cb6aca8fcbfc70e18e0b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 24 18:29:58 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:13:14 2005 -0700"
      },
      "message": "[PATCH] posix-timers: fix posix_cpu_timer_set() vs run_posix_cpu_timers() race\n\nThis might be harmless, but looks like a race from code inspection (I\nwas unable to trigger it).  I must admit, I don\u0027t understand why we\ncan\u0027t return TIMER_RETRY after \u0027spin_unlock(\u0026p-\u003esighand-\u003esiglock)\u0027\nwithout doing bump_cpu_timer(), but this is what original code does.\n\nposix_cpu_timer_set:\n\n\tread_lock(\u0026tasklist_lock);\n\n\tspin_lock(\u0026p-\u003esighand-\u003esiglock);\n\tlist_del_init(\u0026timer-\u003eit.cpu.entry);\n\tspin_unlock(\u0026p-\u003esighand-\u003esiglock);\n\nWe are probaly deleting the timer from run_posix_cpu_timers\u0027s \u0027firing\u0027\nlocal list_head while run_posix_cpu_timers() does list_for_each_safe.\n\nVarious bad things can happen, for example we can just delete this timer\nso that list_for_each() will not notice it and run_posix_cpu_timers()\nwill not reset \u0027-\u003efiring\u0027 flag. In that case,\n\n\t....\n\n\tif (timer-\u003eit.cpu.firing) {\n\t\tread_unlock(\u0026tasklist_lock);\n\t\ttimer-\u003eit.cpu.firing \u003d -1;\n\t\treturn TIMER_RETRY;\n\t}\n\nsys_timer_settime() goes to \u0027retry:\u0027, calls posix_cpu_timer_set() again,\nit returns TIMER_RETRY ...\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca531a0a5e01e5122f67cb6aca8fcbfc70e18e0b",
      "tree": "4dc28c012d1bb78aba82acdcd2462d17020ba77e",
      "parents": [
        "3de463c7d9d58f8cf3395268230cb20a4c15bffa"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 24 14:36:28 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:12:35 2005 -0700"
      },
      "message": "[PATCH] posix-timers: exit path cleanup\n\nNo need to rebalance when task exited\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3de463c7d9d58f8cf3395268230cb20a4c15bffa",
      "tree": "20ba1584eefb7ed75f6f8536f40e55966294cf4f",
      "parents": [
        "108150ea78003044e41150c75259447b2c0953b6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 24 14:34:03 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:12:35 2005 -0700"
      },
      "message": "[PATCH] posix-timers: remove false BUG_ON() from run_posix_cpu_timers()\n\ndo_exit() clears -\u003eit_##clock##_expires, but nothing prevents\nanother cpu to attach the timer to exiting process after that.\n\nAfter exit_notify() does \u0027write_unlock_irq(\u0026tasklist_lock)\u0027 and\nbefore do_exit() calls \u0027schedule() local timer interrupt can find\ntsk-\u003eexit_state !\u003d 0. If that state was EXIT_DEAD (or another cpu\ndoes sys_wait4) interrupted task has -\u003esignal \u003d\u003d NULL.\n\nAt this moment exiting task has no pending cpu timers, they were cleaned\nup in __exit_signal()-\u003eposix_cpu_timers_exit{,_group}(), so we can just\nreturn from irq.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "108150ea78003044e41150c75259447b2c0953b6",
      "tree": "ffe0b7e59e6ca1c8a4dad18110e485e5c72872bc",
      "parents": [
        "ba9e358fd04190a59e605c2963a15e014139a707"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 23 20:25:39 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:12:35 2005 -0700"
      },
      "message": "[PATCH] posix-timers: fix cleanup_timers() and run_posix_cpu_timers() races\n\n1. cleanup_timers() sets timer-\u003etask \u003d NULL under tasklist + -\u003esighand locks.\n   That means that this code in posix_cpu_timer_del() and posix_cpu_timer_set()\n\n   \t\tlock_timer(timer);\n\t\tif (timer-\u003etask \u003d\u003d NULL)\n\t\t\treturn;\n\t\tread_lock(tasklist);\n\t\tput_task_struct(timer-\u003etask)\n\n   is racy. With this patch timer-\u003etask modified and accounted only under\n   timer-\u003eit_lock. Sadly, this means that dead task_struct won\u0027t be freed\n   until timer deleted or armed.\n\n2. run_posix_cpu_timers() collects expired timers into local list under\n   tasklist + -\u003esighand again. That means that posix_cpu_timer_del()\n   should check timer-\u003eit.cpu.firing under these locks too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e80eda94d3eaf1d12cfc97878eff77cd679dabc9",
      "tree": "38ab17e7b9839297708a6982d661c3725d181c3a",
      "parents": [
        "d475f3f47a0427dfee483cecf9a7e9109e991423"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 10:02:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 10:02:50 2005 -0700"
      },
      "message": "Posix timers: limit number of timers firing at once\n\nBursty timers aren\u0027t good for anybody, very much including latency for\nother programs when we trigger lots of timers in interrupt context.  So\nset a random limit, after which we\u0027ll handle the rest on the next timer\ntick.\n\nNoted by Oleg Nesterov \u003coleg@tv-sign.ru\u003e\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25f407f0b668f5e4ebd5d13e1fb4306ba6427ead",
      "tree": "10d8661419da9e0d6be6d22ef319582d052c4a26",
      "parents": [
        "9465bee863bc4c6cf1566c12d6f92a8133e3da5c"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Oct 21 15:03:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:38:08 2005 -0700"
      },
      "message": "[PATCH] Call exit_itimers from do_exit, not __exit_signal\n\nWhen I originally moved exit_itimers into __exit_signal, that was the only\nplace where we could reliably know it was the last thread in the group\ndying, without races.  Since then we\u0027ve gotten the signal_struct.live\ncounter, and do_exit can reliably do group-wide cleanup work.\n\nThis patch moves the call to do_exit, where it\u0027s made without locks.  This\navoids the deadlock issues that the old __exit_signal code\u0027s comment talks\nabout, and the one that Oleg found recently with process CPU timers.\n\n[ This replaces e03d13e985d48ac4885382c9e3b1510c78bd047f, which is why\n  it was just reverted. ]\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9465bee863bc4c6cf1566c12d6f92a8133e3da5c",
      "tree": "339f5d3f7554afe2226eb6bdf9fa63851ae73311",
      "parents": [
        "0213df74315bbab9ccaa73146f3e11972ea6de46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:36:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:36:00 2005 -0700"
      },
      "message": "Revert \"Fix cpu timers exit deadlock and races\"\n\nRevert commit e03d13e985d48ac4885382c9e3b1510c78bd047f, to be replaced\nby a much nicer fix from Roland.\n"
    },
    {
      "commit": "d1209d049bbc3df66650f8417637be4f7b57b604",
      "tree": "0712622c596cd3ca93234e8eca661240b5fa042b",
      "parents": [
        "f9b25fabfddf142b5af8268692701d386cf37e4f"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Oct 19 21:23:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:04:31 2005 -0700"
      },
      "message": "[PATCH] Threads shouldn\u0027t inherit PF_NOFREEZE\n\nThe PF_NOFREEZE process flag should not be inherited when a thread is\nforked.  This patch (as585) removes the flag from the child.\n\nThis problem is starting to show up more and more as drivers turn to the\nkthread API instead of using kernel_thread().  As a result, their kernel\nthreads are now children of the kthread worker instead of modprobe, and\nthey inherit the PF_NOFREEZE flag.  This can cause problems during system\nsuspend; the kernel threads are not getting frozen as they ought to be.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e03d13e985d48ac4885382c9e3b1510c78bd047f",
      "tree": "04a124c1759f4b16e21fd04031ee9677fab58021",
      "parents": [
        "3359b54c8c07338f3a863d1109b42eebccdcf379"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Oct 19 22:21:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:02:01 2005 -0700"
      },
      "message": "[PATCH] Fix cpu timers exit deadlock and races\n\nOleg Nesterov reported an SMP deadlock.  If there is a running timer\ntracking a different process\u0027s CPU time clock when the process owning\nthe timer exits, we deadlock on tasklist_lock in posix_cpu_timer_del via\nexit_itimers.\n\nThat code was using tasklist_lock to check for a race with __exit_signal\nbeing called on the timer-target task and clearing its -\u003esignal.\nHowever, there is actually no such race.  __exit_signal will have called\nposix_cpu_timers_exit and posix_cpu_timers_exit_group before it does\nthat.  Those will clear those k_itimer\u0027s association with the dying\ntask, so posix_cpu_timer_del will return early and never reach the code\nin question.\n\nIn addition, posix_cpu_timer_del called from exit_itimers during execve\nor directly from timer_delete in the process owning the timer can race\nwith an exiting timer-target task to cause a double put on timer-target\ntask struct.  Make sure we always access cpu_timers lists with sighand\nlock held.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ee832dbc6770135ec8d63296af0a4374557bb79",
      "tree": "80ffdc157100df18f1c18d39f5036a9b798f2c06",
      "parents": [
        "cc675230a9ca17010694bc8bd3c69ca9adf2efef"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Oct 17 20:01:21 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 15:27:58 2005 -0700"
      },
      "message": "[PATCH] rcu: keep rcu callback event counter\n\nThis makes call_rcu() keep track of how many events there are on the RCU\nlist, and cause a reschedule event when the list gets too long.\n\nThis helps keep RCU event lists down.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47d6b08334a43fafa61a587f721fa21ef65d81be",
      "tree": "57e9082d0011a4ada210878be2b90c2ede14451a",
      "parents": [
        "6ce969171d5187f7621be68c0ebbc7fb02ec53f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 17 18:49:42 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 15:00:00 2005 -0700"
      },
      "message": "[PATCH] posix-timers: fix task accounting\n\nMake sure we release the task struct properly when releasing pending\ntimers.\n\nrelease_task() does write_lock_irq(\u0026tasklist_lock), so it can\u0027t race\nwith run_posix_cpu_timers() on any cpu.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2cc78eb52bc1ae89f0a4fa5a00eb998dffde4a9f",
      "tree": "27422cfcf8f403e5aa25e98148c225dbedb027c5",
      "parents": [
        "de21eb63add932c61e018d20a760dcaed8c3e40c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 09:10:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 09:10:15 2005 -0700"
      },
      "message": "Increase default RCU batching sharply\n\nDipankar made RCU limit the batch size to improve latency, but that\napproach is unworkable: it can cause the RCU queues to grow without\nbounds, since the batch limiter ended up limiting the callbacks.\n\nSo make the limit much higher, and start planning on instead limiting\nthe batch size by doing RCU callbacks more often if the queue looks like\nit might be growing too long.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c6ecf7ed3131961e5aeedb0efd217afa0808798f",
      "tree": "e10117b6ad2149dd54eafeafeb1bb297b7d4438d",
      "parents": [
        "65d406ace3b44e042807d3f9a2e71088818e80f2"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Oct 14 15:59:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 14 17:10:12 2005 -0700"
      },
      "message": "[PATCH] Add missing export of getnstimeofday()\n\nAdds the missing EXPORT_SYMBOL_GPL for getnstimeofday() when\nCONFIG_TIME_INTERPOLATION isn\u0027t set.  Needed by drivers/char/mmtimer.c\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\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": "3dd083255ddcfa87751fa8e32f61a9547a15a541",
      "tree": "9767ee9d882e57037d8423ea06205f6f0139bfea",
      "parents": [
        "52a2d3e45e06012a662f627177729d3196ba8903"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 09 21:19:40 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 08:36:46 2005 -0700"
      },
      "message": "[PATCH] x86_64: Set up safe page tables during resume\n\nThe following patch makes swsusp avoid the possible temporary corruption\nof page translation tables during resume on x86-64.  This is achieved by\ncreating a copy of the relevant page tables that will not be modified by\nswsusp and can be safely used by it on resume.\n\nThe problem is that during resume on x86-64 swsusp may temporarily\ncorrupt the page tables used for the direct mapping of RAM.  If that\nhappens, a page fault occurs and cannot be handled properly, which leads\nto the solid hang of the affected system.  This leads to the loss of the\nsystem\u0027s state from before suspend and may result in the loss of data or\nthe corruption of filesystems, so it is a serious issue.  Also, it\nappears to happen quite often (for me, as often as 50% of the time).\n\nThe problem is related to the fact that (at least) one of the PMD\nentries used in the direct memory mapping (starting at PAGE_OFFSET)\npoints to a page table the physical address of which is much greater\nthan the physical address of the PMD entry itself.  Moreover,\nunfortunately, the physical address of the page table before suspend\n(i.e.  the one stored in the suspend image) happens to be different to\nthe physical address of the corresponding page table used during resume\n(i.e.  the one that is valid right before swsusp_arch_resume() in\narch/x86_64/kernel/suspend_asm.S is executed).  Thus while the image is\nrestored, the \"offending\" PMD entry gets overwritten, so it does not\npoint to the right physical address any more (i.e.  there\u0027s no page\ntable at the address pointed to by it, because it points to the address\nthe page table has been at during suspend).  Consequently, if the PMD\nentry is used later on, and it _is_ used in the process of copying the\nimage pages, a page fault occurs, but it cannot be handled in the normal\nway and the system hangs.\n\nIn principle we can call create_resume_mapping() from\nswsusp_arch_resume() (ie.  from suspend_asm.S), but then the memory\nallocations in create_resume_mapping(), resume_pud_mapping(), and\nresume_pmd_mapping() must be made carefully so that we use _only_\nNosaveFree pages in them (the other pages are overwritten by the loop in\nswsusp_arch_resume()).  Additionally, we are in atomic context at that\ntime, so we cannot use GFP_KERNEL.  Moreover, if one of the allocations\nfails, we should free all of the allocated pages, so we need to trace\nthem somehow.\n\nAll of this is done in the appended patch, except that the functions\npopulating the page tables are located in arch/x86_64/kernel/suspend.c\nrather than in init.c.  It may be done in a more elegan way in the\nfuture, with the help of some swsusp patches that are in the works now.\n\n[AK: move some externs into headers, renamed a function]\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "788e05a67c343fa22f2ae1d3ca264e7f15c25eaf",
      "tree": "4fa2f7e11cc757160ae5f492fdbe0da72d30cf26",
      "parents": [
        "829841146878e082613a49581ae252c071057c23"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Oct 07 17:46:19 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 14:53:31 2005 -0700"
      },
      "message": "[PATCH] fix do_coredump() vs SIGSTOP race\n\nLet\u0027s suppose we have 2 threads in thread group:\n\tA - does coredump\n\tB - has pending SIGSTOP\n\nthread A\t\t\t\t\t\tthread B\n\ndo_coredump:\t\t\t\t\t\tget_signal_to_deliver:\n\n  lock(-\u003esighand)\n  -\u003esignal-\u003eflags \u003d SIGNAL_GROUP_EXIT\n  unlock(-\u003esighand)\n\n\t\t\t\t\t\t\tlock(-\u003esighand)\n\t\t\t\t\t\t\tsignr \u003d dequeue_signal()\n\t\t\t\t\t\t\t\t-\u003esignal-\u003eflags |\u003d SIGNAL_STOP_DEQUEUED\n\t\t\t\t\t\t\t\treturn SIGSTOP;\n\n\t\t\t\t\t\t\tdo_signal_stop:\n\t\t\t\t\t\t\t    unlock(-\u003esighand)\n\n  coredump_wait:\n\n      zap_threads:\n          lock(tasklist_lock)\n          send SIGKILL to B\n              // signal_wake_up() does nothing\n          unlock(tasklist_lock)\n\n\t\t\t\t\t\t\t    lock(tasklist_lock)\n\t\t\t\t\t\t\t    lock(-\u003esighand)\n\t\t\t\t\t\t\t    re-check sig-\u003eflags \u0026 SIGNAL_STOP_DEQUEUED, yes\n\t\t\t\t\t\t\t    set_current_state(TASK_STOPPED);\n\t\t\t\t\t\t\t    finish_stop:\n\t\t\t\t\t\t\t        schedule();\n\t\t\t\t\t\t\t            // -\u003estate \u003d\u003d TASK_STOPPED\n\n      wait_for_completion(\u0026startup_done)\n         // waits for complete() from B,\n         // -\u003estate \u003d\u003d TASK_UNINTERRUPTIBLE\n\nWe can\u0027t wake up \u0027B\u0027 in any way:\n\n\tSIGCONT will be ignored because handle_stop_signal() sees\n\t-\u003esignal-\u003eflags \u0026 SIGNAL_GROUP_EXIT.\n\n\tsys_kill(SIGKILL)-\u003e__group_complete_signal() will choose\n\tuninterruptible \u0027A\u0027, so it can\u0027t help.\n\n\tsys_tkill(B, SIGKILL) will be ignored by specific_send_sig_info()\n\tbecause B already has pending SIGKILL.\n\nThis scenario is not possbile if \u0027A\u0027 does do_group_exit(), because\nit sets sig-\u003eflags \u003d SIGNAL_GROUP_EXIT and delivers SIGKILL to\nsubthreads atomically, holding both tasklist_lock and sighand-\u003elock.\nThat means that do_signal_stop() will notice !SIGNAL_STOP_DEQUEUED\nafter re-locking -\u003esighand. And it is not possible to any other\nthread to re-add SIGNAL_STOP_DEQUEUED later, because dequeue_signal()\ncan only return SIGKILL.\n\nI think it is better to change do_coredump() to do sigaddset(SIGKILL)\nand signal_wake_up() under sighand-\u003elock, but this patch is much\nsimpler.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "14bf01bb0599c89fc7f426d20353b76e12555308",
      "tree": "4d9c164faaff5df25044b15afa235debc96091dc",
      "parents": [
        "fd2e54b35bd70d11c160ded4834e2378e915356e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 01 11:04:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 01 11:04:18 2005 -0700"
      },
      "message": "Fix inequality comparison against \"task-\u003estate\"\n\nWe should always use bitmask ops, rather than depend on some ordering of\nthe different states.  With the TASK_NONINTERACTIVE flag, the inequality\ndoesn\u0027t really work.\n\nOleg Nesterov argues (likely correctly) that this test is unnecessary in\nthe first place.  However, the minimal fix for now is to at least make\nit work in the presense of TASK_NONINTERACTIVE.  Waiting for consensus\nfrom Roland \u0026 co on potential bigger cleanups.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eacaa1f5aa4a41a48349f55abcd9258506943e76",
      "tree": "6b0e7e82f0ba4144639bb30eeb82dc8588cfd3f5",
      "parents": [
        "46d7031ecb8a8360b0022abd8014f38cc1197166"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Sep 30 03:26:43 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 30 08:42:24 2005 -0700"
      },
      "message": "[PATCH] cpuset crapectomy\n\nSwitched cpuset_common_file_read() to simple_read_from_buffer(), killed\na bunch of useless (and not quite correct - e.g.  min(size_t,ssize_t))\ncode.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5acbc5cb507e6c381b70093b1081854708e82b16",
      "tree": "504bf5b1a1079fedd424d130589a336745f803e9",
      "parents": [
        "4a8342d233a39ee582e9f7260e12d2f5fd194a05"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Sep 29 14:54:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 29 15:20:47 2005 -0700"
      },
      "message": "[PATCH] Fix task state testing properly in do_signal_stop()\n\nAny tests using \u003c TASK_STOPPED or the like are left over from the time\nwhen the TASK_ZOMBIE and TASK_DEAD bits were in the same word, and it\nserved to check for \"stopped or dead\".  I think this one in\ndo_signal_stop is the only such case.  It has been buggy ever since\nexit_state was separated, and isn\u0027t testing the exit_state value.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5134fc15b643dc36eb9aa77e4318b886844a9ac5",
      "tree": "170339651303da0bb530c407300f09d3cd39caa2",
      "parents": [
        "2dd3c1df95fb29e9227f16ccd7d786d129e2b34d"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Sep 28 06:42:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:58:51 2005 -0700"
      },
      "message": "[PATCH] cpuset read past eof memory leak fix\n\nDon\u0027t leak a page of memory if user reads a cpuset file past eof.\n\nSigned-off-by: KUROSAWA Takahiro \u003ckurosawa@valinux.co.jp\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f7347c20c410c300be0db4c132945fd02e54110",
      "tree": "8f8a059eaed60c6d4f98a62f7dde447d4a76b9e3",
      "parents": [
        "f65a4d10c8a4eb9f919cf416e5dcd720b7d20f50"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:45:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:41 2005 -0700"
      },
      "message": "[PATCH] swsusp: avoid problems if there are too many pages to save\n\nThe following patch makes swsusp avoid problems during resume if there are\ntoo many pages to save on suspend.  It adds a constant that allows us to\nverify if we are going to save too many pages and implements the check\n(this is done as early as we can tell that the check will trigger, which is\nin swsusp_alloc()).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f36462f078403c1859a7e58177b28e01b3a179e4",
      "tree": "48cc5b800e8fb6701a18135e015ebe57b4f1be60",
      "parents": [
        "e3306dd5f7eb2e699f36a4a313fca4b48b18d5e1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Sep 27 21:45:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:41 2005 -0700"
      },
      "message": "[PATCH] Ignore trailing whitespace on kernel parameters correctly\n\nDave Jones says:\n\n... if the modprobe.conf has trailing whitespace, modules fail to load\nwith the following helpful message..\n\n\tsnd_intel8x0: Unknown parameter `\u0027\n\nPrevious version truncated last argument.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2d613799af915da1fd78463ba8ec5086a0d6f92",
      "tree": "dba02c1108bd9e101ce4986c458a2fa2a400eb56",
      "parents": [
        "254b54771cc4c00002f796be65d2885191dca9dc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:45:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:40 2005 -0700"
      },
      "message": "[PATCH] swsusp: prevent possible memory leak\n\nPrevent swsusp from leaking some memory in case of an error in\nread_pagedir().  It also prevents the BUG_ON() from triggering if there\u0027s\nan error while reading swap.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "254b54771cc4c00002f796be65d2885191dca9dc",
      "tree": "bb9503e93d40da3f5a19aa2db45f3e31338e5a63",
      "parents": [
        "249a6771afcdfaca0ac178f63343aff2c4dc2853"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:45:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:40 2005 -0700"
      },
      "message": "[PATCH] swsusp: remove wrong code from data_free\n\nThe following patch removes some wrong code from the data_free() function\nin swsusp.\n\nThis function could only be called if there\u0027s an error while writing the\nsuspend image to swap, so it is not triggered easily.  However, if\ntriggered, it would probably corrupt some memory.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "188a1eafa03aaa5e5fe6f53e637e704cd2c31c7c",
      "tree": "33d9480c792724c10e4e6fb681fc69c477cf1ff0",
      "parents": [
        "ede1327ea4ca8019ec6df24b3e837def091c26b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:22:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:22:21 2005 -0700"
      },
      "message": "Make sure SIGKILL gets proper respect\n\nBhavesh P. Davda \u003cbhavesh@avaya.com\u003e noticed that SIGKILL wouldn\u0027t\nproperly kill a process under just the right cicumstances: a stopped\ntask that already had another signal queued would get the SIGKILL\nqueued onto the shared queue, and there it would remain until SIGCONT.\n\nThis simplifies the signal acceptance logic, and fixes the bug in the\nprocess.\n\nLosely based on an earlier patch by Bhavesh.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8686bcd0a5f5e3f599ed9f1028ec9e449e7b87e3",
      "tree": "d8622e5819108fb4d90ea3cc0bbd3b1cc04d3a3d",
      "parents": [
        "eafb42707b21beb42bba4eae7b742f837ee9d2e0"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Thu Sep 22 21:44:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:36 2005 -0700"
      },
      "message": "[PATCH] swsusp: fix comments\n\nFix comments in swsusp.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "57487f4376e16558ccbe45a5b41d8cb5192309a4",
      "tree": "0f2712787db8a8eb7021ccac41deef40d6890f41",
      "parents": [
        "4c87b74c72d42f7272aa4bf8f17c73bb53774eee"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 22 21:44:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:35 2005 -0700"
      },
      "message": "[PATCH] swsusp: do not trigger BUG_ON() if there is not enough memory\n\nThe following patch makes swsusp avoid triggering the BUG_ON() in\nswsusp_suspend() if there is not enough memory for suspend.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "720b9429e8f41f7c4ee9df293403650905042035",
      "tree": "b9ad4fecd9cfeec716fd0a7746c6adaf12616ac5",
      "parents": [
        "244bc050d5c9431682b7d834aff92e663fe88bb2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Thu Sep 22 21:43:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:34 2005 -0700"
      },
      "message": "[PATCH] SOFTWARE_SUSPEND needs HOTPLUG_CPU on SMP\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88d10bbaaec38856f913313b6c0858d9e9b7a066",
      "tree": "0d38947da1e0d72d00ae35e64b25f7d1c31d1556",
      "parents": [
        "e4c94330e3395ae87451bded2840a25d04f27902"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Sep 22 21:43:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:33 2005 -0700"
      },
      "message": "[PATCH] suspend: cleanup calling of power off methods.\n\nIn the lead up to 2.6.13 I fixed a large number of reboot problems by\nmaking the calling conventions consistent.  Despite checking and double\nchecking my work it appears I missed an obvious one.\n\nThe S4 suspend code for PM_DISK_PLATFORM was also calling device_shutdown\nwithout setting system_state, and was not calling the appropriate\nreboot_notifier.\n\nThis patch fixes the bug by replacing the call of device_suspend with\nkernel_poweroff_prepare.\n\nVarious forms of this failure have been fixed and tracked for a while.\n\nThanks for tracking this down go to: Alexey Starikovskiy, Meelis Roos\n\u003cmroos@linux.ee\u003e, Nigel Cunningham \u003cncunningham@cyclades.com\u003e, Pierre\nOssman \u003cdrzeus-list@drzeus.cx\u003e\n\nHistory of this bug is at:\nhttp://bugme.osdl.org/show_bug.cgi?id\u003d4320\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4c94330e3395ae87451bded2840a25d04f27902",
      "tree": "860c6a1070492cb2fa8cc5847a366b1841f8c6a5",
      "parents": [
        "0678e5feaab8b359b18858e8532bb6017edb112b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Sep 22 21:43:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:33 2005 -0700"
      },
      "message": "[PATCH] reboot: comment and factor the main reboot functions\n\nIn the lead up to 2.6.13 I fixed a large number of reboot problems by\nmaking the calling conventions consistent.  Despite checking and double\nchecking my work it appears I missed an obvious one.\n\nThis first patch simply refactors the reboot routines so all of the\npreparation for various kinds of reboots are in their own functions.\nMaking it very hard to get the various kinds of reboot out of sync.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "31f6d9d628739c097964b8dbae939ea997da94a3",
      "tree": "a559531440fbf6685e68ebce5f5a26695ae7d5d9",
      "parents": [
        "66dcca062847bcd261ebb3ac96d51101f31a8630"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Sep 21 09:55:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 21 10:11:54 2005 -0700"
      },
      "message": "[PATCH] Add printk_clock()\n\nia64\u0027s sched_clock() accesses per-cpu data which isn\u0027t set up at boot time.\nHence ia64 cannot use printk timestamping, because printk() will crash in\nsched_clock().\n\nSo make printk() use printk_clock(), defaulting to sched_clock(), overrideable\nby the architecture via attribute(weak).\n\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": "4fb3a53860cee2aaaf81186c451b7da0b95b45c1",
      "tree": "db66ba7d3886644729707586aed781c445e12c16",
      "parents": [
        "af4e5a218e18ad588d60a4f9d6f8fb5db1a32587"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 16 19:28:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:50:02 2005 -0700"
      },
      "message": "[PATCH] files: fix preemption issues\n\nWith the new fdtable locking rules, you have to protect fdtable with either\n-\u003efile_lock or rcu_read_lock/unlock().  There are some places where we\naren\u0027t doing either.  This patch fixes those places.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2030c0fd3db3332378f95f479c286181e3920644",
      "tree": "3e281950e61e4659c0ca2cb04e63aa8d510013b8",
      "parents": [
        "afeda2c24e74cbddde376e06fdd82c215f9cb637"
      ],
      "author": {
        "name": "Michael Kerrisk",
        "email": "mtk-lkml@gmx.net",
        "time": "Fri Sep 16 19:28:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:50:01 2005 -0700"
      },
      "message": "[PATCH] PR_GET_DUMPABLE returns incorrect info\n\n2.6.13 incorporated Alan Cox\u0027s patch for /proc/sys/fs/suid_dumpable (one\nversion of this patch can be found here\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d109647550421014\u0026w\u003d2 ).\n\nThis patch also made corresponding changes in kernel/sys.c to change the\nprctl() PR_SET_DUMPABLE operation so that the permitted range of \u0027arg2\u0027 was\nmodified from 0..1 to 0..2.\n\nHowever, a corresponding change was not made for PR_GET_DUMPABLE: if the\ndumpable flag is non-zero, then PR_GET_DUMPABLE always returns 1, so that\nthe caller can\u0027t determine the true setting of this flag.\n\nAcked-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": "26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00",
      "tree": "8abf9b85bc5f081460f05c3e8f76328dc690f167",
      "parents": [
        "fa72e26a640e551637f91122d782d5a85d514f5b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Fri Sep 16 19:27:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:49:59 2005 -0700"
      },
      "message": "[PATCH] CPU hotplug breaks wake_up_new_task\n\nFix a problem wherein a new-born task is added to a dead CPU.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Shaohua Li \u003cshaohua.li@intel.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": "da04c035039b5288039a5bf2d340866114ae994b",
      "tree": "b4f75ccaca55c1a65980aada0440c3f096b9b3eb",
      "parents": [
        "33333373c40633cec8791a284e84e4b116522c8f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:17:59 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 09:59:04 2005 -0700"
      },
      "message": "[PATCH] Fix spinlock owner debugging\n\nfix up the runqueue lock owner only if we truly did a context-switch\nwith the runqueue lock held. Impacts ia64, mips, sparc64 and arm.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5d54e69c68c05b162a56f9914cae72afd7e6f40a",
      "tree": "c5933858c4861bc3e358559f64ef459a1f56ab75",
      "parents": [
        "63f3d1df1ad276a30b75339dd682a6e1f9d0c181",
        "b6ddc518520887a62728b0414efbf802a9dfdd55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 09:47:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 09:47:30 2005 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/dwmw2/audit-2.6 \n"
    },
    {
      "commit": "9f1583339a6f52c0c26441d39a0deff8246800f7",
      "tree": "99efa7690d22a45bf87ec80beb5e2a2d43f6b26d",
      "parents": [
        "fb911ee849756fc6c609dddded92d9207ff3fb29"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Sep 13 01:25:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:29 2005 -0700"
      },
      "message": "[PATCH] use add_taint() for setting tainted bit flags\n\nUse the add_taint() interface for setting tainted bit flags instead of\ndoing it manually.\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": "8a1c17574a01555e5d3fdf56d8d72969904c91ca",
      "tree": "9855d1048c2547ac9292c5e4c09c2a88f3b3e4fb",
      "parents": [
        "498d0c5711094b0e1fd93f5355d270ccebdec706"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Sep 13 01:25:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:29 2005 -0700"
      },
      "message": "[PATCH] schedule_timeout_[un]interruptible() speedup\n\nThese functions don\u0027t need schedule_timeout()\u0027s barrier.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f74478b5fd7263e9311cdb320923d599c73a792",
      "tree": "d61962b55cc7bae06cf872f35d8ab3ae753c70c1",
      "parents": [
        "459192c92cde49d1a2f721c90adf45d774c2dcf5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Sep 12 18:49:24 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 10:49:58 2005 -0700"
      },
      "message": "[PATCH] x86-64: Some cleanup and optimization to the processor data area.\n\n- Remove unused irqrsp field\n- Remove pda-\u003eme\n- Optimize set_softirq_pending slightly\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\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": "1df5c10a5b40d1ad747e3de3caf28764153c5c8e",
      "tree": "87cda6983653d73a3ba4d24b1c8ba257254ac26b",
      "parents": [
        "c3ff8ec31c1249d268cd11390649768a12bec1b9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 07:59:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 07:59:21 2005 -0700"
      },
      "message": "Mark ia64-specific MCA/INIT scheduler hooks as dangerous\n\n..and only enable them for ia64. The functions are only valid\nwhen the whole system has been totally stopped and no scheduler\nactivity is ongoing on any CPU, and interrupts are globally\ndisabled.\n\nIn other words, they aren\u0027t useful for anything else. So make\nsure that nobody can use them by mistake.\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": "75bcc8c5e1de78616b04ef9f317a293a7c1c163c",
      "tree": "fabdfd7fbc46baae5638b41648444d805e14eb3c",
      "parents": [
        "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] kernel: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\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": "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": "417ef531415c070926b071b75fd1c1ac4b6e2f7e",
      "tree": "e2bceb50c0d7a5e43e8a5596f237cf5b68f57d9f",
      "parents": [
        "621a4d1a823e1ec631fbfbe6e53ad036e2d2abc6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sat Sep 10 00:26:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:26 2005 -0700"
      },
      "message": "[PATCH] kernel/acct: add kerneldoc\n\nfor kernel/acct.c:\n- fix typos\n- add kerneldoc for non-static functions\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": "0c117f1b4d14380baeed9c883f765ee023da8761",
      "tree": "8bd81914e49493bdae4b04db307a48dcfc0b6316",
      "parents": [
        "fa3b6ddc3f4a8eadba52234134cdb59c28b5332d"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Sat Sep 10 00:26:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:24 2005 -0700"
      },
      "message": "[PATCH] sched: allow the load to grow upto its cpu_power\n\nDon\u0027t pull tasks from a group if that would cause the group\u0027s total load to\ndrop below its total cpu_power (ie.  cause the group to start going idle).\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "fa3b6ddc3f4a8eadba52234134cdb59c28b5332d",
      "tree": "9aa1b8211adb63bb2983be0d4ab2afdfab88e1a3",
      "parents": [
        "5927ad78ec75870b1bdfa65a10ad1300cd664d36"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Sat Sep 10 00:26:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:24 2005 -0700"
      },
      "message": "[PATCH] sched: don\u0027t kick ALB in the presence of pinned task\n\nJack Steiner brought this issue at my OLS talk.\n\nTake a scenario where two tasks are pinned to two HT threads in a physical\npackage.  Idle packages in the system will keep kicking migration_thread on\nthe busy package with out any success.\n\nWe will run into similar scenarios in the presence of CMP/NUMA.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.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": "5927ad78ec75870b1bdfa65a10ad1300cd664d36",
      "tree": "1eef750386a8bfa1e2532138a67a6d8bc8dad85b",
      "parents": [
        "5969fe0618051e8577316555a81a6e44b7b7d640"
      ],
      "author": {
        "name": "Renaud Lienhart",
        "email": "renaud.lienhart@free.fr",
        "time": "Sat Sep 10 00:26:20 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:23 2005 -0700"
      },
      "message": "[PATCH] sched: use cached variable in sys_sched_yield()\n\nIn sys_sched_yield(), we cache current-\u003earray in the \"array\" variable, thus\nthere\u0027s no need to dereference \"current\" again later.\n\nSigned-Off-By: Renaud Lienhart \u003crenaud.lienhart@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5969fe0618051e8577316555a81a6e44b7b7d640",
      "tree": "09ca92684811017901bb08d8d3a76c52022ef34d",
      "parents": [
        "e17224bf1d01b461ec02a60f5a9b7657a89bdd23"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Sep 10 00:26:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:23 2005 -0700"
      },
      "message": "[PATCH] sched: HT optimisation\n\nIf an idle sibling of an HT queue encounters a busy sibling, then make\nhigher level load balancing of the non-idle variety.\n\nPerformance of multiprocessor HT systems with low numbers of tasks\n(generally \u003c number of virtual CPUs) can be significantly worse than the\nexact same workloads when running in non-HT mode.  The reason is largely\ndue to poor scheduling behaviour.\n\nThis patch improves the situation, making the performance gap far less\nsignificant on one problematic test case (tbench).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "e17224bf1d01b461ec02a60f5a9b7657a89bdd23",
      "tree": "30dbb20798fde88a09680e9d82bd32ad8c343692",
      "parents": [
        "d6d5cfaf4551aa7713ca6ab73bb77e832602204b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Sep 10 00:26:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:23 2005 -0700"
      },
      "message": "[PATCH] sched: less locking\n\nDuring periodic load balancing, don\u0027t hold this runqueue\u0027s lock while\nscanning remote runqueues, which can take a non trivial amount of time\nespecially on very large systems.\n\nHolding the runqueue lock will only help to stabilise -\u003enr_running, however\nthis doesn\u0027t do much to help because tasks being woken will simply get held\nup on the runqueue lock, so -\u003enr_running would not provide a really\naccurate picture of runqueue load in that case anyway.\n\nWhat\u0027s more, -\u003enr_running (and possibly the cpu_load averages) of remote\nrunqueues won\u0027t be stable anyway, so load balancing is always an inexact\noperation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "d6d5cfaf4551aa7713ca6ab73bb77e832602204b",
      "tree": "2741ff061bca597f26df340feec0a6ee58820e64",
      "parents": [
        "67f9a619e7460b7d07284a9d0745727a77d3ade6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Sep 10 00:26:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:23 2005 -0700"
      },
      "message": "[PATCH] sched: less newidle locking\n\nSimilarly to the earlier change in load_balance, only lock the runqueue in\nload_balance_newidle if the busiest queue found has a nr_running \u003e 1.  This\nwill reduce frequency of expensive remote runqueue lock aquisitions in the\nschedule() path on some workloads.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "67f9a619e7460b7d07284a9d0745727a77d3ade6",
      "tree": "d76bcca7ad5e9430150ebcdb391180bf2e0878e8",
      "parents": [
        "d79fc0fc6645b0cf5cd980da76942ca6d6300fa4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:26:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:23 2005 -0700"
      },
      "message": "[PATCH] sched: fix SMT scheduler latency bug\n\nWilliam Weston reported unusually high scheduling latencies on his x86 HT\nbox, on the -RT kernel.  I managed to reproduce it on my HT box and the\nlatency tracer shows the incident in action:\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n      du-2803  3Dnh2    0us : __trace_start_sched_wakeup (try_to_wake_up)\n        ..............................................................\n        ... we are running on CPU#3, PID 2778 gets woken to CPU#1: ...\n        ..............................................................\n      du-2803  3Dnh2    0us : __trace_start_sched_wakeup \u003c\u003c...\u003e-2778\u003e (73 1)\n      du-2803  3Dnh2    0us : _raw_spin_unlock (try_to_wake_up)\n        ................................................\n        ... still on CPU#3, we send an IPI to CPU#1: ...\n        ................................................\n      du-2803  3Dnh1    0us : resched_task (try_to_wake_up)\n      du-2803  3Dnh1    1us : smp_send_reschedule (try_to_wake_up)\n      du-2803  3Dnh1    1us : send_IPI_mask_bitmask (smp_send_reschedule)\n      du-2803  3Dnh1    2us : _raw_spin_unlock_irqrestore (try_to_wake_up)\n        ...............................................\n        ... 1 usec later, the IPI arrives on CPU#1: ...\n        ...............................................\n  \u003cidle\u003e-0     1Dnh.    2us : smp_reschedule_interrupt (c0100c5a 0 0)\n\nSo far so good, this is the normal wakeup/preemption mechanism.  But here\ncomes the scheduler anomaly on CPU#1:\n\n  \u003cidle\u003e-0     1Dnh.    2us : preempt_schedule_irq (need_resched)\n  \u003cidle\u003e-0     1Dnh.    2us : preempt_schedule_irq (need_resched)\n  \u003cidle\u003e-0     1Dnh.    3us : __schedule (preempt_schedule_irq)\n  \u003cidle\u003e-0     1Dnh.    3us : profile_hit (__schedule)\n  \u003cidle\u003e-0     1Dnh1    3us : sched_clock (__schedule)\n  \u003cidle\u003e-0     1Dnh1    4us : _raw_spin_lock_irq (__schedule)\n  \u003cidle\u003e-0     1Dnh1    4us : _raw_spin_lock_irqsave (__schedule)\n  \u003cidle\u003e-0     1Dnh2    5us : _raw_spin_unlock (__schedule)\n  \u003cidle\u003e-0     1Dnh1    5us : preempt_schedule (__schedule)\n  \u003cidle\u003e-0     1Dnh1    6us : _raw_spin_lock (__schedule)\n  \u003cidle\u003e-0     1Dnh2    6us : find_next_bit (__schedule)\n  \u003cidle\u003e-0     1Dnh2    6us : _raw_spin_lock (__schedule)\n  \u003cidle\u003e-0     1Dnh3    7us : find_next_bit (__schedule)\n  \u003cidle\u003e-0     1Dnh3    7us : find_next_bit (__schedule)\n  \u003cidle\u003e-0     1Dnh3    8us : _raw_spin_unlock (__schedule)\n  \u003cidle\u003e-0     1Dnh2    8us : preempt_schedule (__schedule)\n  \u003cidle\u003e-0     1Dnh2    8us : find_next_bit (__schedule)\n  \u003cidle\u003e-0     1Dnh2    9us : trace_stop_sched_switched (__schedule)\n  \u003cidle\u003e-0     1Dnh2    9us : _raw_spin_lock (trace_stop_sched_switched)\n  \u003cidle\u003e-0     1Dnh3   10us : trace_stop_sched_switched \u003c\u003c...\u003e-2778\u003e (73 8c)\n  \u003cidle\u003e-0     1Dnh3   10us : _raw_spin_unlock (trace_stop_sched_switched)\n  \u003cidle\u003e-0     1Dnh1   10us : _raw_spin_unlock (__schedule)\n  \u003cidle\u003e-0     1Dnh.   11us : local_irq_enable_noresched (preempt_schedule_irq)\n  \u003cidle\u003e-0     1Dnh.   11us \u003c (0)\n\nwe didnt pick up pid 2778! It only gets scheduled much later:\n\n   \u003c...\u003e-2778  1Dnh2  412us : __switch_to (__schedule)\n   \u003c...\u003e-2778  1Dnh2  413us : __schedule \u003c\u003cidle\u003e-0\u003e (8c 73)\n   \u003c...\u003e-2778  1Dnh2  413us : _raw_spin_unlock (__schedule)\n   \u003c...\u003e-2778  1Dnh1  413us : trace_stop_sched_switched (__schedule)\n   \u003c...\u003e-2778  1Dnh1  414us : _raw_spin_lock (trace_stop_sched_switched)\n   \u003c...\u003e-2778  1Dnh2  414us : trace_stop_sched_switched \u003c\u003c...\u003e-2778\u003e (73 1)\n   \u003c...\u003e-2778  1Dnh2  414us : _raw_spin_unlock (trace_stop_sched_switched)\n   \u003c...\u003e-2778  1Dnh1  415us : trace_stop_sched_switched (__schedule)\n\nthe reason for this anomaly is the following code in dependent_sleeper():\n\n                /*\n                 * If a user task with lower static priority than the\n                 * running task on the SMT sibling is trying to schedule,\n                 * delay it till there is proportionately less timeslice\n                 * left of the sibling task to prevent a lower priority\n                 * task from using an unfair proportion of the\n                 * physical cpu\u0027s resources. -ck\n                 */\n[...]\n                        if (((smt_curr-\u003etime_slice * (100 - sd-\u003eper_cpu_gain) /\n                                100) \u003e task_timeslice(p)))\n                                        ret \u003d 1;\n\nNote that in contrast to the comment above, we dont actually do the check\nbased on static priority, we do the check based on timeslices.  But\ntimeslices go up and down, and even highprio tasks can randomly have very\nlow timeslices (just before their next refill) and can thus be judged as\n\u0027lowprio\u0027 by the above piece of code.  This condition is clearly buggy.\nThe correct test is to check for static_prio _and_ to check for the\npreemption priority.  Even on different static priority levels, a\nhigher-prio interactive task should not be delayed due to a\nhigher-static-prio CPU hog.\n\nThere is a symmetric bug in the \u0027kick SMT sibling\u0027 code of this function as\nwell, which can be solved in a similar way.\n\nThe patch below (against the current scheduler queue in -mm) fixes both\nbugs.  I have build and boot-tested this on x86 SMT, and nice +20 tasks\nstill get properly throttled - so the dependent-sleeper logic is still in\naction.\n\nbtw., these bugs pessimised the SMT scheduler because the \u0027delay wakeup\u0027\nproperty was applied too liberally, so this fix is likely a throughput\nimprovement as well.\n\nI separated out a smt_slice() function to make the code easier to read.\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": "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": "95cdf3b799a481969a48d69a1a52916ad5da6694",
      "tree": "38aab4b832aaebe2e36879deaeec36e7a939590d",
      "parents": [
        "da5a5522709a030da91932d4d4c2b179a481a8c0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:26:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:22 2005 -0700"
      },
      "message": "[PATCH] sched cleanups\n\nwhitespace cleanups.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "da5a5522709a030da91932d4d4c2b179a481a8c0",
      "tree": "7e7d528dcc1cccf71215ebb5b8774a849e5a1753",
      "parents": [
        "fc38ed7531eefa332c8c69ee288487860cd6b426"
      ],
      "author": {
        "name": "M.Baris Demiray",
        "email": "baris@labristeknoloji.com",
        "time": "Sat Sep 10 00:26:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:22 2005 -0700"
      },
      "message": "[PATCH] sched: make idlest_group/cpu cpus_allowed-aware\n\nAdd relevant checks into find_idlest_group() and find_idlest_cpu() to make\nthem return only the groups that have allowed CPUs and allowed CPUs\nrespectively.\n\nSigned-off-by: M.Baris Demiray \u003cbaris@labristeknoloji.com\u003e\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": "fc38ed7531eefa332c8c69ee288487860cd6b426",
      "tree": "d358d26559cc33c5d4ef2ed2f9cef8cf2b8ed3ae",
      "parents": [
        "a7482a2e7775d163aecd8c95af7bb1b8c83890cc"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Sat Sep 10 00:26:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:22 2005 -0700"
      },
      "message": "[PATCH] sched: run SCHED_NORMAL tasks with real time tasks on SMT siblings\n\nThe hyperthread aware nice handling currently puts to sleep any non real\ntime task when a real time task is running on its sibling cpu.  This can\nlead to prolonged starvation by having the non real time task pegged to the\ncpu with load balancing not pulling that task away.\n\nCurrently we force lower priority hyperthread tasks to run a percentage of\ntime difference based on timeslice differences which is meaningless when\ncomparing real time tasks to SCHED_NORMAL tasks.  We can allow non real\ntime tasks to run with real time tasks on the sibling up to per_cpu_gain%\nif we use jiffies as a counter.\n\nCleanups and micro-optimisations to the relevant code section should make\nit more understandable as well.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\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": "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": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\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": "ab2af1f5005069321c5d130f09cce577b03f43ef",
      "tree": "73a70ba486f522cd9eeeef376ede2b5a1c1b473b",
      "parents": [
        "6e72ad2c581de121cc7e772469e2a8f6b1fd4379"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: files struct with RCU\n\nPatch to eliminate struct files_struct.file_lock spinlock on the reader side\nand use rcu refcounting rcuref_xxx api for the f_count refcounter.  The\nupdates to the fdtable are done by allocating a new fdtable structure and\nsetting files-\u003efdt to point to the new structure.  The fdtable structure is\nprotected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that\nare vmalloced, we use keventd to free them since RCU callbacks can\u0027t sleep.  A\nglobal list of fdtable to be freed is not scalable, so we use a per-cpu list.\nIf keventd is already handling the current cpu\u0027s work, we use a timer to defer\nqueueing of that work.\n\nSince the last publication, this patch has been re-written to avoid using\nexplicit memory barriers and use rcu_assign_pointer(), rcu_dereference()\npremitives instead.  This required that the fd information is kept in a\nseparate structure (fdtable) and updated atomically.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0dfb2905126e9e94edebbce8d3e05001301f52d",
      "tree": "db31f15f7e5dea0c812992c2ca87a1151507ed9c",
      "parents": [
        "8b6490e5faafb3a16ea45654fb55f9ff086f1495"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:54 2005 -0700"
      },
      "message": "[PATCH] files: rcuref APIs\n\nAdds a set of primitives to do reference counting for objects that are looked\nup without locks using RCU.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran_th@gmail.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73a358d1892a8233801e3fd54668075b52ec42da",
      "tree": "851250c42eb890c6fa3afe59b3398e17ee850bae",
      "parents": [
        "ac0b1bc1edbe81c0cb36cad7e7f5b91f4d9e12ed"
      ],
      "author": {
        "name": "KUROSAWA Takahiro",
        "email": "kurosawa@valinux.co.jp",
        "time": "Fri Sep 09 13:02:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:32 2005 -0700"
      },
      "message": "[PATCH] fix for cpusets minor problem\n\nThis patch fixes minor problem that the CPUSETS have when files in the\ncpuset filesystem are read after lseek()-ed beyond the EOF.\n\nSigned-off-by: KUROSAWA Takahiro \u003ckurosawa@valinux.co.jp\u003e\nAcked-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": "b0d62e6d5b3318b6b722121d945afa295f7201b5",
      "tree": "9dfed36c97bcdbeaf1576b62752bfcafbfae808a",
      "parents": [
        "f76baf9365bd66216bf0e0ebfc083e22eda6215b"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 09 13:02:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:31 2005 -0700"
      },
      "message": "[PATCH] fix disassociate_ctty vs. fork race\n\nRace is as follows. Process A forks process B, both being part of the same\nsession. Then, A calls disassociate_ctty while B forks C:\n\nA\t\t\t\tB\n\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\n\t\t\t\tfork()\n\t\t\t\t  copy_signal()\ndissasociate_ctty()\t\t....\n\t\t\t\t  attach_pid(p, PIDTYPE_SID, p-\u003esignal-\u003esession);\n\nNow, C can have current-\u003esignal-\u003etty pointing to a freed tty structure, as\nit hasn\u0027t yet been added to the session group (to have its controlling tty\ncleared on the diassociate_ctty() call).\n\nThis has shown up as an oops but could be even more serious.  I haven\u0027t\ntried to create a test case, but a customer has verified that the patch\nbelow resolves the issue, which was occuring quite frequently.  I\u0027ll try\nand post the test case if i can.\n\nThe patch simply checks for a NULL tty *after* it has been attached to the\nproper session group and clears it as necessary.  Alternatively, we could\nsimply do the tty assignment after the the process is added to the proper\nsession group.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: 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": "4b5d37ac02954572e80e09255bb5737277aaee8e",
      "tree": "6072a602430af9a95d2bcadf149bd41c8045ef67",
      "parents": [
        "1299232b5743da454c73853b90b3d2d83dce1737"
      ],
      "author": {
        "name": "Giancarlo Formicuccia",
        "email": "giancarlo.formicuccia@gmail.com",
        "time": "Fri Sep 09 13:01:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:56:43 2005 -0700"
      },
      "message": "[PATCH] Clear task_struct-\u003efs_excl on fork()\n\nAn oversight.  We don\u0027t want to carry the IO scheduler\u0027s \"we hold exclusive fs\nresources\" hint over to the child across fork().\n\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64e47488c913ac704d465a6af86a26786d1412a5",
      "tree": "d3b0148592963dcde26e4bb35ddfec8b1eaf8e23",
      "parents": [
        "4a35a46bf1cda4737c428380d1db5d15e2590d18",
        "caf39e87cc1182f7dae84eefc43ca14d54c78ef9"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Sep 08 01:45:47 2005 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Sep 08 01:45:47 2005 -0400"
      },
      "message": "Merge linux-2.6 with linux-acpi-2.6\n"
    },
    {
      "commit": "0dd7f883a9e21c5f2ff5e8f1cbb0e78cdc044d8a",
      "tree": "080ba867394e0346b699ffe17973a76faa0e6920",
      "parents": [
        "cc896f08717c445235554a7963a7b2ecf58911ad",
        "344babaa9d39b10b85cadec4e5335d43b52b4ec0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 17:28:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 17:28:25 2005 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 \n"
    },
    {
      "commit": "deac66ae454cacf942c051b86d9232af546fb187",
      "tree": "17a72e7a2dcf2d1a93a6afdef661f290b1888f1c",
      "parents": [
        "bce0649417d6e71f6df8ab7b11103d247913b142"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Tue Sep 06 15:19:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:58:01 2005 -0700"
      },
      "message": "[PATCH] kprobes: fix bug when probed on task and isr functions\n\nThis patch fixes a race condition where in system used to hang or sometime\ncrash within minutes when kprobes are inserted on ISR routine and a task\nroutine.\n\nThe fix has been stress tested on i386, ia64, pp64 and on x86_64.  To\nreproduce the problem insert kprobes on schedule() and do_IRQ() functions\nand you should see hang or system crash.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d0aaff9796c3310326d10da44fc0faed352a1d29",
      "tree": "591fd8dedf34464989d23bbb0e66a1ccb2fa18a6",
      "parents": [
        "505db03639db34ca2c64fe7ee27190d324281f2c"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Tue Sep 06 15:19:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:59 2005 -0700"
      },
      "message": "[PATCH] Kprobes: prevent possible race conditions generic\n\nThere are possible race conditions if probes are placed on routines within the\nkprobes files and routines used by the kprobes.  For example if you put probe\non get_kprobe() routines, the system can hang while inserting probes on any\nroutine such as do_fork().  Because while inserting probes on do_fork(),\nregister_kprobes() routine grabs the kprobes spin lock and executes\nget_kprobe() routine and to handle probe of get_kprobe(), kprobes_handler()\ngets executed and tries to grab kprobes spin lock, and spins forever.  This\npatch avoids such possible race conditions by preventing probes on routines\nwithin the kprobes file and routines used by kprobes.\n\nI have modified the patches as per Andi Kleen\u0027s suggestion to move kprobes\nroutines and other routines used by kprobes to a seperate section\n.kprobes.text.\n\nAlso moved page fault and exception handlers, general protection fault to\n.kprobes.text section.\n\nThese patches have been tested on i386, x86_64 and ppc64 architectures, also\ncompiled on ia64 and sparc64 architectures.\n\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd3927105b6f65afb7dac17682172cdfb86d3f00",
      "tree": "5cf282aff500cad23b9d7e13dc19b2b2d31e1ce6",
      "parents": [
        "640e803376b9c4072f69fec42e304c974a631298"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.Helsinki.FI",
        "time": "Tue Sep 06 15:18:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:45 2005 -0700"
      },
      "message": "[PATCH] introduce and use kzalloc\n\nThis patch introduces a kzalloc wrapper and converts kernel/ to use it.  It\nsaves a little program text.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\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": "ab8d11beb46f0bd0617e04205c01f5c1fe845b61",
      "tree": "33b5aa5b63268b8f4d1428d74547fd351bb37113",
      "parents": [
        "5e21ccb136047e556acf0fdf227cab5db05c1c25"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] remove duplicated code from proc and ptrace\n\nExtract common code used by ptrace_attach() and may_ptrace_attach()\ninto a separate function.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\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": "0811bab24ff1eecab38110eda7ea7847db95c64e",
      "tree": "1de9a8a04c8c3dec7f9cdf46f2db6b6609757127",
      "parents": [
        "d1b551386a5f3f50a5003b691f819b07f8e6f034"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Tue Sep 06 15:18:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:41 2005 -0700"
      },
      "message": "[PATCH] cpusets: re-enable \"dynamic sched domains\"\n\nRevert the hack introduced last week.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nCc: 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": "d1b551386a5f3f50a5003b691f819b07f8e6f034",
      "tree": "f57c2d3228023a1cef91dfa052d2bf35901f5921",
      "parents": [
        "9c1cfda20a508b181bdda8c0045f7c0c333880a5"
      ],
      "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:41 2005 -0700"
      },
      "message": "[PATCH] cpusets: fix the \"dynamic sched domains\" bug\n\nFor a NUMA system with multiple CPUs per node, declaring a cpu-exclusive\ncpuset that includes only some, but not all, of the CPUs in a node will mangle\nthe sched domain structures.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nCc; 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": "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": "ef08e3b4981aebf2ba9bd7025ef7210e8eec07ce",
      "tree": "3b5386e011c87dde384115c8eb0d6961c2536025",
      "parents": [
        "9bf2229f8817677127a60c177aefce1badd22d7b"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Sep 06 15:18:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:40 2005 -0700"
      },
      "message": "[PATCH] cpusets: confine oom_killer to mem_exclusive cpuset\n\nNow the real motivation for this cpuset mem_exclusive patch series seems\ntrivial.\n\nThis patch keeps a task in or under one mem_exclusive cpuset from provoking an\noom kill of a task under a non-overlapping mem_exclusive cpuset.  Since only\ninterrupt and GFP_ATOMIC allocations are allowed to escape mem_exclusive\ncontainment, there is little to gain from oom killing a task under a\nnon-overlapping mem_exclusive cpuset, as almost all kernel and user memory\nallocation must come from disjoint memory nodes.\n\nThis patch enables configuring a system so that a runaway job under one\nmem_exclusive cpuset cannot cause the killing of a job in another such cpuset\nthat might be using very high compute and memory resources for a prolonged\ntime.\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": "9bf2229f8817677127a60c177aefce1badd22d7b",
      "tree": "06e95863a26b197233081db1dafd869dfd231950",
      "parents": [
        "f90b1d2f1aaaa40c6519a32e69615edc25bb97d5"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Sep 06 15:18:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:40 2005 -0700"
      },
      "message": "[PATCH] cpusets: formalize intermediate GFP_KERNEL containment\n\nThis patch makes use of the previously underutilized cpuset flag\n\u0027mem_exclusive\u0027 to provide what amounts to another layer of memory placement\nresolution.  With this patch, there are now the following four layers of\nmemory placement available:\n\n 1) The whole system (interrupt and GFP_ATOMIC allocations can use this),\n 2) The nearest enclosing mem_exclusive cpuset (GFP_KERNEL allocations can use),\n 3) The current tasks cpuset (GFP_USER allocations constrained to here), and\n 4) Specific node placement, using mbind and set_mempolicy.\n\nThese nest - each layer is a subset (same or within) of the previous.\n\nLayer (2) above is new, with this patch.  The call used to check whether a\nzone (its node, actually) is in a cpuset (in its mems_allowed, actually) is\nextended to take a gfp_mask argument, and its logic is extended, in the case\nthat __GFP_HARDWALL is not set in the flag bits, to look up the cpuset\nhierarchy for the nearest enclosing mem_exclusive cpuset, to determine if\nplacement is allowed.  The definition of GFP_USER, which used to be identical\nto GFP_KERNEL, is changed to also set the __GFP_HARDWALL bit, in the previous\ncpuset_gfp_hardwall_flag patch.\n\nGFP_ATOMIC and GFP_KERNEL allocations will stay within the current tasks\ncpuset, so long as any node therein is not too tight on memory, but will\nescape to the larger layer, if need be.\n\nThe intended use is to allow something like a batch manager to handle several\njobs, each job in its own cpuset, but using common kernel memory for caches\nand such.  Swapper and oom_kill activity is also constrained to Layer (2).  A\ntask in or below one mem_exclusive cpuset should not cause swapping on nodes\nin another non-overlapping mem_exclusive cpuset, nor provoke oom_killing of a\ntask in another such cpuset.  Heavy use of kernel memory for i/o caching and\nsuch by one job should not impact the memory available to jobs in other\nnon-overlapping mem_exclusive cpusets.\n\nThis patch enables providing hardwall, inescapable cpusets for memory\nallocations of each job, while sharing kernel memory allocations between\nseveral jobs, in an enclosing mem_exclusive cpuset.\n\nLike Dinakar\u0027s patch earlier to enable administering sched domains using the\ncpu_exclusive flag, this patch also provides a useful meaning to a cpuset flag\nthat had previously done nothing much useful other than restrict what cpuset\nconfigurations were allowed.\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": "39ed3fdeec1290dd246dcf1da6b278566987a084",
      "tree": "46b4f08e2c61eca5871c4805ec4448f1408f2e69",
      "parents": [
        "580b2e3c0183818adf6151e60270405b02ea8504"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Sep 06 15:17:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:33 2005 -0700"
      },
      "message": "[PATCH] futex: remove duplicate code\n\nThis patch cleans up the error path of futex_fd() by removing duplicate\ncode.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e752dd6cc66a3e6a11396928998baf390cc00420",
      "tree": "b24b388d80acec6527e66b07f0d308d48319c476",
      "parents": [
        "a97c9bf33f4612e2aed6f000f6b1d268b6814f3c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Sep 06 15:17:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:33 2005 -0700"
      },
      "message": "[PATCH] fix send_sigqueue() vs thread exit race\n\nposix_timer_event() first checks that the thread (SIGEV_THREAD_ID case)\ndoes not have PF_EXITING flag, then it calls send_sigqueue() which locks\ntask list.  But if the thread exits in between the kernel will oops\n(-\u003esighand \u003d\u003d NULL after __exit_sighand).\n\nThis patch moves the PF_EXITING check into the send_sigqueue(), it must be\ndone atomically under tasklist_lock.  When send_sigqueue() detects exiting\nthread it returns -1.  In that case posix_timer_event will send the signal\nto thread group.\n\nAlso, this patch fixes task_struct use-after-free in posix_timer_event.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0730ded5be28653675ed314fdd878b8db5f88aa4",
      "tree": "e224523373424f4402b70d351caa48e94133a9ab",
      "parents": [
        "5acd57936c3224fd86e838201e528e0169373e9b"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Sep 06 15:17:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:32 2005 -0700"
      },
      "message": "[PATCH] remove a redundant variable in sys_prctl()\n\nThe patch removes a redundant variable `sig\u0027 from sys_prctl().\n\nFor some reason, when sys_prctl is called with option \u003d\u003d PR_SET_PDEATHSIG\nthen the value of arg2 is assigned to an int variable named sig.  Then sig\nis tested with valid_signal() and later used to set the value of\ncurrent-\u003epdeath_signal .\n\nThere is no reason to use this intermediate variable since valid_signal()\ntakes a unsigned long argument, so it can handle being passed arg2\ndirectly, and if the call to valid_signal is OK, then we know the value of\narg2 is in the range zero to _NSIG and thus it\u0027ll easily fit in a plain int\nand thus there\u0027s no problem assigning it later to current-\u003epdeath_signal\n(which is an int).\n\nThe patch gets rid of the pointless variable `sig\u0027.\nThis reduces the size of kernel/sys.o in 2.6.13-rc6-mm1 by 32 bytes on my\nsystem.\n\nPatch has been compile tested, boot tested, and just to make damn sure I\ndidn\u0027t break anything I wrote a quick test app that calls\nprctl(PR_SET_PDEATHSIG ...) with the entire range of values for a\nunsigned long, and it behaves as expected with and without the patch.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c9c0b52b8c6b68b05bb06efd7079a8fc5e9ba60",
      "tree": "9b7387c8175cc877d0006a0f1e2905eb5102a0fa",
      "parents": [
        "439c430e3d448b16112de3f3d92bef6ee2639d89"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Tue Sep 06 15:17:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:31 2005 -0700"
      },
      "message": "[PATCH] largefile support for accounting\n\nThere is a problem in the accounting subsystem in the kernel can not\ncorrectly handle files larger than 2GB.  The output file containing the\nprocess accounting data can grow very large if the system is large enough\nand active enough.  If the 2GB limit is reached, then the system simply\nstops storing process accounting data.\n\nAnother annoying problem is that once the system reaches this 2GB limit,\nthen every process which exits will receive a signal, SIGXFSZ.  This signal\nis generated because an attempt was made to write beyond the limit for the\nfile descriptor.  This signal makes it look like every process has exited\ndue to a signal, when in fact, they have not.\n\nThe solution is to add the O_LARGEFILE flag to the list of flags used to\nopen the accounting file.  The rest of the accounting support is already\nlargefile safe.\n\nThe changes were tested by constructing a large file (just short of 2GB),\nenabling accounting, and then running enough commands to cause the\naccounting data generated to increase the size of the file to 2GB.  Without\nthe changes, the file grows to 2GB and the last command run in the test\nscript appears to exit due a signal when it has not.  With the changes,\nthings work as expected and quietly.\n\nThere are some user level changes required so that it can deal with\nlargefiles, but those are being handled separately.\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bc505a478d3fffcfb269b72f64df4510305cfe81",
      "tree": "e8a788fb93bc18a10be134ab6218365f53d2d1dc",
      "parents": [
        "2d237c63659c098a662b1b09d43460f04c498436"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Sep 06 15:17:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:31 2005 -0700"
      },
      "message": "[PATCH] do_notify_parent_cldstop() cleanup\n\nThis patch simplifies the usage of do_notify_parent_cldstop(), it lessens\nthe source and .text size slightly, and makes the code (in my opinion) a\nbit more readable.\n\nI am sending this patch now because I\u0027m afraid Paul will touch\ndo_notify_parent_cldstop() really soon, It\u0027s better to cleanup first.\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": "f26fdd59929e1144c6caf72adcaf4561d6e682a4",
      "tree": "85081e47a7c5943ac1d262e806e4138e14360ecc",
      "parents": [
        "f8eeaaf4180334a8e5c3582fe62a5f8176a8c124"
      ],
      "author": {
        "name": "Karsten Wiese",
        "email": "annabellesgarden@yahoo.de",
        "time": "Tue Sep 06 15:17:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:29 2005 -0700"
      },
      "message": "[PATCH] CHECK_IRQ_PER_CPU() to avoid dead code in __do_IRQ()\n\nIRQ_PER_CPU is not used by all architectures.  This patch introduces the\nmacros ARCH_HAS_IRQ_PER_CPU and CHECK_IRQ_PER_CPU() to avoid the generation\nof dead code in __do_IRQ().\n\nARCH_HAS_IRQ_PER_CPU is defined by architectures using IRQ_PER_CPU in their\ninclude/asm_ARCH/irq.h file.\n\nThrough grepping the tree I found the following architectures currently use\nIRQ_PER_CPU:\n\n        cris, ia64, ppc, ppc64 and parisc.\n\nSigned-off-by: Karsten Wiese \u003cannabellesgarden@yahoo.de\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": "230649da7cb73914b8b2a1ffc802a2951e970454",
      "tree": "ea18d1246118221640d1aebc89d6f1ba11b4869c",
      "parents": [
        "b80068543794864f533163c586be2a1a9880a65d"
      ],
      "author": {
        "name": "Mika Kukkonen",
        "email": "mikukkon@gmail.com",
        "time": "Tue Sep 06 15:17:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:28 2005 -0700"
      },
      "message": "[PATCH] create_workqueue_thread() signedness fix\n\nWith \"-W -Wno-unused -Wno-sign-compare\" I get the following compile warning:\n\n  CC      kernel/workqueue.o\nkernel/workqueue.c: In function `workqueue_cpu_callback\u0027:\nkernel/workqueue.c:504: warning: ordered comparison of pointer with integer zero\n\nOn error create_workqueue_thread() returns NULL, not negative pointer, so\nfollowing trivial patch suggests itself.\n\nSigned-off-by: Mika Kukkonen \u003cmikukkon@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "378bac820be6a0ec95df8151524de73ad2b2d2ac",
      "tree": "457827b58dcbf923e151b08128d84c33d13c1149",
      "parents": [
        "19b4946ca9d1e35d4c641dcebe27378de34f3ddd"
      ],
      "author": {
        "name": "Thomas Koeller",
        "email": "thomas@koeller.dyndns.org",
        "time": "Tue Sep 06 15:17:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:26 2005 -0700"
      },
      "message": "[PATCH] flush icache early when loading module\n\nChange the sequence of operations performed during module loading to flush\nthe instruction cache before module parameters are processed.  If a module\nhas parameters of an unusual type that cannot be handled using the standard\naccessor functions param_set_xxx and param_get_xxx, it has to to provide a\nset of accessor functions for this type.  This requires module code to be\nexecuted during parameter processing, which is of course only possible\nafter the icache has been flushed.\n\nSigned-off-by: Thomas Koeller \u003cthomas@koeller.dyndns.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "486d46aefe7ded0d343e306be740edd972aff740",
      "tree": "e750143e578503b77a66eff21595b16730506802",
      "parents": [
        "9f4a6dce10941380ad7365cc9b0ef038ed56cbf9"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@hp.com",
        "time": "Tue Sep 06 15:17:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:24 2005 -0700"
      },
      "message": "[PATCH] optimize writer path in time_interpolator_get_counter()\n\n      Christoph Lameter \u003cclameter@engr.sgi.com\u003e\n\nWhen using a time interpolator that is susceptible to jitter there\u0027s\npotentially contention over a cmpxchg used to prevent time from going\nbackwards.  This is unnecessary when the caller holds the xtime write\nseqlock as all readers will be blocked from returning until the write is\ncomplete.  We can therefore allow writers to insert a new value and exit\nrather than fight with CPUs who only hold a reader lock.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@hp.com\u003e\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": "fe21773d655c2c64641ec2cef499289ea175c817",
      "tree": "ebc1f49f0b7135aa05bbf3a5463a6e1c238add89",
      "parents": [
        "c3d8c1414573be8cf7c8fdc1e076935697c7f6af"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Sep 06 15:16:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:18 2005 -0700"
      },
      "message": "[PATCH] Provide better printk() support for SMP machines\n\nThe attached patch prevents oopses interleaving with characters from\nother printks on other CPUs by only breaking the lock if the oops is\nhappening on the machine holding the lock.\n\nIt might be better if the oops generator got the lock and then called an\ninner vprintk routine that assumed the caller holds the lock, thus\nmaking oops reports \"atomic\".\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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": "4732efbeb997189d9f9b04708dc26bf8613ed721",
      "tree": "885308bb2b521e52e13aaa8a67c78b2ab3c18cd8",
      "parents": [
        "5b039e681b8c5f30aac9cc04385cc94be45d0823"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Tue Sep 06 15:16:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:17 2005 -0700"
      },
      "message": "[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup\n\nATM pthread_cond_signal is unnecessarily slow, because it wakes one waiter\n(which at least on UP usually means an immediate context switch to one of\nthe waiter threads).  This waiter wakes up and after a few instructions it\nattempts to acquire the cv internal lock, but that lock is still held by\nthe thread calling pthread_cond_signal.  So it goes to sleep and eventually\nthe signalling thread is scheduled in, unlocks the internal lock and wakes\nthe waiter again.\n\nNow, before 2003-09-21 NPTL was using FUTEX_REQUEUE in pthread_cond_signal\nto avoid this performance issue, but it was removed when locks were\nredesigned to the 3 state scheme (unlocked, locked uncontended, locked\ncontended).\n\nFollowing scenario shows why simply using FUTEX_REQUEUE in\npthread_cond_signal together with using lll_mutex_unlock_force in place of\nlll_mutex_unlock is not enough and probably why it has been disabled at\nthat time:\n\nThe number is value in cv-\u003e__data.__lock.\n        thr1            thr2            thr3\n0       pthread_cond_wait\n1       lll_mutex_lock (cv-\u003e__data.__lock)\n0       lll_mutex_unlock (cv-\u003e__data.__lock)\n0       lll_futex_wait (\u0026cv-\u003e__data.__futex, futexval)\n0                       pthread_cond_signal\n1                       lll_mutex_lock (cv-\u003e__data.__lock)\n1                                       pthread_cond_signal\n2                                       lll_mutex_lock (cv-\u003e__data.__lock)\n2                                         lll_futex_wait (\u0026cv-\u003e__data.__lock, 2)\n2                       lll_futex_requeue (\u0026cv-\u003e__data.__futex, 0, 1, \u0026cv-\u003e__data.__lock)\n                          # FUTEX_REQUEUE, not FUTEX_CMP_REQUEUE\n2                       lll_mutex_unlock_force (cv-\u003e__data.__lock)\n0                         cv-\u003e__data.__lock \u003d 0\n0                         lll_futex_wake (\u0026cv-\u003e__data.__lock, 1)\n1       lll_mutex_lock (cv-\u003e__data.__lock)\n0       lll_mutex_unlock (cv-\u003e__data.__lock)\n          # Here, lll_mutex_unlock doesn\u0027t know there are threads waiting\n          # on the internal cv\u0027s lock\n\nNow, I believe it is possible to use FUTEX_REQUEUE in pthread_cond_signal,\nbut it will cost us not one, but 2 extra syscalls and, what\u0027s worse, one of\nthese extra syscalls will be done for every single waiting loop in\npthread_cond_*wait.\n\nWe would need to use lll_mutex_unlock_force in pthread_cond_signal after\nrequeue and lll_mutex_cond_lock in pthread_cond_*wait after lll_futex_wait.\n\nAnother alternative is to do the unlocking pthread_cond_signal needs to do\n(the lock can\u0027t be unlocked before lll_futex_wake, as that is racy) in the\nkernel.\n\nI have implemented both variants, futex-requeue-glibc.patch is the first\none and futex-wake_op{,-glibc}.patch is the unlocking inside of the kernel.\n The kernel interface allows userland to specify how exactly an unlocking\noperation should look like (some atomic arithmetic operation with optional\nconstant argument and comparison of the previous futex value with another\nconstant).\n\nIt has been implemented just for ppc*, x86_64 and i?86, for other\narchitectures I\u0027m including just a stub header which can be used as a\nstarting point by maintainers to write support for their arches and ATM\nwill just return -ENOSYS for FUTEX_WAKE_OP.  The requeue patch has been\n(lightly) tested just on x86_64, the wake_op patch on ppc64 kernel running\n32-bit and 64-bit NPTL and x86_64 kernel running 32-bit and 64-bit NPTL.\n\nWith the following benchmark on UP x86-64 I get:\n\nfor i in nptl-orig nptl-requeue nptl-wake_op; do echo time elf/ld.so --library-path .:$i /tmp/bench; \\\nfor j in 1 2; do echo ( time elf/ld.so --library-path .:$i /tmp/bench ) 2\u003e\u00261; done; done\ntime elf/ld.so --library-path .:nptl-orig /tmp/bench\nreal 0m0.655s user 0m0.253s sys 0m0.403s\nreal 0m0.657s user 0m0.269s sys 0m0.388s\ntime elf/ld.so --library-path .:nptl-requeue /tmp/bench\nreal 0m0.496s user 0m0.225s sys 0m0.271s\nreal 0m0.531s user 0m0.242s sys 0m0.288s\ntime elf/ld.so --library-path .:nptl-wake_op /tmp/bench\nreal 0m0.380s user 0m0.176s sys 0m0.204s\nreal 0m0.382s user 0m0.175s sys 0m0.207s\n\nThe benchmark is at:\nhttp://sourceware.org/ml/libc-alpha/2005-03/txt00001.txt\nOlder futex-requeue-glibc.patch version is at:\nhttp://sourceware.org/ml/libc-alpha/2005-03/txt00002.txt\nOlder futex-wake_op-glibc.patch version is at:\nhttp://sourceware.org/ml/libc-alpha/2005-03/txt00003.txt\nWill post a new version (just x86-64 fixes so that the patch\napplies against pthread_cond_signal.S) to libc-hacker ml soon.\n\nAttached is the kernel FUTEX_WAKE_OP patch as well as a simple-minded\ntestcase that will not test the atomicity of the operation, but at least\ncheck if the threads that should have been woken up are woken up and\nwhether the arithmetic operation in the kernel gave the expected results.\n\nAcked-by: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Yoichi Yuasa \u003cyuasa@hh.iij4u.or.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d7ae79c72d072e3208c18ff2dc402a69229b7b1b",
      "tree": "cdc92d7602d9b93637ff0444910ebe2d2f97ee68",
      "parents": [
        "48c8b1134249432318c8e5d19adc37c45242c4b1"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Tue Sep 06 15:16:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:16 2005 -0700"
      },
      "message": "[PATCH] swsusp: update documentation\n\nThis updates documentation a bit (mostly removing obsolete stuff), and\nmarks swsusp as no longer experimental in config.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "54d5d42404e7705cf3804593189e963350d470e5",
      "tree": "7cf8a7fce163b19672193d8cf4ef6a7f6c131d9e",
      "parents": [
        "f63ed39c578a2a2d067356a85ce7c28a7c795d8a"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Tue Sep 06 15:16:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:15 2005 -0700"
      },
      "message": "[PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity\n\nWhen handling writes to /proc/irq, current code is re-programming rte\nentries directly. This is not recommended and could potentially cause\nchipset\u0027s to lockup, or cause missing interrupts.\n\nCONFIG_IRQ_BALANCE does this correctly, where it re-programs only when the\ninterrupt is pending. The same needs to be done for /proc/irq handling as well.\nOtherwise user space irq balancers are really not doing the right thing.\n\n- Changed pending_irq_balance_cpumask to pending_irq_migrate_cpumask for\n  lack of a generic name.\n- added move_irq out of IRQ_BALANCE, and added this same to X86_64\n- Added new proc handler for write, so we can do deferred write at irq\n  handling time.\n- Display of /proc/irq/XX/smp_affinity used to display CPU_MASKALL, instead\n  it now shows only active cpu masks, or exactly what was set.\n- Provided a common move_irq implementation, instead of duplicating\n  when using generic irq framework.\n\nTested on i386/x86_64 and ia64 with CONFIG_PCI_MSI turned on and off.\nTested UP builds as well.\n\nMSI testing: tbd: I have cards, need to look for a x-over cable, although I\ndid test an earlier version of this patch.  Will test in a couple days.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nAcked-by: Zwane Mwaikambo \u003czwane@holomorphy.com\u003e\nGrudgingly-acked-by: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Coywolf Qi Hunt \u003ccoywolf@lovecn.org\u003e\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "344babaa9d39b10b85cadec4e5335d43b52b4ec0",
      "tree": "7ba5f46394251a478c071a64dff941369769a18c",
      "parents": [
        "4706df3d3c42af802597d82c8b1542c3d52eab23"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Wed Sep 07 01:15:17 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Wed Sep 07 01:15:17 2005 -0400"
      },
      "message": "[kernel-doc] fix various DocBook build problems/warnings\n\nMost serious is fixing include/sound/pcm.h, which breaks the DocBook\nbuild.\n\nThe other stuff is just filling in things that cause warnings.\n"
    }
  ],
  "next": "ed75e8d58010fdc06e2c3a81bfbebae92314c7e3"
}
