)]}'
{
  "log": [
    {
      "commit": "4eb9af2a8a431a832830f986fead7332dab27229",
      "tree": "424d265f46c7d2e545235117e1b5dcfb074b5228",
      "parents": [
        "33430dc593f866f5d67ff6a6213b6dd6d7ea3ce1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:21 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:20 2005 -0800"
      },
      "message": "[PATCH] posix-timers: use schedule_timeout() in common_nsleep()\n\ncommon_nsleep() reimplements schedule_timeout_interruptible() for unknown\nreason.\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": "6dd69f1061bfdeca230509b173438e0731bff767",
      "tree": "66094a2fdf02fd808b0661cc2a26c6ff64d1c590",
      "parents": [
        "19a4fcb531659f2f7d18b5d04cee039176e9540d"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Oct 30 15:02:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] Unify sys_tkill() and sys_tgkill()\n\nThe majority of the sys_tkill() and sys_tgkill() function code is\nduplicated between the two of them.  This patch pulls the duplication out\ninto a separate function -- do_tkill() -- and lets sys_tkill() and\nsys_tgkill() be simple wrappers around it.  This should make it easier to\nmaintain in light of future changes.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "19a4fcb531659f2f7d18b5d04cee039176e9540d",
      "tree": "30e0636d6163a5c0c3a4ad41c2d5f49cd858b457",
      "parents": [
        "932aeafbe8521a9a9d790152d66020e0fef2029b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] kill sigqueue-\u003elock\n\nThis lock is used in sigqueue_free(), but it is always equal to\ncurrent-\u003esighand-\u003esiglock, so we don\u0027t need to keep it in the struct\nsigqueue.\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": "dfc4f94d2ff95fc92127d3e512c1df7cab274fb8",
      "tree": "c9ed4d74147a3674816f59cf9fbeb69e2cb6afe4",
      "parents": [
        "89ada67917f516212452443a56b9fd3b65b74dc7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:02:03 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] remove timer debug field\n\nRemove timer_list.magic and associated debugging code.\n\nI originally added this when a spinlock was added to timer_list - this meant\nthat an all-zeroes timer became illegal and init_timer() was required.\n\nThat spinlock isn\u0027t even there any more, although timer.base must now be\ninitialised.\n\nI\u0027ll keep this debugging code in -mm.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89ada67917f516212452443a56b9fd3b65b74dc7",
      "tree": "00986fd653bf1973a70ae894f503b3b2352943b5",
      "parents": [
        "d61780c0d384939ef31c46b47442854d5def4623"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Oct 30 15:01:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] Use alloc_percpu to allocate workqueues locally\n\nThis patch makes the workqueus use alloc_percpu instead of an array.  The\nworkqueues are placed on nodes local to each processor.\n\nThe workqueue structure can grow to a significant size on a system with\nlots of processors if this patch is not applied.  64 bit architectures with\nall debugging features enabled and configured for 512 processors will not\nbe able to boot without this patch.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a5a0d52c7305cb3629ef0cc9e2e0e106869e1907",
      "tree": "11be2b00bc455e8f0dbe280b64932bdb7369bde0",
      "parents": [
        "1bb34a412750291e4e5e9f1d0fe7ae1b7e976098"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] ntp whitespace cleanup\n\nFix bizarre 4-space coding style in the NTP code.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bb34a412750291e4e5e9f1d0fe7ae1b7e976098",
      "tree": "00d481a2ff4302f444fbf7c31e5e661f79dc85a9",
      "parents": [
        "9c0cbd54ce0397017a823484f9a8054ab369b8a2"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Sun Oct 30 15:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] NTP shift_right cleanup\n\nCreate a macro shift_right() that avoids the numerous ugly conditionals in the\nNTP code that look like:\n\n        if(a \u003c 0)\n                b \u003d -(-a \u003e\u003e shift);\n        else\n                b \u003d a \u003e\u003e shift;\n\nReplacing it with:\n\n        b \u003d shift_right(a, shift);\n\nThis should have zero effect on the logic, however it should probably have\na bit of testing just to be sure.\n\nAlso replace open-coded min/max with the macros.\n\nSigned-off-by : John Stultz \u003cjohnstul@us.ibm.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61e1a9ea4b425eb8c3b4965c35fe953bd881728f",
      "tree": "2dcf017eedd4a72698593c878aff3ae31e3a6b09",
      "parents": [
        "83521d3eb8dd2dfb04dd78b4733e9766f61bb47e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sun Oct 30 15:01:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] Add kthread_stop_sem()\n\nEnhance the kthread API by adding kthread_stop_sem, for use in stopping\nthreads that spend their idle time waiting on a semaphore.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8db2db1e6a8d323d87a67c5391d48fe2b97faf5",
      "tree": "0aa5fb9f80e4a476e097337104a3e1f94f39a96e",
      "parents": [
        "9e4e23bccb127fac109e765dfb7f9372661cb415"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:01:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] introduce setup_timer() helper\n\nEvery user of init_timer() also needs to initialize -\u003efunction and -\u003edata\nfields.  This patch adds a simple setup_timer() helper for that.\n\nThe schedule_timeout() is patched as an example of usage.\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": "eb9289eb20df6b54214c45ac7c6bf5179a149026",
      "tree": "dac51cecdd94e0c7273c990259ddd800057311b9",
      "parents": [
        "0245b3e787dc3267a915e1f56419e7e9c197e148"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Sun Oct 30 15:00:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:15 2005 -0800"
      },
      "message": "[PATCH] introduce .valid callback for pm_ops\n\nAdd pm_ops.valid callback, so only the available pm states show in\n/sys/power/state.  And this also makes an earlier states error report at\nenter_state before we do actual suspend/resume.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\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": "0245b3e787dc3267a915e1f56419e7e9c197e148",
      "tree": "96a366f2fc732f42d4993dd177982e6b657d83aa",
      "parents": [
        "2e32a43efdc8175579cc91e8b620ac331376a437"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 15:00:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:15 2005 -0800"
      },
      "message": "[PATCH] swsusp: two simplifications\n\nThe following patch simplifies the progress meter in disk.c:free_some_memory()\nand makes disk.c:pm_suspend_disk() call device_resume() explicitly in the\nsuspend path.\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": "2e32a43efdc8175579cc91e8b620ac331376a437",
      "tree": "fd46c6cf28d437fc53acc72cff03d2d796d834ff",
      "parents": [
        "de491861e1457c31aed6d44d96afb549365ff790"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 15:00:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:15 2005 -0800"
      },
      "message": "[PATCH] swsusp: get rid of unnecessary wrapper function\n\nThe following patch merges two functions in a trivial way.\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": "de491861e1457c31aed6d44d96afb549365ff790",
      "tree": "9480b80bab7d5f2ef141249b70a6beffde0c7599",
      "parents": [
        "96bc7aec20b50761822f96130127b8e31e168af1"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sun Oct 30 14:59:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: cleanups\n\nReduce number of ifdefs somehow, and fix whitespace a bit.  No real code\nchanges.\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": "96bc7aec20b50761822f96130127b8e31e168af1",
      "tree": "f1bb9562fcec1764a39b1b01423770d4ddbcc1dc",
      "parents": [
        "2c1b4a5ca48831595979a850f40ced8e7da026f8"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sun Oct 30 14:59:58 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: remove unneccessary includes\n\nCleanup comments and remove unneccessary includes.\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": "2c1b4a5ca48831595979a850f40ced8e7da026f8",
      "tree": "06fe8a400df8c5166c7f47ca2c30a584473f1170",
      "parents": [
        "a0f496517f3e28d651d0cbbcf2d4fb701ed6957e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:58 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: rework memory freeing on resume\n\nThe following patch makes swsusp use the PG_nosave and PG_nosave_free flags to\nmark pages that should be freed in case of an error during resume.\n\nThis allows us to simplify the code and to use swsusp_free() in all of the\nswsusp\u0027s resume error paths, which makes them actually work.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0f496517f3e28d651d0cbbcf2d4fb701ed6957e",
      "tree": "39ab8b387061cc5737c542f6cddea7320b82970b",
      "parents": [
        "25761b6eb7b33823bcfff6bfe2a015badcd76fb8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:57 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: reduce the use of global variables\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25761b6eb7b33823bcfff6bfe2a015badcd76fb8",
      "tree": "a25841a3f4c4cf087ce75c0907c00966f19d339a",
      "parents": [
        "351619baf9878731b4272fa10dda0f84f5582241"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: move snapshot functionality to separate file\n\nThe following patch moves the functionality of swsusp related to creating and\nhandling the snapshot of memory to a separate file, snapshot.c\n\nThis should enable us to untangle the code in the future and eventually to\nimplement some parts of swsusp.c in the user space.\n\nThe patch does not change the code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\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": "351619baf9878731b4272fa10dda0f84f5582241",
      "tree": "62bf45ba8368dddde3adb501a37c428ead5feff7",
      "parents": [
        "c32b6b8e524d2c337767d312814484d9289550cf"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: rework image freeing\n\nThe following patch makes swsusp use PG_nosave and PG_nosave_free flags to\nmark pages that should be freed after the state of the system has been\nrestored from the image (or in case of an error during suspend).\n\nThis allows us to avoid storing metadata in swap twice and to reduce the\namount of memory needed by swsusp.   Additionally, it allows us to simplify\nthe code by removing a couple of functions that are no longer necessary.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\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": "c32b6b8e524d2c337767d312814484d9289550cf",
      "tree": "02e634b0b48db6eccc8774369366daa1893921ea",
      "parents": [
        "d434fca737bee0862625c2377b987a7713b6b487"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sun Oct 30 14:59:54 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] create and destroy cpufreq sysfs entries based on cpu notifiers\n\ncpufreq entries in sysfs should only be populated when CPU is online state.\n When we either boot with maxcpus\u003dx and then boot the other cpus by echoing\nto sysfs online file, these entries should be created and destroyed when\nCPU_DEAD is notified.  Same treatement as cache entries under sysfs.\n\nWe place the processor in the lowest frequency, so hw managed P-State\ntransitions can still work on the other threads to save power.\n\nPrimary goal was to just make these directories appear/disapper dynamically.\n\nThere is one in this patch i had to do, which i really dont like myself but\nprobably best if someone handling the cpufreq infrastructure could give\nthis code right treatment if this is not acceptable.  I guess its probably\ngood for the first cut.\n\n- Converting lock_cpu_hotplug()/unlock_cpu_hotplug() to disable/enable preempt.\n  The locking was smack in the middle of the notification path, when the\n  hotplug is already holding the lock. I tried another solution to avoid this\n  so avoid taking locks if we know we are from notification path. The solution\n  was getting very ugly and i decided this was probably good for this iteration\n  until someone who understands cpufreq could do a better job than me.\n\n(akpm: export cpucontrol to GPL modules: drivers/cpufreq/cpufreq_stats.c now\ndoes lock_cpu_hotplug())\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Zwane Mwaikambo \u003czwane@holomorphy.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4276d32260662d5401a15a0a46e506fb5c8ab563",
      "tree": "5968cda01076da10592729986975c7952d18862e",
      "parents": [
        "6e9d6b8ee4e0c37d3952256e6472c57490d6780d"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "bgerst@didntduck.org",
        "time": "Sun Oct 30 14:59:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:10 2005 -0800"
      },
      "message": "[PATCH] Remove redundant configs.o\n\nSince CONFIG_IKCONFIG_PROC already depends on CONFIG_IKCONFIG, adding\nconfigs.o again is redundant.\n\nSigned-off-by: Brian Gerst \u003cbgerst@didntduck.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7",
      "tree": "1f76d33bb1d76221c6424bc5fed080a4f91349a6",
      "parents": [
        "b38c6845b695141259019e2b7c0fe6c32a6e720d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: split page table lock\n\nChristoph Lameter demonstrated very poor scalability on the SGI 512-way, with\na many-threaded application which concurrently initializes different parts of\na large anonymous area.\n\nThis patch corrects that, by using a separate spinlock per page table page, to\nguard the page table entries in that page, instead of using the mm\u0027s single\npage_table_lock.  (But even then, page_table_lock is still used to guard page\ntable allocation, and anon_vma allocation.)\n\nIn this implementation, the spinlock is tucked inside the struct page of the\npage table page: with a BUILD_BUG_ON in case it overflows - which it would in\nthe case of 32-bit PA-RISC with spinlock debugging enabled.\n\nSplitting the lock is not quite for free: another cacheline access.  Ideally,\nI suppose we would use split ptlock only for multi-threaded processes on\nmulti-cpu machines; but deciding that dynamically would have its own costs.\nSo for now enable it by config, at some number of cpus - since the Kconfig\nlanguage doesn\u0027t support inequalities, let preprocessor compare that with\nNR_CPUS.  But I don\u0027t think it\u0027s worth being user-configurable: for good\ntesting of both split and unsplit configs, split now at 4 cpus, and perhaps\nchange that to 8 later.\n\nThere is a benefit even for singly threaded processes: kswapd can be attacking\none part of the mm while another part is busy faulting.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "deceb6cd17e6dfafe4c4f81b1b4153bc41b2cb70",
      "tree": "2a722f50e8edef8609a49f65bfcb222e499c44cc",
      "parents": [
        "c34d1b4d165c67b966bca4aba026443d7ff161eb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: follow_page with inner ptlock\n\nFinal step in pushing down common core\u0027s page_table_lock.  follow_page no\nlonger wants caller to hold page_table_lock, uses pte_offset_map_lock itself;\nand so no page_table_lock is taken in get_user_pages itself.\n\nBut get_user_pages (and get_futex_key) do then need follow_page to pin the\npage for them: take Daniel\u0027s suggestion of bitflags to follow_page.\n\nNeed one for WRITE, another for TOUCH (it was the accessed flag before:\nvanished along with check_user_page_readable, but surely get_numa_maps is\nwrong to mark every page it finds as accessed), another for GET.\n\nAnd another, ANON to dispose of untouched_anonymous_page: it seems silly for\nthat to descend a second time, let follow_page observe if there was no page\ntable and return ZERO_PAGE if so.  Fix minor bug in that: check VM_LOCKED -\nmake_pages_present ought to make readonly anonymous present.\n\nGive get_numa_maps a cond_resched while we\u0027re there.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c74df32c724a1652ad8399b4891bb02c9d43743a",
      "tree": "5a79d56fdcf7dc2053a277dbf6db7c3b339e9659",
      "parents": [
        "1bb3630e89cb8a7b3d3807629c20c5bad88290ff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc take ptlock\n\nSecond step in pushing down the page_table_lock.  Remove the temporary\nbridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not\nto hold page_table_lock, whether it\u0027s on init_mm or a user mm; take\npage_table_lock internally to check if a racing task already allocated.\n\nConvert their callers from common code.  But avoid coming back to change them\nagain later: instead of moving the spin_lock(\u0026mm-\u003epage_table_lock) down,\nswitch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which\nencapsulate the mapping+locking and unlocking+unmapping together, and in the\nend may use alternatives to the mm page_table_lock itself.\n\nThese callers all hold mmap_sem (some exclusively, some not), so at no level\ncan a page table be whipped away from beneath them; and pte_alloc uses the\n\"atomic\" pmd_present to test whether it needs to allocate.  It appears that on\nall arches we can safely descend without page_table_lock.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b5810039a54e5babf428e9a1e89fc1940fabff11",
      "tree": "835836cb527ec9bd525f93eb7e016f3dfb8c8ae2",
      "parents": [
        "f9c98d0287de42221c624482fd4f8d485c98ab22"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Oct 29 18:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] core remove PageReserved\n\nRemove PageReserved() calls from core code by tightening VM_RESERVED\nhandling in mm/ to cover PageReserved functionality.\n\nPageReserved special casing is removed from get_page and put_page.\n\nAll setting and clearing of PageReserved is retained, and it is now flagged\nin the page_alloc checks to help ensure we don\u0027t introduce any refcount\nbased freeing of Reserved pages.\n\nMAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being\ndeprecated.  We never completely handled it correctly anyway, and is be\nreintroduced in future if required (Hugh has a proof of concept).\n\nOnce PageReserved() calls are removed from kernel/power/swsusp.c, and all\narch/ and driver code, the Set and Clear calls, and the PG_reserved bit can\nbe trivially removed.\n\nLast real user of PageReserved is swsusp, which uses PageReserved to\ndetermine whether a struct page points to valid memory or not.  This still\nneeds to be addressed (a generic page_is_ram() should work).\n\nA last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and\nthus mapcounted and count towards shared rss).  These writes to the struct\npage could cause excessive cacheline bouncing on big systems.  There are a\nnumber of ways this could be addressed if it is an issue.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRefcount bug fix for filemap_xip.c\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ee78232501ea9de2b6c8f10d32c9a0fee541357",
      "tree": "2041a36a13bdd8b096dfbf52b63a87739ea97d6b",
      "parents": [
        "fd3e42fcc888a773572282575d2fdbf5cfd6216e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: dup_mmap down new mmap_sem\n\nOne anomaly remains from when Andrea rationalized the responsibilities of\nmmap_sem and page_table_lock: in dup_mmap we add vmas to the child holding its\npage_table_lock, but not the mmap_sem which normally guards the vma list and\nrbtree.  Which could be an issue for unuse_mm: though since it just walks down\nthe list (today with page_table_lock, tomorrow not), it\u0027s probably okay.  Will\nneed a memory barrier?  Oh, keep it simple, Nick and I agreed, no harm in\ntaking child\u0027s mmap_sem here.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd3e42fcc888a773572282575d2fdbf5cfd6216e",
      "tree": "ffe2c223b9200185eb67881582f784d534958883",
      "parents": [
        "ae859762332f19bfc06f4c4a1b1fefb41e9e1084"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: dup_mmap use oldmm more\n\nUse the parent\u0027s oldmm throughout dup_mmap, instead of perversely going back\nto current-\u003emm.  (Can you hear the sigh of relief from those mpnts?  Usually I\nsquash them, but not today.)\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "404351e67a9facb475abf1492245374a28d13e90",
      "tree": "5ef4e78b399b36a46eda339ad0cd27556fc5b9a2",
      "parents": [
        "fc2acab31be8e869b2d5f6de12f557f6f054f19c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: mm_init set_mm_counters\n\nHow is anon_rss initialized?  In dup_mmap, and by mm_alloc\u0027s memset; but\nthat\u0027s not so good if an mm_counter_t is a special type.  And how is rss\ninitialized?  By set_mm_counter, all over the place.  Come on, we just need to\ninitialize them both at once by set_mm_counter in mm_init (which follows the\nmemcpy when forking).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab50b8ed818016cfecd747d6d4bb9139986bc029",
      "tree": "33c666578c14dccce05b3f7a5538405098eebcc4",
      "parents": [
        "72866f6f277ec0ddd6df7a3b6ecdcf59a28de115"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: vm_stat_account unshackled\n\nThe original vm_stat_account has fallen into disuse, with only one user, and\nonly one user of vm_stat_unaccount.  It\u0027s easier to keep track if we convert\nthem all to __vm_stat_account, then free it from its __shackles.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b8f573b5db02a3017afbba49026a6aef480174f",
      "tree": "4abf19125526809d4be44cb83373f85605854575",
      "parents": [
        "930fc45a49ddebe7555cc5c837d82b9c27e65ff4"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Oct 29 18:15:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] TIMERS: add missing compensation for HZ \u003d\u003d 250\n\nAdd missing compensation for (HZ \u003d\u003d 250) !\u003d (1 \u003c\u003c SHIFT_HZ) in\nsecond_overflow().\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "c0dfb2905126e9e94edebbce8d3e05001301f52d"
}
