)]}'
{
  "log": [
    {
      "commit": "957d1282bb8c07e682e142b9237cd9fcb8348a0b",
      "tree": "a9b5690066c3268e7971c363b34f1a5deb664e2e",
      "parents": [
        "89a22dadb8810983868f5bbbc5530b27bf714a60"
      ],
      "author": {
        "name": "Li Fei",
        "email": "fei.li@intel.com",
        "time": "Fri Feb 01 08:56:03 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 22:32:48 2013 +0100"
      },
      "message": "suspend: enable freeze timeout configuration through sys\n\nAt present, the value of timeout for freezing is 20s, which is\nmeaningless in case that one thread is frozen with mutex locked\nand another thread is trying to lock the mutex, as this time of\nfreezing will fail unavoidably.\nAnd if there is no new wakeup event registered, the system will\nwaste at most 20s for such meaningless trying of freezing.\n\nWith this patch, the value of timeout can be configured to smaller\nvalue, so such meaningless trying of freezing will be aborted in\nearlier time, and later freezing can be also triggered in earlier\ntime. And more power will be saved.\nIn normal case on mobile phone, it costs real little time to freeze\nprocesses. On some platform, it only costs about 20ms to freeze\nuser space processes and 10ms to freeze kernel freezable threads.\n\nSigned-off-by: Liu Chuansheng \u003cchuansheng.liu@intel.com\u003e\nSigned-off-by: Li Fei \u003cfei.li@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "5d8f72b55c275677865de670fa147ed318191d81",
      "tree": "58f4f571440f412861a232ed0c5753771e5a6e58",
      "parents": [
        "ead5c473712eb26db792b18a4dc98fdb312883fe"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Oct 26 19:46:06 2012 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 26 14:27:49 2012 -0700"
      },
      "message": "freezer: change ptrace_stop/do_signal_stop to use freezable_schedule()\n\ntry_to_freeze_tasks() and cgroup_freezer rely on scheduler locks\nto ensure that a task doing STOPPED/TRACED -\u003e RUNNING transition\ncan\u0027t escape freezing. This mostly works, but ptrace_stop() does\nnot necessarily call schedule(), it can change task-\u003estate back to\nRUNNING and check freezing() without any lock/barrier in between.\n\nWe could add the necessary barrier, but this patch changes\nptrace_stop() and do_signal_stop() to use freezable_schedule().\nThis fixes the race, freezer_count() and freezer_should_skip()\ncarefully avoid the race.\n\nAnd this simplifies the code, try_to_freeze_tasks/update_if_frozen\nno longer need to use task_is_stopped_or_traced() checks with the\nnon trivial assumptions. We can rely on the mechanism which was\nspecially designed to mark the sleeping task as \"frozen enough\".\n\nv2: As Tejun pointed out, we can also change get_signal_to_deliver()\nand move try_to_freeze() up before \u0027relock\u0027 label.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "5834ec3aea8a84b70efeb52ee91a8f8b1042cd2a",
      "tree": "9f5a9b59346d1ebd878346e3fe00666dae3e06ab",
      "parents": [
        "a938da0682c2487f6aafc9a7c3caa8d675acdb38"
      ],
      "author": {
        "name": "Sedat Dilek",
        "email": "sedat.dilek@gmail.com",
        "time": "Thu Aug 23 02:47:13 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 23 02:47:13 2012 +0200"
      },
      "message": "PM / Freezer: Fix small typo \"regrigerator\"\n\nNoticed when digging into a suspend issue in linux-next (next-20120821).\n\nFor more details see \u003chttp://marc.info/?t\u003d134554708000002\u0026r\u003d1\u0026w\u003d2\u003e.\n\nSigned-off-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "247bc03742545fec2f79939a3b9f738392a0f7b4",
      "tree": "ea07ff0b82da841ba89968d360d7c2560ae740b4",
      "parents": [
        "1e73203cd1157a03facc41ffb54050f5b28e55bd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:28 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:28 2012 +0200"
      },
      "message": "PM / Sleep: Mitigate race between the freezer and request_firmware()\n\nThere is a race condition between the freezer and request_firmware()\nsuch that if request_firmware() is run on one CPU and\nfreeze_processes() is run on another CPU and usermodehelper_disable()\ncalled by it succeeds to grab umhelper_sem for writing before\nusermodehelper_read_trylock() called from request_firmware()\nacquires it for reading, the request_firmware() will fail and\ntrigger a WARN_ON() complaining that it was called at a wrong time.\nHowever, in fact, it wasn\u0027t called at a wrong time and\nfreeze_processes() simply happened to be executed simultaneously.\n\nTo avoid this race, at least in some cases, modify\nusermodehelper_read_trylock() so that it doesn\u0027t fail if the\nfreezing of tasks has just started and hasn\u0027t been completed yet.\nInstead, during the freezing of tasks, it will try to freeze the\ntask that has called it so that it can wait until user space is\nthawed without triggering the scary warning.\n\nFor this purpose, change usermodehelper_disabled so that it can\ntake three different values, UMH_ENABLED (0), UMH_FREEZING and\nUMH_DISABLED.  The first one means that usermode helpers are\nenabled, the last one means \"hard disable\" (i.e. the system is not\nready for usermode helpers to be used) and the second one\nis reserved for the freezer.  Namely, when freeze_processes() is\nstarted, it sets usermodehelper_disabled to UMH_FREEZING which\ntells usermodehelper_read_trylock() that it shouldn\u0027t fail just\nyet and should call try_to_freeze() if woken up and cannot\nreturn immediately.  This way all freezable tasks that happen\nto call request_firmware() right before freeze_processes() is\nstarted and lose the race for umhelper_sem with it will be\nfrozen and will sleep until thaw_processes() unsets\nusermodehelper_disabled.  [For the non-freezable callers of\nrequest_firmware() the race for umhelper_sem against\nfreeze_processes() is unfortunately unavoidable.]\n\nReported-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "1e73203cd1157a03facc41ffb54050f5b28e55bd",
      "tree": "12781ea69aa706291949bb1a10141a8a043e09d9",
      "parents": [
        "7b5179ac14dbad945647ac9e76bbbf14ed9e0dbe"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:21 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 28 23:30:21 2012 +0200"
      },
      "message": "PM / Sleep: Move disabling of usermode helpers to the freezer\n\nThe core suspend/hibernation code calls usermodehelper_disable() to\navoid race conditions between the freezer and the starting of\nusermode helpers and each code path has to do that on its own.\nHowever, it is always called right before freeze_processes()\nand usermodehelper_enable() is always called right after\nthaw_processes().  For this reason, to avoid code duplication and\nto make the connection between usermodehelper_disable() and the\nfreezer more visible, make freeze_processes() call it and remove the\ndirect usermodehelper_disable() and usermodehelper_enable() calls\nfrom all suspend/hibernation code paths.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "37f08be11be9a7d9351fb1b9b408259519a126f3",
      "tree": "7edf402614ae9f36a6e9226b380072cec969c847",
      "parents": [
        "8671bbc1bd0442ef0eab27f7d56216431c490820"
      ],
      "author": {
        "name": "Marcos Paulo de Souza",
        "email": "marcos.mage@gmail.com",
        "time": "Tue Feb 21 23:57:47 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:08:54 2012 +0100"
      },
      "message": "PM / Freezer: Remove references to TIF_FREEZE in comments\n\nThis patch removes all the references in the code about the TIF_FREEZE\nflag removed by commit a3201227f803ad7fd43180c5195dbe5a2bf998aa\n\n    freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE\n\nThere still are some references to TIF_FREEZE in\nDocumentation/power/freezing-of-tasks.txt, but it looks like that\ndocumentation needs more thorough work to reflect how the new\nfreezer works, and hence merely removing the references to TIF_FREEZE\nwon\u0027t really help. So I have not touched that part in this patch.\n\nSuggested-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Marcos Paulo de Souza \u003cmarcos.mage@gmail.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6c83b4818dd65eb17e633b6b629a81da7bed90b3",
      "tree": "97eddcc6d07daf0ea1be84c57e7a687b3d406151",
      "parents": [
        "7c95149b7f1f61201b12c73c4862a41bf2428961"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 11 00:00:34 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 13 16:26:05 2012 +0100"
      },
      "message": "PM / Sleep: Do not check wakeup too often in try_to_freeze_tasks()\n\nUse the observation that it is more efficient to check the wakeup\nvariable once before the loop reporting tasks that were not\nfrozen in try_to_freeze_tasks() than to do that in every step of that\nloop.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "379e0be812ab8a2a351e784b0c987788f5123090",
      "tree": "70f1e7ac57e198d0a94a89a65933da9a2ca35ccc",
      "parents": [
        "fe9161db2e6053da21e4649d77bbefaf3030b11d"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Fri Feb 03 22:22:41 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 04 22:23:05 2012 +0100"
      },
      "message": "PM / Freezer: Thaw only kernel threads if freezing of kernel threads fails\n\nIf freezing of kernel threads fails, we are expected to automatically\nthaw tasks in the error recovery path. However, at times, we encounter\nsituations in which we would like the automatic error recovery path\nto thaw only the kernel threads, because we want to be able to do\nsome more cleanup before we thaw userspace. Something like:\n\nerror \u003d freeze_kernel_threads();\nif (error) {\n\t/* Do some cleanup */\n\n\t/* Only then thaw userspace tasks*/\n\tthaw_processes();\n}\n\nAn example of such a situation is where we freeze/thaw filesystems\nduring suspend/hibernation. There, if freezing of kernel threads\nfails, we would like to thaw the frozen filesystems before thawing\nthe userspace tasks.\n\nSo, modify freeze_kernel_threads() to thaw only kernel threads in\ncase of freezing failure. And change suspend_freeze_processes()\naccordingly. (At the same time, let us also get rid of the rather\ncryptic usage of the conditional operator (:?) in that function.)\n\n[rjw: In fact, this patch fixes a regression introduced during the\n 3.3 merge window, because without it thaw_processes() may be called\n before swsusp_free() in some situations and that may lead to massive\n memory allocation failures.]\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "181e9bdef37bfcaa41f3ab6c948a2a0d60a268b5",
      "tree": "66e69f83b63e8517a47e0eb0e7ae730d8a9a109b",
      "parents": [
        "0a9626575400879d1d5e6bc8768188b938d7c501"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:35:52 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:35:52 2012 +0100"
      },
      "message": "PM / Hibernate: Fix s2disk regression related to freezing workqueues\n\nCommit 2aede851ddf08666f68ffc17be446420e9d2a056\n\n  PM / Hibernate: Freeze kernel threads after preallocating memory\n\nintroduced a mechanism by which kernel threads were frozen after\nthe preallocation of hibernate image memory to avoid problems with\nfrozen kernel threads not responding to memory freeing requests.\nHowever, it overlooked the s2disk code path in which the\nSNAPSHOT_CREATE_IMAGE ioctl was run directly after SNAPSHOT_FREE,\nwhich caused freeze_workqueues_begin() to BUG(), because it saw\nthat worqueues had been already frozen.\n\nAlthough in principle this issue might be addressed by removing\nthe relevant BUG_ON() from freeze_workqueues_begin(), that would\nreintroduce the very problem that commit 2aede851ddf08666f68ffc17be4\nattempted to avoid into that particular code path.  For this reason,\nto fix the issue at hand, introduce thaw_kernel_threads() and make\nthe SNAPSHOT_FREE ioctl execute it.\n\nSpecial thanks to Srivatsa S. Bhat for detailed analysis of the\nproblem.\n\nReported-and-tested-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "839e3407d90a810318d17c17ceb3d5928a910704",
      "tree": "9b75e8f69cadba5d33537698931cf637a22d423b",
      "parents": [
        "37ad8aca94a1da2112a7c56151390914e80d1113"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:26 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:26 2011 -0800"
      },
      "message": "freezer: remove unused @sig_only from freeze_task()\n\nAfter \"freezer: make freezing() test freeze conditions in effect\ninstead of TIF_FREEZE\", freezing() returns authoritative answer on\nwhether the current task should freeze or not and freeze_task()\ndoesn\u0027t need or use @sig_only.  Remove it.\n\nWhile at it, rewrite function comment for freeze_task() and rename\n@sig_only to @user_only in try_to_freeze_tasks().\n\nThis patch doesn\u0027t cause any functional change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "a3201227f803ad7fd43180c5195dbe5a2bf998aa",
      "tree": "1845ba06346f8a8772fe1c90f8960bd1a430d05c",
      "parents": [
        "22b4e111fa01a1147aa562ceaf18a752a928ef4e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:25 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:25 2011 -0800"
      },
      "message": "freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE\n\nUsing TIF_FREEZE for freezing worked when there was only single\nfreezing condition (the PM one); however, now there is also the\ncgroup_freezer and single bit flag is getting clumsy.\nthaw_processes() is already testing whether cgroup freezing in in\neffect to avoid thawing tasks which were frozen by both PM and cgroup\nfreezers.\n\nThis is racy (nothing prevents race against cgroup freezing) and\nfragile.  A much simpler way is to test actual freeze conditions from\nfreezing() - ie. directly test whether PM or cgroup freezing is in\neffect.\n\nThis patch adds variables to indicate whether and what type of\nfreezing conditions are in effect and reimplements freezing() such\nthat it directly tests whether any of the two freezing conditions is\nactive and the task should freeze.  On fast path, freezing() is still\nvery cheap - it only tests system_freezing_cnt.\n\nThis makes the clumsy dancing aroung TIF_FREEZE unnecessary and\nfreeze/thaw operations more usual - updating state variables for the\nnew state and nudging target tasks so that they notice the new state\nand comply.  As long as the nudging happens after state update, it\u0027s\nrace-free.\n\n* This allows use of freezing() in freeze_task().  Replace the open\n  coded tests with freezing().\n\n* p !\u003d current test is added to warning printing conditions in\n  try_to_freeze_tasks() failure path.  This is necessary as freezing()\n  is now true for the task which initiated freezing too.\n\n-v2: Oleg pointed out that re-freezing FROZEN cgroup could increment\n     system_freezing_cnt.  Fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e  (for the cgroup portions)\n"
    },
    {
      "commit": "22b4e111fa01a1147aa562ceaf18a752a928ef4e",
      "tree": "f4b29f532678c72edf99bb8df3ba64d526bc8a3c",
      "parents": [
        "03afed8bc296fa70186ba832c1126228bb992465"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:25 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:25 2011 -0800"
      },
      "message": "cgroup_freezer: prepare for removal of TIF_FREEZE\n\nTIF_FREEZE will be removed soon and freezing() will directly test\nwhether any freezing condition is in effect.  Make the following\nchanges in preparation.\n\n* Rename cgroup_freezing_or_frozen() to cgroup_freezing() and make it\n  return bool.\n\n* Make cgroup_freezing() access task_freezer() under rcu read lock\n  instead of task_lock().  This makes the state dereferencing racy\n  against task moving to another cgroup; however, it was already racy\n  without this change as -\u003estate dereference wasn\u0027t synchronized.\n  This will be later dealt with using attach hooks.\n\n* freezer-\u003estate is now set before trying to push tasks into the\n  target state.\n\n-v2: Oleg pointed out that freeze_change_state() was setting\n     freeze-\u003estate incorrectly to CGROUP_FROZEN instead of\n     CGROUP_FREEZING.  Fixed.\n\n-v3: Matt pointed out that setting CGROUP_FROZEN used to always invoke\n     try_to_freeze_cgroup() regardless of the current state.  Patch\n     updated such that the actual freeze/thaw operations are always\n     performed on invocation.  This shouldn\u0027t make any difference\n     unless something is broken.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "03afed8bc296fa70186ba832c1126228bb992465",
      "tree": "96d0a6a9bffdcfc678d31f21caa88e43693bde94",
      "parents": [
        "376fede80e74d98b49d1ba9ac18f23c9fd026ddd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "message": "freezer: clean up freeze_processes() failure path\n\nfreeze_processes() failure path is rather messy.  Freezing is canceled\nfor workqueues and tasks which aren\u0027t frozen yet but frozen tasks are\nleft alone and should be thawed by the caller and of course some\ncallers (xen and kexec) didn\u0027t do it.\n\nThis patch updates __thaw_task() to handle cancelation correctly and\nmakes freeze_processes() and freeze_kernel_threads() call\nthaw_processes() on failure instead so that the system is fully thawed\non failure.  Unnecessary [suspend_]thaw_processes() calls are removed\nfrom kernel/power/hibernate.c, suspend.c and user.c.\n\nWhile at it, restructure error checking if clause in suspend_prepare()\nto be less weird.\n\n-v2: Srivatsa spotted missing removal of suspend_thaw_processes() in\n     suspend_prepare() and error in commit message.  Updated.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "85f1d476653f52c97ca75466b2494e67c1cbd25d",
      "tree": "a1839143272cc4e6593e5d4c97e8a3c39aed08ff",
      "parents": [
        "6907483b4e803a20f0b48cc9afa3817420ce61c5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "message": "freezer: test freezable conditions while holding freezer_lock\n\ntry_to_freeze_tasks() and thaw_processes() use freezable() and\nfrozen() as preliminary tests before initiating operations on a task.\nThese are done without any synchronization and hinder with\nsynchronization cleanup without any real performance benefits.\n\nIn try_to_freeze_tasks(), open code self test and move PF_NOFREEZE and\nfrozen() tests inside freezer_lock in freeze_task().\n\nthaw_processes() can simply drop freezable() test as frozen() test in\n__thaw_task() is enough.\n\nNote: This used to be a part of larger patch to fix set_freezable()\n      race.  Separated out to satisfy ordering among dependent fixes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "6907483b4e803a20f0b48cc9afa3817420ce61c5",
      "tree": "9f4b7cbe59eae0c6f59d704e4f465d537c172479",
      "parents": [
        "0c9af09262864a2744091ee94c98c4a8fd60c98b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "message": "freezer: make freezing indicate freeze condition in effect\n\nCurrently freezing (TIF_FREEZE) and frozen (PF_FROZEN) states are\ninterlocked - freezing is set to request freeze and when the task\nactually freezes, it clears freezing and sets frozen.\n\nThis interlocking makes things more complex than necessary - freezing\ndoesn\u0027t mean there\u0027s freezing condition in effect and frozen doesn\u0027t\nmatch the task actually entering and leaving frozen state (it\u0027s\ncleared by the thawing task).\n\nThis patch makes freezing indicate that freeze condition is in effect.\nA task enters and stays frozen if freezing.  This makes PF_FROZEN\nmanipulation done only by the task itself and prevents wakeup from\n__thaw_task() leaking outside of refrigerator.\n\nThe only place which needs to tell freezing \u0026\u0026 !frozen is\ntry_to_freeze_task() to whine about tasks which don\u0027t enter frozen.\nIt\u0027s updated to test the condition explicitly.\n\nWith the change, frozen() state my linger after __thaw_task() until\nthe task wakes up and exits fridge.  This can trigger BUG_ON() in\nupdate_if_frozen().  Work it around by testing freezing() \u0026\u0026 frozen()\ninstead of frozen().\n\n-v2: Oleg pointed out missing re-check of freezing() when trying to\n     clear FROZEN and possible spurious BUG_ON() trigger in\n     update_if_frozen().  Both fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "0c9af09262864a2744091ee94c98c4a8fd60c98b",
      "tree": "e7dacbb7f370e0d7c515ed743a2c5b5179a1de5e",
      "parents": [
        "6cd8dedcdd8e8de01391a7cf25f0b2afeb24f8f4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:24 2011 -0800"
      },
      "message": "freezer: use dedicated lock instead of task_lock() + memory barrier\n\nFreezer synchronization is needlessly complicated - it\u0027s by no means a\nhot path and the priority is staying unintrusive and safe.  This patch\nmakes it simply use a dedicated lock instead of piggy-backing on\ntask_lock() and playing with memory barriers.\n\nOn the failure path of try_to_freeze_tasks(), locking is moved from it\nto cancel_freezing().  This makes the frozen() test racy but the race\nhere is a non-issue as the warning is printed for tasks which failed\nto enter frozen for 20 seconds and race on PF_FROZEN at the last\nmoment doesn\u0027t change anything.\n\nThis simplifies freezer implementation and eases further changes\nincluding some race fixes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6cd8dedcdd8e8de01391a7cf25f0b2afeb24f8f4",
      "tree": "2b4b5d40fb4c66ac73839f6a37fb2de4786efc38",
      "parents": [
        "a585042f7b933539a0b6bc63650c2d49ffb2e55d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "message": "freezer: don\u0027t distinguish nosig tasks on thaw\n\nThere\u0027s no point in thawing nosig tasks before others.  There\u0027s no\nordering requirement between the two groups on thaw, which the staged\nthawing can\u0027t guarantee anyway.  Simplify thaw_processes() by removing\nthe distinction and collapsing thaw_tasks() into thaw_processes().\nThis will help further updates to freezer.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a585042f7b933539a0b6bc63650c2d49ffb2e55d",
      "tree": "bb93d05050e04c4bcd53fdf535239e6312fb62e2",
      "parents": [
        "a5be2d0d1a8746e7be5210e3d6b904455000443c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "message": "freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks\n\nclear_freeze_flag() in exit_mm() is racy.  Freezing can start\nafterwards.  Remove it.  Skipping freezer for exiting task will be\nproperly implemented later.\n\nAlso, freezable() was testing exit_state directly to make system\nfreezer ignore dead tasks.  Let the exiting task set PF_NOFREEZE after\nentering TASK_DEAD instead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "a5be2d0d1a8746e7be5210e3d6b904455000443c",
      "tree": "1dcfa2725057a73059a3f768f5f5f7825b5d56ef",
      "parents": [
        "8a32c441c1609f80e55df75422324a1151208f40"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "message": "freezer: rename thaw_process() to __thaw_task() and simplify the implementation\n\nthaw_process() now has only internal users - system and cgroup\nfreezers.  Remove the unnecessary return value, rename, unexport and\ncollapse __thaw_process() into it.  This will help further updates to\nthe freezer code.\n\n-v3: oom_kill grew a use of thaw_process() while this patch was\n     pending.  Convert it to use __thaw_task() for now.  In the longer\n     term, this should be handled by allowing tasks to die if killed\n     even if it\u0027s frozen.\n\n-v2: minor style update as suggested by Matt.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\n"
    },
    {
      "commit": "2aede851ddf08666f68ffc17be446420e9d2a056",
      "tree": "f63a0477c9fe618cd374065bac4cb5f172aaf7db",
      "parents": [
        "8f88893c05f2f677f18f2ce5591b4bed5d4a7535"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:32:27 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:28:52 2011 +0200"
      },
      "message": "PM / Hibernate: Freeze kernel threads after preallocating memory\n\nThere is a problem with the current ordering of hibernate code which\nleads to deadlocks in some filesystems\u0027 memory shrinkers.  Namely,\nsome filesystems use freezable kernel threads that are inactive when\nthe hibernate memory preallocation is carried out.  Those same\nfilesystems use memory shrinkers that may be triggered by the\nhibernate memory preallocation.  If those memory shrinkers wait for\nthe frozen kernel threads, the hibernate process deadlocks (this\nhappens with XFS, for one example).\n\nApparently, it is not technically viable to redesign the filesystems\nin question to avoid the situation described above, so the only\npossible solution of this issue is to defer the freezing of kernel\nthreads until the hibernate memory preallocation is done, which is\nimplemented by this change.\n\nUnfortunately, this requires the memory preallocation to be done\nbefore the \"prepare\" stage of device freeze, so after this change the\nonly way drivers can allocate additional memory for their freeze\nroutines in a clean way is to use PM notifiers.\n\nReported-by: Christoph \u003ccr2005@u-club.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "58a69cb47ec6991bf006a3e5d202e8571b0327a4",
      "tree": "56abdf817649c352f70bff3263f9351ed6c42062",
      "parents": [
        "7576958a9d5a4a677ad7dd40901cdbb6c1110c98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 09:25:31 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:48:59 2011 +0100"
      },
      "message": "workqueue, freezer: unify spelling of \u0027freeze\u0027 + \u0027able\u0027 to \u0027freezable\u0027\n\nThere are two spellings in use for \u0027freeze\u0027 + \u0027able\u0027 - \u0027freezable\u0027 and\n\u0027freezeable\u0027.  The former is the more prominent one.  The latter is\nmostly used by workqueue and in a few other odd places.  Unify the\nspelling to \u0027freezable\u0027.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a2867e08c8e3bdbc00caf56bc3bdde19ccc058e3",
      "tree": "34cee3dede448f30bb100d8301c422f481678bcc",
      "parents": [
        "1e75227ef0571031cd18536ab768ee35667ec5b9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 03 22:58:31 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:42 2010 +0100"
      },
      "message": "PM / Wakeup: Replace pm_check_wakeup_events() with pm_wakeup_pending()\n\nTo avoid confusion with the meaning and return value of\npm_check_wakeup_events() replace it with pm_wakeup_pending() that\nwill work the other way around (ie. return true when system-wide\npower transition should be aborted).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8cfe400ca54fd1ed96f962bea5f7e20b09b6d69f",
      "tree": "393f1eb68d2497b04778c2e062fc4e1450df33eb",
      "parents": [
        "133f1128b2bf178a1976b17c54bd14ce6feb90bf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Nov 26 23:07:27 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:40 2010 +0100"
      },
      "message": "Freezer: Fix a race during freezing of TASK_STOPPED tasks\n\nAfter calling freeze_task(), try_to_freeze_tasks() see whether the\ntask is stopped or traced and if so, considers it to be frozen;\nhowever, nothing guarantees that either the task being frozen sees\nTIF_FREEZE or the freezer sees TASK_STOPPED -\u003e TASK_RUNNING\ntransition.  The task being frozen may wake up and not see TIF_FREEZE\nwhile the freezer fails to notice the transition and believes the task\nis still stopped.\n\nThis patch fixes the race by making freeze_task() always go through\nfake_signal_wake_up() for applicable tasks.  The function goes through\nthe target task\u0027s scheduler lock and thus guarantees that either the\ntarget sees TIF_FREEZE or try_to_freeze_task() sees TASK_RUNNING.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dbeeec5fe868f2e2e92fe94daa2c5a047240fdc4",
      "tree": "165c04443d737c0e8524e9917a6e4a338c397391",
      "parents": [
        "5fc62aad4e7779c2f04691e48b351d08c050c1f1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Oct 04 22:07:32 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:49 2010 +0200"
      },
      "message": "PM: Allow wakeup events to abort freezing of tasks\n\nIf there is a wakeup event during the freezing of tasks, suspend or\nhibernation will fail anyway.  Since try_to_freeze_tasks() can take\nup to 20 seconds to complete or fail, aborting it as soon as a wakeup\nevent is detected improves the worst case wakeup latency.\n\nBased on a patch from Arve Hjønnevåg.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\n"
    },
    {
      "commit": "a0a1a5fd4fb15ec61117c759fe9f5c16c53d9e9c",
      "tree": "6df8eddcaeff6cde892c8cae6bdfa7653805e144",
      "parents": [
        "1e19ffc63dbbaea7a7d1c63d99c38d3e5a4c7edf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:12 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:12 2010 +0200"
      },
      "message": "workqueue: reimplement workqueue freeze using max_active\n\nCurrently, workqueue freezing is implemented by marking the worker\nfreezeable and calling try_to_freeze() from dispatch loop.\nReimplement it using cwq-\u003elimit so that the workqueue is frozen\ninstead of the worker.\n\n* workqueue_struct-\u003esaved_max_active is added which stores the\n  specified max_active on initialization.\n\n* On freeze, all cwq-\u003emax_active\u0027s are quenched to zero.  Freezing is\n  complete when nr_active on all cwqs reach zero.\n\n* On thaw, all cwq-\u003emax_active\u0027s are restored to wq-\u003esaved_max_active\n  and the worklist is repopulated.\n\nThis new implementation allows having single shared pool of workers\nper cpu.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "5a7aadfe2fcb0f69e2acc1fbefe22a096e792fc9",
      "tree": "dc1b649fc6aa05ecd25cab23e464894e660830d5",
      "parents": [
        "4f598458ea4450f53e8ed929ee4e66b3404a7286"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Fri Mar 26 23:51:44 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 26 23:51:44 2010 +0100"
      },
      "message": "Freezer: Fix buggy resume test for tasks frozen with cgroup freezer\n\nWhen the cgroup freezer is used to freeze tasks we do not want to thaw\nthose tasks during resume. Currently we test the cgroup freezer\nstate of the resuming tasks to see if the cgroup is FROZEN.  If so\nthen we don\u0027t thaw the task. However, the FREEZING state also indicates\nthat the task should remain frozen.\n\nThis also avoids a problem pointed out by Oren Ladaan: the freezer state\ntransition from FREEZING to FROZEN is updated lazily when userspace reads\nor writes the freezer.state file in the cgroup filesystem. This means that\nresume will thaw tasks in cgroups which should be in the FROZEN state if\nthere is no read/write of the freezer.state file to trigger this\ntransition before suspend.\n\nNOTE: Another \"simple\" solution would be to always update the cgroup\nfreezer state during resume. However it\u0027s a bad choice for several reasons:\nUpdating the cgroup freezer state is somewhat expensive because it requires\nwalking all the tasks in the cgroup and checking if they are each frozen.\nWorse, this could easily make resume run in N^2 time where N is the number\nof tasks in the cgroup. Finally, updating the freezer state from this code\npath requires trickier locking because of the way locks must be ordered.\n\nInstead of updating the freezer state we rely on the fact that lazy\nupdates only manage the transition from FREEZING to FROZEN. We know that\na cgroup with the FREEZING state may actually be FROZEN so test for that\nstate too. This makes sense in the resume path even for partially-frozen\ncgroups -- those that really are FREEZING but not FROZEN.\n\nReported-by: Oren Ladaan \u003corenl@cs.columbia.edu\u003e\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4f598458ea4450f53e8ed929ee4e66b3404a7286",
      "tree": "7947a560c241edc3320436406b13cdbb464bb202",
      "parents": [
        "e1ee65d85904c5dd4b9cea1b15d5e85e20eae8a1"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Wed Mar 10 22:59:13 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 26 23:51:13 2010 +0100"
      },
      "message": "Freezer: Only show the state of tasks refusing to freeze\n\nshow_state will dump all tasks state, so if freezer failed to freeze\nany task, kernel will dump all tasks state and flood the dmesg log.\nThis patch makes freezer only show state of tasks refusing to freeze.\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "be404f0212ffa8f67361f8ee460a25d901d88991",
      "tree": "f3f30529e574a935c121926267e38b05388e3095",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 08 22:47:30 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Oct 28 22:53:09 2009 +0100"
      },
      "message": "PM / freezer: Don\u0027t get over-anxious while waiting\n\nFreezing isn\u0027t exactly the most latency sensitive operation and\nthere\u0027s no reason to burn cpu cycles and power waiting for it to\ncomplete.  msleep(10) instead of yield().  This should improve\nreliability of emergency hibernation.\n\n[rjw: Modified the comment next to the msleep(10).]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "1a8670a29b5277cbe601f74ab63d2c5211fb3005",
      "tree": "1b2ca94009c1f3d7ff05bbda3b8956631e3f38d9",
      "parents": [
        "0b21767637c3c99890a248fe47ac414e51cf5eb7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:03:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "oom: move oom_killer_enable()/oom_killer_disable to where they belong\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f33d49a2ed546e01f7b1d0607661810f2421859",
      "tree": "8b05ac7ec2cd123efb266ecaa1bf0bd1487158f8",
      "parents": [
        "75927af8bcb940dad4fe281713d526cb520869ff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 16 15:32:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm, PM/Freezer: Disable OOM killer when tasks are frozen\n\nCurrently, the following scenario appears to be possible in theory:\n\n* Tasks are frozen for hibernation or suspend.\n* Free pages are almost exhausted.\n* Certain piece of code in the suspend code path attempts to allocate\n  some memory using GFP_KERNEL and allocation order less than or\n  equal to PAGE_ALLOC_COSTLY_ORDER.\n* __alloc_pages_internal() cannot find a free page so it invokes the\n  OOM killer.\n* The OOM killer attempts to kill a task, but the task is frozen, so\n  it doesn\u0027t die immediately.\n* __alloc_pages_internal() jumps to \u0027restart\u0027, unsuccessfully tries\n  to find a free page and invokes the OOM killer.\n* No progress can be made.\n\nAlthough it is now hard to trigger during hibernation due to the memory\nshrinking carried out by the hibernation code, it is theoretically\npossible to trigger during suspend after the memory shrinking has been\nremoved from that code path.  Moreover, since memory allocations are\ngoing to be used for the hibernation memory shrinking, it will be even\nmore likely to happen during hibernation.\n\nTo prevent it from happening, introduce the oom_killer_disabled switch\nthat will cause __alloc_pages_internal() to fail in the situations in\nwhich the OOM killer would have been called and make the freezer set\nthis switch after tasks have been successfully frozen.\n\n[akpm@linux-foundation.org: be nicer to the namespace]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Fengguang Wu \u003cfengguang.wu@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a06915c6df9b89cda5ddb3f8cce5f9a6be534d2",
      "tree": "9c2cd3c928e1e29e34dcc90ea45deab12653c111",
      "parents": [
        "dc52ddc0e6f45b04780b26fc0813509f8e798c42"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Sat Oct 18 20:27:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:34 2008 -0700"
      },
      "message": "container freezer: skip frozen cgroups during power management resume\n\nWhen a system is resumed after a suspend, it will also unfreeze frozen\ncgroups.\n\nThis patchs modifies the resume sequence to skip the tasks which are part\nof a frozen control group.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nTested-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8174f1503f4bf7e9a14b3fbbfdb30c6be6e29f77",
      "tree": "a8df1ebd62255dd231452b3f72782604e8919991",
      "parents": [
        "83224b08372be48d5fcefedc4886457da29130c8"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Sat Oct 18 20:27:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:33 2008 -0700"
      },
      "message": "container freezer: make refrigerator always available\n\nNow that the TIF_FREEZE flag is available in all architectures, extract\nthe refrigerator() and freeze_task() from kernel/power/process.c and make\nit available to all.\n\nThe refrigerator() can now be used in a control group subsystem\nimplementing a control group freezer.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nTested-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0af566da6e9a4a2f5a83c5a70f3d0a772050e21",
      "tree": "4f7a4819abfde03938bb95c525ed652bcfe40a52",
      "parents": [
        "e41fb7c58e3ca18ec5c9c9bb7bb68e8e653c9e8e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jul 23 21:28:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:24 2008 -0700"
      },
      "message": "pm: fix try_to_freeze_tasks()\u0027s use of do_div()\n\nFix try_to_freeze_tasks()\u0027s use of do_div() on an s64 by making\nelapsed_csecs64 a u64 instead and dividing that.\n\nPossibly this should be guarded lest the interval calculation turn up\nnegative, but the possible negativity of the result of the division is\ncast away anyway.\n\nThis was introduced by patch 438e2ce68dfd4af4cfcec2f873564fb921db4bb5.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebb12db51f6c13b30752fcf506baad4c617b153c",
      "tree": "55c08b82463ffd5b78a8bc4a4748261b02391593",
      "parents": [
        "d20a4dca47d2cd027ed58a13f91b424affd1f449"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 11 22:04:29 2008 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed Jul 16 23:27:03 2008 +0200"
      },
      "message": "Freezer: Introduce PF_FREEZER_NOSIG\n\nThe freezer currently attempts to distinguish kernel threads from\nuser space tasks by checking if their mm pointer is unset and it\ndoes not send fake signals to kernel threads.  However, there are\nkernel threads, mostly related to networking, that behave like\nuser space tasks and may want to be sent a fake signal to be frozen.\n\nIntroduce the new process flag PF_FREEZER_NOSIG that will be set\nby default for all kernel threads and make the freezer only send\nfake signals to the tasks having PF_FREEZER_NOSIG unset.  Provide\nthe set_freezable_with_signal() function to be called by the kernel\nthreads that want to be sent a fake signal for freezing.\n\nThis patch should not change the freezer\u0027s observable behavior.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "13b1c3d4b49bd83d861c775ca2db54e1692a1b07",
      "tree": "6cefdfef300d3431f2b2b32ec86000b0132bd762",
      "parents": [
        "976dde010e513a9c7c3117a32b7b015f84b37430"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Mon Mar 03 20:22:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 07:59:54 2008 -0800"
      },
      "message": "freezer vs stopped or traced\n\nThis changes the \"freezer\" code used by suspend/hibernate in its treatment\nof tasks in TASK_STOPPED (job control stop) and TASK_TRACED (ptrace) states.\n\nAs I understand it, the intent of the \"freezer\" is to hold all tasks\nfrom doing anything significant.  For this purpose, TASK_STOPPED and\nTASK_TRACED are \"frozen enough\".  It\u0027s possible the tasks might resume\nfrom ptrace calls (if the tracer were unfrozen) or from signals\n(including ones that could come via timer interrupts, etc).  But this\ndoesn\u0027t matter as long as they quickly block again while \"freezing\" is\nin effect.  Some minor adjustments to the signal.c code make sure that\ntry_to_freeze() very shortly follows all wakeups from both kinds of\nstop.  This lets the freezer code safely leave stopped tasks unmolested.\n\nChanging this fixes the longstanding bug of seeing after resuming from\nsuspend/hibernate your shell report \"[1] Stopped\" and the like for all\nyour jobs stopped by ^Z et al, as if you had freshly fg\u0027d and ^Z\u0027d them.\nIt also removes from the freezer the arcane special case treatment for\nptrace\u0027d tasks, which relied on intimate knowledge of ptrace internals.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2f60e5faa9aef9a08d0abaee2007e5a0800d2c5",
      "tree": "e85f413bbfe4fe906249c53d553faf52768efec5",
      "parents": [
        "e64d66c8edf11629aa203328daf898775ee27dd4"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:06:01 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:34:47 2007 -0500"
      },
      "message": "power: Use task_is_*\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "438e2ce68dfd4af4cfcec2f873564fb921db4bb5",
      "tree": "685262ee1f983001db52df4253548f03d98dd33f",
      "parents": [
        "b842ee578eeb2c10303725e28edca130ede0397c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:19 2007 -0700"
      },
      "message": "freezer: measure freezing time\n\nMeasure the time of the freezing of tasks, even if it doesn\u0027t fail.\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@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b842ee578eeb2c10303725e28edca130ede0397c",
      "tree": "d78d1f72aff5e45bcc49fe87101264853eb39334",
      "parents": [
        "f059bca1c57f665211dc23de1fb31c1849b65c7b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:19 2007 -0700"
      },
      "message": "freezer: be more verbose\n\nIncrease the freezer\u0027s verbosity a bit, so that it\u0027s easier to read problem\nreports related to it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5d8c5976d6adeddb8208c240460411e2198b393",
      "tree": "bc7ee9762366c3790f0c0c84e8de73487b5ef261",
      "parents": [
        "e42837bcd35b75bb59ae5d3e62f87be1aeeb05c3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:19 2007 -0700"
      },
      "message": "freezer: do not send signals to kernel threads\n\nThe freezer should not send signals to kernel threads, since that may lead to\nsubtle problems.  In particular, commit\nb74d0deb968e1f85942f17080eace015ce3c332c has changed recalc_sigpending_tsk()\nso that it doesn\u0027t clear TIF_SIGPENDING.  For this reason, if the freezer\ncontinues to send fake signals to kernel threads and the freezing of kernel\nthreads fails, some of them may be running with TIF_SIGPENDING set forever.\n\nAccordingly, recalc_sigpending_tsk() shouldn\u0027t set the task\u0027s TIF_SIGPENDING\nflag if TIF_FREEZE is set.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "232b14328050a4639130b0dec185f43968e72035",
      "tree": "eb3b525278bd3efd5403bc4f5cfb3e41614d40c4",
      "parents": [
        "2776365370b579afc36cff14dc70a567b66f0378"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "freezer: do not sync filesystems from freeze_processes\n\nThe syncing of filesystems from within the freezer is generally not needed.\nAlso, if there\u0027s an ext3 filesystem loopback-mounted from a FUSE one, the\nsyncing results in writes to it and deadlocks.  Similarly, it will deadlock if\nFUSE implements sync.\n\nChange freeze_processes() so that it doesn\u0027t execute sys_sync() and make the\nsuspend and hibernation code path sync filesystems independently of the\nfreezer.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2cf7d87d804c66e063829d5ca739053e901dc15",
      "tree": "0c8217d9dca6a3ffcf4073315a6a8f6328639b3a",
      "parents": [
        "e7cd8a722745a01bcfac4d4a52d53391d177da20"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: remove redundant check in try_to_freeze_tasks\n\nWe don\u0027t need to check if todo is positive before calling time_after() in\ntry_to_freeze_tasks(), because if todo is zero at this point, the loop will be\nbroken anyway due to the while () condition being false.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7cd8a722745a01bcfac4d4a52d53391d177da20",
      "tree": "45c7e57cac39a6aa90d1c5f6682ddd12bdc8315a",
      "parents": [
        "f4a3a7d60c9c9a961e4c970f6eb41dd1c9d3ec21"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: return int from freeze_processes\n\nMake try_to_freeze_tasks() and freeze_processes() return -EBUSY on failure\ninstead of the number of unfrozen tasks (none of the callers actually uses\nthis number).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4a3a7d60c9c9a961e4c970f6eb41dd1c9d3ec21",
      "tree": "adc1687ad3f8bf9e01e8fd3029f8f40196d9d2e5",
      "parents": [
        "0c1eecfb345401629aa57c9d3b077273e56c45a7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: use __set_current_state in refrigerator\n\nUse __set_current_state() as appropriate in refrigerator() instead of\naccessing current-\u003estate directly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c1eecfb345401629aa57c9d3b077273e56c45a7",
      "tree": "522d7090966c6e70f3147c30e3308781e0309938",
      "parents": [
        "b1457bcc3a00a0446c7f6e2f22fd24b6d8d0a309"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: avoid freezing kernel threads prematurely\n\nKernel threads should not have TIF_FREEZE set when user space processes are\nbeing frozen, since otherwise some of them might be frozen prematurely.\nTo prevent this from happening we can (1) make exit_mm() unset TIF_FREEZE\nunconditionally just after clearing tsk-\u003emm and (2) make try_to_freeze_tasks()\ncheck if p-\u003emm is different from zero and PF_BORROWED_MM is unset in p-\u003eflags\nwhen user space processes are to be frozen.\n\nNamely, when user space processes are being frozen, we only should set\nTIF_FREEZE for tasks that have p-\u003emm different from NULL and don\u0027t have\nPF_BORROWED_MM set in p-\u003eflags.  For this reason task_lock() must be used to\nprevent try_to_freeze_tasks() from racing with use_mm()/unuse_mm(), in which\np-\u003emm and p-\u003eflags.PF_BORROWED_MM are changed under task_lock(p).  Also, we\nneed to prevent the following scenario from happening:\n\n* daemonize() is called by a task spawned from a user space code path\n* freezer checks if the task has p-\u003emm set and the result is positive\n* task enters exit_mm() and clears its TIF_FREEZE\n* freezer sets TIF_FREEZE for the task\n* task calls try_to_freeze() and goes to the refrigerator, which is wrong at\n  that point\n\nThis requires us to acquire task_lock(p) before p-\u003eflags.PF_BORROWED_MM and\np-\u003emm are examined and release it after TIF_FREEZE is set for p (or it turns\nout that TIF_FREEZE should not be set).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "328616e3b76859f1abdd08a8df1ddbb7bb81f807",
      "tree": "c2f5bf6250159b19cff6f000f2f752b8924d6dc6",
      "parents": [
        "3ee6dafc677a68e461a7ddafc94a580ebab80735"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jul 19 01:47:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "freezer: run show_state() when freezing times out\n\nTo see which tasks are stuck where.\n\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bb44adef39ad3bda2be40bb34686bc56bd563a5",
      "tree": "1e9eecbd03877c7ac8b00a8cb1d4ae54ebec3bb1",
      "parents": [
        "3c6df2a9177c010bf811c361149069e4bfd9bb11"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed May 23 13:57:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:12 2007 -0700"
      },
      "message": "recalc_sigpending_tsk fixes\n\nSteve Hawkes discovered a problem where recalc_sigpending_tsk was called in\ndo_sigaction but no signal_wake_up call was made, preventing later signals\nfrom waking up blocked threads with TIF_SIGPENDING already set.\n\nIn fact, the few other calls to recalc_sigpending_tsk outside the signals\ncode are also subject to this problem in other race conditions.\n\nThis change makes recalc_sigpending_tsk private to the signals code.  It\nchanges the outside calls, as well as do_sigaction, to use the new\nrecalc_sigpending_and_wake instead.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: \u003cSteve.Hawkes@motorola.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88f18ba028b5939bb6f77bd690e5ad8d01bb24cc",
      "tree": "eea3f79f5098f7b45723f842208b44f860f0fb71",
      "parents": [
        "5fcc57f2d5d558056668159f9153bf21d2c53d16"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed May 23 13:57:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:11 2007 -0700"
      },
      "message": "freezer: move frozen_process() to kernel/power/process.c\n\nOther than refrigerator, no one else calls frozen_process().  So move it from\ninclude/linux/freezer.h to kernel/power/process.c.\n\nAlso, since a task can be marked as frozen by itself, we don\u0027t need to pass\nthe (struct task_struct *p) parameter to frozen_process().\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49b12d4f5e274517b8bc032d507abf31cc2f4150",
      "tree": "4663d224a86ea848742716f6f4ec708e9a3c04b3",
      "parents": [
        "ba96a0c88098697a63e80157718b7440414ed24d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 23 13:57:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:11 2007 -0700"
      },
      "message": "freezer: take kernel_execve into consideration\n\nKernel threads can become userland processes by calling kernel_execve().\n\nIn particular, this may happen right after the try_to_freeze_tasks()\ncalled with FREEZER_USER_SPACE has returned, so try_to_freeze_tasks()\nneeds to take userspace processes into consideration even if it is\ncalled with FREEZER_KERNEL_THREADS.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba96a0c88098697a63e80157718b7440414ed24d",
      "tree": "bdd999761eed452cc162f5b63166d1014aaf2e3e",
      "parents": [
        "33e1c288da62a6a5aa9077a6b7bfa690b1b02cf4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 23 13:57:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:11 2007 -0700"
      },
      "message": "freezer: fix vfork problem\n\nCurrently try_to_freeze_tasks() has to wait until all of the vforked processes\nexit and for this reason every user can make it fail.  To fix this problem we\ncan introduce the additional process flag PF_FREEZER_SKIP to be used by tasks\nthat do not want to be counted as freezable by the freezer and want to have\nTIF_FREEZE set nevertheless.  Then, this flag can be set by tasks using\nsys_vfork() before they call wait_for_completion(\u0026vfork) and cleared after\nthey have woken up.  After clearing it, the tasks should call try_to_freeze()\nas soon as possible.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33e1c288da62a6a5aa9077a6b7bfa690b1b02cf4",
      "tree": "68837483316db1fa08bcb2b444cabae75d31a5b2",
      "parents": [
        "585a2858b970cb6e2e5ca4877eefd18b4dba8ed4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 23 13:57:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:10 2007 -0700"
      },
      "message": "freezer: close potential race between refrigerator and thaw_tasks\n\nIf the freezing of tasks fails and a task is preempted in refrigerator()\nbefore calling frozen_process(), then thaw_tasks() may run before this task is\nfrozen.  In that case the task will freeze and no one will thaw it.\n\nTo fix this race we can call freezing(current) in refrigerator() along with\nfrozen_process(current) under the task_lock() which also should be taken in\nthe error path of try_to_freeze_tasks() as well as in thaw_process().\nMoreover, if thaw_process() additionally clears TIF_FREEZE for tasks that are\nnot frozen, we can be sure that all tasks are thawed and there are no pending\n\"freeze\" requests after thaw_tasks() has run.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1065d130dddc3241706c50a01ced7b03bcb657be",
      "tree": "86565a17abe3c126c13708207bdca671fbc5bc77",
      "parents": [
        "fca3b747795ae24f9667b6c9a69975f9eb98a2c0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue May 08 00:24:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:58 2007 -0700"
      },
      "message": "freezer: task-\u003eexit_state should be treated as bolean\n\nExcept for BUG_ON() checks, we should not use EXIT_XXXX defines outside of\nexit/wait paths.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "433ecb4ab312f873870b67ee374502e84f6dcf92",
      "tree": "6df7459af26ba1f09bfffcf7029a838037bb595a",
      "parents": [
        "e87be1143472d841c1907e6e7ae4862a30e3595c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun May 06 14:50:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:58 2007 -0700"
      },
      "message": "fix refrigerator() vs thaw_process() race\n\nrefrigerator() can miss a wakeup, \"wait event\" loop needs a proper memory\nordering.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a102eed9c4e1d21bad07a8fd97bd4fbf125d966",
      "tree": "9ec99f046b94971db46b08a87d7eab3e84c4acd4",
      "parents": [
        "3df494a32b936aef76d893f5065f962ebd9b9437"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 13 00:34:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] PM: Fix SMP races in the freezer\n\nCurrently, to tell a task that it should go to the refrigerator, we set the\nPF_FREEZE flag for it and send a fake signal to it.  Unfortunately there\nare two SMP-related problems with this approach.  First, a task running on\nanother CPU may be updating its flags while the freezer attempts to set\nPF_FREEZE for it and this may leave the task\u0027s flags in an inconsistent\nstate.  Second, there is a potential race between freeze_process() and\nrefrigerator() in which freeze_process() running on one CPU is reading a\ntask\u0027s PF_FREEZE flag while refrigerator() running on another CPU has just\nset PF_FROZEN for the same task and attempts to reset PF_FREEZE for it.  If\nthe refrigerator wins the race, freeze_process() will state that PF_FREEZE\nhasn\u0027t been set for the task and will set it unnecessarily, so the task\nwill go to the refrigerator once again after it\u0027s been thawed.\n\nTo solve first of these problems we need to stop using PF_FREEZE to tell\ntasks that they should go to the refrigerator.  Instead, we can introduce a\nspecial TIF_*** flag and use it for this purpose, since it is allowed to\nchange the other tasks\u0027 TIF_*** flags and there are special calls for it.\n\nTo avoid the freeze_process()-refrigerator() race we can make\nfreeze_process() to always check the task\u0027s PF_FROZEN flag after it\u0027s read\nits \"freeze\" flag.  We should also make sure that refrigerator() will\nalways reset the task\u0027s \"freeze\" flag after it\u0027s set PF_FROZEN for it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3df494a32b936aef76d893f5065f962ebd9b9437",
      "tree": "825a96b219eeb87ef7a627a2494cf4fa7cd4d03e",
      "parents": [
        "6a2d7a955d8de6cb19ed9cd194b3c83008a22c32"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 13 00:34:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] PM: Fix freezing of stopped tasks\n\nCurrently, if a task is stopped (ie.  it\u0027s in the TASK_STOPPED state), it\nis considered by the freezer as unfreezeable.  However, there may be a race\nbetween the freezer and the delivery of the continuation signal to the task\nresulting in the task running after we have finished freezing the other\ntasks.  This, in turn, may lead to undesirable effects up to and including\ndata corruption.\n\nTo prevent this from happening we first need to make the freezer consider\nstopped tasks as freezeable.  For this purpose we need to make freezeable()\nstop returning 0 for these tasks and we need to force them to enter the\nrefrigerator.  However, if there\u0027s no continuation signal in the meantime,\nthe stopped tasks should remain stopped after all processes have been\nthawed, so we need to send an additional SIGSTOP to each of them before\nwaking it up.\n\nAlso, a stopped task that has just been woken up should first check if\nthere\u0027s a freezing request for it and go to the refrigerator if that\u0027s the\ncase.\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": "11b2ce2ba90f801e2a5ebba4e6b7da72d87f2b13",
      "tree": "e7477edb04a15a3128523877558e1eb8694adbc9",
      "parents": [
        "a9b6f562f14dc28fb4b2415f0f275cede0abe9b5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: Untangle freeze_processes\n\nMove the loop from freeze_processes() to a separate function and call it\nindependently for user space processes and kernel threads so that the order\nof freezing tasks is clearly visible.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a9b6f562f14dc28fb4b2415f0f275cede0abe9b5",
      "tree": "8d83009585877bf4c5f263690468d35105058822",
      "parents": [
        "a6d70980602e6f1869ebcdcbfaf55a0a5941583e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: Untangle thaw_processes\n\nMove the loop from thaw_processes() to a separate function and call it\nindependently for kernel threads and user space processes so that the order\nof thawing tasks is clearly visible.\n\nDrop thaw_kernel_threads() which is never used.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3eb1b3a40722cbb46631db373af66d13d1e7ac81",
      "tree": "34b2d04387845a7074c5665269acc86b03812f0d",
      "parents": [
        "0d3a9abe8ae055e1052295698bcd0722c92eff47"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] suspend to disk fails if gdb is suspended with a traced child\n\nFix http://bugzilla.kernel.org/show_bug.cgi?id\u003d7534\n\nFix the freezing of processes so that it won\u0027t fail if there is a traced\nprocess the parent of which has been stopped.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: maurice barnum \u003cpixi+kbug@burble.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ff39593ad0ff7a79a3717edac6634407aa8200c2",
      "tree": "571e02e20d5d211224567d5cc22333196cf6f563",
      "parents": [
        "14b5b7cfaa110b1d25b8f80b01a8c97cf2db30bc"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: thaw userspace and kernel space separately\n\nModify process thawing so that we can thaw kernel space without thawing\nuserspace, and thaw kernelspace first.  This will be useful in later\npatches, where I intend to get swsusp thawing kernel threads only before\nseeking to free memory.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"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": "14b5b7cfaa110b1d25b8f80b01a8c97cf2db30bc",
      "tree": "0c07f82d699c2aedbd27bf38acfa4ff14d6951fc",
      "parents": [
        "32d50f57dab94d8c46566a903bbb633ee72fdcc2"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: clean up whitespace in freezer output\n\nMinor whitespace and formatting modifications for the freezer.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"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": "32d50f57dab94d8c46566a903bbb633ee72fdcc2",
      "tree": "ab56f3e10bd6eebd3f6ea0e27f68a00e53a6d32a",
      "parents": [
        "7dfb71030f7636a0d65200158113c37764552f93"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] swsusp: quieten Freezer if !CONFIG_PM_DEBUG\n\nThe freezer currently prints an \u0027\u003d\u0027 for every process that is frozen.  This\nis pretty pointless, as the equals sign says nothing about which process is\nfrozen, and makes logs look messier (especially if there were a large\nnumber of processes running).  All we really need to know is that we\nstarted trying to freeze processes and what processes (if any) failed to\nfreeze, or that we succeeded.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"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": "7dfb71030f7636a0d65200158113c37764552f93",
      "tree": "276b812903d377b16d8828e888552fd256f48aab",
      "parents": [
        "8a05aac2631aa0e6494d9dc990f8c68ed8b8fde7"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] Add include/linux/freezer.h and move definitions from sched.h\n\nMove process freezing functions from include/linux/sched.h to freezer.h, so\nthat modifications to the freezer or the kernel configuration don\u0027t require\nrecompiling just about everything.\n\n[akpm@osdl.org: fix ueagle driver]\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: \"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": "a7ef7878ea7c8bca9b624db3f61223cdadda2a0a",
      "tree": "3727435826f2fe3d054f0f3fbc3e60f2b37d8bad",
      "parents": [
        "f5d635f649607b09b0b4620d25d028fd2b1b7ea5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Aug 05 12:13:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:45 2006 -0700"
      },
      "message": "[PATCH] Make suspend possible with a traced process at a breakpoint\n\nIt should be possible to suspend, either to RAM or to disk, if there\u0027s a\ntraced process that has just reached a breakpoint.  However, this is a\nspecial case, because its parent process might have been frozen already and\nthen we are unable to deliver the \"freeze\" signal to the traced process.\nIf this happens, it\u0027s better to cancel the freezing of the traced process.\n\nRef. http://bugzilla.kernel.org/show_bug.cgi?id\u003d6787\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": "85b6bce3658a823aa169586fe71ffba0f12ccc71",
      "tree": "ad2ca0b501d2ff767889d15dfda22abec75f38c4",
      "parents": [
        "1a75a3f0680d9c4bc4761512658b6fd664032e18"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Fri Mar 31 02:30:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:50 2006 -0800"
      },
      "message": "[PATCH] Fix suspend with traced tasks\n\nstrace /bin/bash misbehaves after resume; this fixes it.\n\n(akpm: it\u0027s scary calling refrigerator() in state TASK_TRACED, but it seems to\ndo the right thing).\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": "02aaeb9b952f30b1ad6284d5d45be02030f679db",
      "tree": "6577fcc544d34fbc9951be5dc1089ac227440573",
      "parents": [
        "6e1819d615f24ce0726a7d0bd3dd0152d7b21654"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 23 03:00:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:08 2006 -0800"
      },
      "message": "[PATCH] swsusp: freeze user space processes first\n\nAllow swsusp to freeze processes successfully under heavy load by freezing\nuserspace processes before kernel threads.\n\n[Thanks to Nigel Cunningham \u003cnigel@suspend2.net\u003e for suggesting the\nway to go.]\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": "543cc27d09643640cbc34189c03a40beb8227aef",
      "tree": "034b4141ed5ac76b220d55c738a0eda668c1a490",
      "parents": [
        "74c7e2efbe37378026f00ad9e7253796d7b2fc99"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Thu Mar 23 03:00:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:07 2006 -0800"
      },
      "message": "[PATCH] swsusp: documentation updates\n\nUpdate suspend-to-RAM documentation with new machines, and makes message\nwhen processes can\u0027t be stopped little clearer.  (In one case, waiting\nlonger actually did help).\n\nFrom: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\n\n  Warn in the documentation that data may be lost if there are some\n  filesystems mounted from USB devices before suspend.\n\n  [Thanks to Alan Stern for providing the answer to the question in the\n  Q:-A: part.]\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\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": "6161b2ce8116b9a623260ab811e2c035b3fac2e5",
      "tree": "8cb36b11631c0843fb5a7e600626a2f6a230846b",
      "parents": [
        "99dc7d63e0dcb457580241055b2a39d011309db8"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sat Sep 03 15:57:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:17 2005 -0700"
      },
      "message": "[PATCH] pm: fix process freezing\n\nIf process freezing fails, some processes are frozen, and rest are left in\n\"were asked to be frozen\" state.  Thats wrong, we should leave it in some\nconsistent state.\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": "2a23b5d1e119fd10e25b8e93464c8d549f5a5c5d",
      "tree": "60eede3a1a0a92837c0207de2750880d9a309db1",
      "parents": [
        "52fdd08903a1d1162e184114837e232640191627"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sat Sep 03 15:56:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:14 2005 -0700"
      },
      "message": "[PATCH] remove busywait in refrigerator\n\nThis should make refrigerator sleep properly, not busywait after the first\nschedule() returns.\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": "1322ad41513f8f9196801f53cc0851df056f3478",
      "tree": "c7494232c8d2bb840368c664be256b93bf6696fa",
      "parents": [
        "47b724f3fe372a3d9acf0bb560fb5c93c9867880"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Thu Jul 07 17:56:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:43 2005 -0700"
      },
      "message": "[PATCH] pm: clean up process.c\n\nfreezeable() already tests for TRACED/STOPPED processes, no need to do it\ntwice.\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": "3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73",
      "tree": "d1e7c1e2e8902072042aefc3a7976b271cf76021",
      "parents": [
        "b3e112bcc19abd8e9657dca34a87316786e096f3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Fri Jun 24 23:13:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 17:10:13 2005 -0700"
      },
      "message": "[PATCH] Cleanup patch for process freezing\n\n1. Establish a simple API for process freezing defined in linux/include/sched.h:\n\n   frozen(process)\t\tCheck for frozen process\n   freezing(process)\t\tCheck if a process is being frozen\n   freeze(process)\t\tTell a process to freeze (go to refrigerator)\n   thaw_process(process)\tRestart process\n   frozen_process(process)\tProcess is frozen now\n\n2. Remove all references to PF_FREEZE and PF_FROZEN from all\n   kernel sources except sched.h\n\n3. Fix numerous locations where try_to_freeze is manually done by a driver\n\n4. Remove the argument that is no longer necessary from two function calls.\n\n5. Some whitespace cleanup\n\n6. Clear potential race in refrigerator (provides an open window of PF_FREEZE\n   cleared before setting PF_FROZEN, recalc_sigpending does not check\n   PF_FROZEN).\n\nThis patch does not address the problem of freeze_processes() violating the rule\nthat a task may only modify its own flags by setting PF_FREEZE. This is not clean\nin an SMP environment. freeze(process) is therefore not SMP safe!\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
