)]}'
{
  "log": [
    {
      "commit": "08913681e484f3f0db949dd0809012e089846216",
      "tree": "5fd37f75f1de49d21fb49bb4e51f2bd4f1dcf849",
      "parents": [
        "36f0bebd9865dc7e327777fca34b75e65cbfd1a6"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Dec 05 01:42:49 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:29 2008 -0800"
      },
      "message": "[NET]: Remove the empty net_table\n\nI have removed all the entries from this table (core_table,\nipv4_table and tr_table), so now we can safely drop it.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e51b6ba077791f2f8c876022b37419be7a2ceec3",
      "tree": "9d8ca18f3239eff84cad5b79b715c332970fa89d",
      "parents": [
        "23eb06de7d2d333a0f7ebba2da663e00c9c9483e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Nov 30 23:54:00 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:17 2008 -0800"
      },
      "message": "sysctl: Infrastructure for per namespace sysctls\n\nThis patch implements the basic infrastructure for per namespace sysctls.\n\nA list of lists of sysctl headers is added, allowing each namespace to have\nit\u0027s own list of sysctl headers.\n\nEach list of sysctl headers has a lookup function to find the first\nsysctl header in the list, allowing the lists to have a per namespace\ninstance.\n\nregister_sysct_root is added to tell sysctl.c about additional\nlists of sysctl_headers.  As all of the users are expected to be in\nkernel no unregister function is provided.\n\nsysctl_head_next is updated to walk through the list of lists.\n\n__register_sysctl_paths is added to add a new sysctl table on\na non-default sysctl list.\n\nThe only intrusive part of this patch is propagating the information\nto decided which list of sysctls to use for sysctl_check_table.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "23eb06de7d2d333a0f7ebba2da663e00c9c9483e",
      "tree": "2958ebaacc8d8fd4b1a4d1966c31e6395b5b634a",
      "parents": [
        "29e796fd4de54b8f5bc30d897611210ece4fd0f2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Nov 30 23:52:10 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:17 2008 -0800"
      },
      "message": "sysctl: Remember the ctl_table we passed to register_sysctl_paths\n\nBy doing this we allow users of register_sysctl_paths that build\nand dynamically allocate their ctl_table to be simpler.  This allows\nthem to just remember the ctl_table_header returned from\nregister_sysctl_paths from which they can now find the\nctl_table array they need to free.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "29e796fd4de54b8f5bc30d897611210ece4fd0f2",
      "tree": "a05b5e87e7b6c4d1820d892c4aabc438ccee58e5",
      "parents": [
        "be0ea7d5da3d99140bde7e5cea328eb111731700"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Nov 30 23:50:18 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:16 2008 -0800"
      },
      "message": "sysctl: Add register_sysctl_paths function\n\nThere are a number of modules that register a sysctl table\nsomewhere deeply nested in the sysctl hierarchy, such as\nfs/nfs, fs/xfs, dev/cdrom, etc.\n\nThey all specify several dummy ctl_tables for the path name.\nThis patch implements register_sysctl_path that takes\nan additional path name, and makes up dummy sysctl nodes\nfor each component.\n\nThis patch was originally written by Olaf Kirch and\nbrought to my attention and reworked some by Olaf Hering.\nI have changed a few additional things so the bugs are mine.\n\nAfter converting all of the easy callers Olaf Hering observed\nallyesconfig ARCH\u003di386, the patch reduces the final binary size by 9369 bytes.\n\n.text +897\n.data -7008\n\n   text    data     bss     dec     hex filename\n   26959310        4045899 4718592 35723801        2211a19 ../vmlinux-vanilla\n   26960207        4038891 4718592 35717690        221023a ../O-allyesconfig/vmlinux\n\nSo this change is both a space savings and a code simplification.\n\nCC: Olaf Kirch \u003cokir@suse.de\u003e\nCC: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fadad878cc0640cc9cd5569998bf54b693f7b38b",
      "tree": "9ad8c65d458d45f970f7e78cd1512c0e7da58def",
      "parents": [
        "521f3bbdba6b92582ef8047df01b156668343542"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jan 24 08:54:47 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:50:36 2008 +0100"
      },
      "message": "kernel: add CLONE_IO to specifically request sharing of IO contexts\n\nsyslets (or other threads/processes that want io context sharing) can\nset this to enforce sharing of io context.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d38ecf935fcb10264a6bc190855d9595165e6eeb",
      "tree": "64e3146ef76678ad3ae8f75c32df9f25ea470953",
      "parents": [
        "fd0928df98b9578be8a786ac0cb78a47a5e17a20"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jan 24 08:53:35 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:50:31 2008 +0100"
      },
      "message": "io context sharing: preliminary support\n\nDetach task state from ioc, instead keep track of how many processes\nare accessing the ioc.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fd0928df98b9578be8a786ac0cb78a47a5e17a20",
      "tree": "70a34cf207bea1bec28e59cf0dba7d20e7f8b0f1",
      "parents": [
        "91525300baf162e83e923b09ca286f9205e21522"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jan 24 08:52:45 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:50:29 2008 +0100"
      },
      "message": "ioprio: move io priority from task_struct to io_context\n\nThis is where it belongs and then it doesn\u0027t take up space for a\nprocess that doesn\u0027t do IO.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "326e96b92306b7af24a3608ec01156cba17a3fc1",
      "tree": "a70525568e34cc8c49e726435e9055ceab6e67dc",
      "parents": [
        "ef3f2de2b5496f721b12f21a157e19eac816394b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 27 08:03:54 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 27 08:03:54 2008 +0100"
      },
      "message": "printk: revert ktime_get() timestamps\n\nrevert 19ef9309273d26cb005cb23e6a370353dca91099.\n\nKevin Winchester reported a lockup during X startup an bisected\nit to this commit.\n\nReported-by: Kevin Winchester \u003ckjwinchester@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "81ef16e763bb899053e06f6050603a305456a085",
      "tree": "4f6ba85240f8c57a089e9762fff44749410100a8",
      "parents": [
        "48483b3290988952a593c6e66ca354c19f1a4350"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sat Jan 26 14:11:06 2008 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sat Jan 26 14:11:16 2008 +0100"
      },
      "message": "[S390] Remove appldata include from sysctl_check.c\n\nForgot to remove this when removing the appldata binary sysctls.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "9b73e76f3cf63379dcf45fcd4f112f5812418d0a",
      "tree": "4e6bef87cd0cd6d848fc39a5ae25b981dbbe035b",
      "parents": [
        "50d9a126240f9961cfdd063336bbeb91f77a7dce",
        "23c3e290fb9ce38cabc2822b47583fc8702411bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 17:19:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 17:19:08 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)\n  [SCSI] usbstorage: use last_sector_bug flag universally\n  [SCSI] libsas: abstract STP task status into a function\n  [SCSI] ultrastor: clean up inline asm warnings\n  [SCSI] aic7xxx: fix firmware build\n  [SCSI] aacraid: fib context lock for management ioctls\n  [SCSI] ch: remove forward declarations\n  [SCSI] ch: fix device minor number management bug\n  [SCSI] ch: handle class_device_create failure properly\n  [SCSI] NCR5380: fix section mismatch\n  [SCSI] sg: fix /proc/scsi/sg/devices when no SCSI devices\n  [SCSI] IB/iSER: add logical unit reset support\n  [SCSI] don\u0027t use __GFP_DMA for sense buffers if not required\n  [SCSI] use dynamically allocated sense buffer\n  [SCSI] scsi.h: add macro for enclosure bit of inquiry data\n  [SCSI] sd: add fix for devices with last sector access problems\n  [SCSI] fix pcmcia compile problem\n  [SCSI] aacraid: add Voodoo Lite class of cards.\n  [SCSI] aacraid: add new driver features flags\n  [SCSI] qla2xxx: Update version number to 8.02.00-k7.\n  [SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.\n  ...\n"
    },
    {
      "commit": "6d082592b62689fb91578d0338d04a9f50991990",
      "tree": "facef621798752724be64c3ded31a3c3fded1643",
      "parents": [
        "286100a6cf1c1f692e5f81d14b364ff12b7662f5"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:35 2008 +0100"
      },
      "message": "sched: keep total / count stats in addition to the max for\n\nRight now, the linux kernel (with scheduler statistics enabled) keeps track\nof the maximum time a process is waiting to be scheduled. While the maximum\nis a very useful metric, tracking average and total is equally useful\n(at least for latencytop) to figure out the accumulated effect of scheduler\ndelays. The accumulated effect is important to judge the performance impact\nof scheduler tuning/behavior.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5973e5b954848c63855a357ad4ff39882e3904f7",
      "tree": "e88c2d900a228401cefc7e144bf5628434df18ac",
      "parents": [
        "5fb5e6de55860a99c2d8fe7e0c8222d5c53d8464"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: fix: don\u0027t take a mutex from interrupt context\n\nprint_cfs_stats is callable from interrupt context (sysrq), hence it should\nnot take mutexes. Change it to use RCU since the task group data is RCU\nfreed anyway.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fb5e6de55860a99c2d8fe7e0c8222d5c53d8464",
      "tree": "7a9935bfa8b20c56ddc865c130f17d2f42444ce8",
      "parents": [
        "19ef9309273d26cb005cb23e6a370353dca91099"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: print backtrace of running tasks too\n\nThe attached patch is something really simple that can sometimes help\nin getting more info out of a hung system.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "19ef9309273d26cb005cb23e6a370353dca91099",
      "tree": "5ca31fef94ed523c3df867ba3472e70d215ffb84",
      "parents": [
        "90739081ef8d5495d50abba9c5d333be9acd872a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "printk: use ktime_get()\n\nprintk timestamps: use ktime_get().\n\nSome platforms have a functioning clocksource function only after\nthey are done with early bootup, so delay this until out of\nSYSTEM_BOOTING state.\n\nit\u0027s also inherently safe now, as any bugs in this area will be\ncaught by the printk recursion checks.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90739081ef8d5495d50abba9c5d333be9acd872a",
      "tree": "37dc5c626940a4bad6d9ffad81b7be12dc44f054",
      "parents": [
        "9745512ce79de686df354dc70a8d1a74d801892d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "softlockup: fix signedness\n\nfix softlockup tunables signedness.\n\nmark tunables read-mostly.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9745512ce79de686df354dc70a8d1a74d801892d",
      "tree": "9b64e2b2e6d2ae534beef136922082f21701c7b9",
      "parents": [
        "326587b840785c60f5dc18557235a23bafefd620"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: latencytop support\n\nLatencyTOP kernel infrastructure; it measures latencies in the\nscheduler and tracks it system wide and per process.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "326587b840785c60f5dc18557235a23bafefd620",
      "tree": "d96bfb249ca234298a4f2e40a56bce7041523ea6",
      "parents": [
        "e118adef232e637a8f091c1ded2fbf44fcf3ecc8"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: fix goto retry in pick_next_task_rt()\n\nlooking at it one more time:\n\n(1) it looks to me that there is no need to call\nsched_rt_ratio_exceeded() from pick_next_rt_entity()\n\n- [ for CONFIG_FAIR_GROUP_SCHED ] queues with rt_rq-\u003ert_throttled are\nnot within this \u0027tree-like hierarchy\u0027 (or whatever we should call it\n:-)\n\n- there is also no need to re-check \u0027rt_rq-\u003ert_time \u003e ratio\u0027 at this\npoint as \u0027rt_rq-\u003ert_time\u0027 couldn\u0027t have been increased since the last\ncall to update_curr_rt() (which obviously calls\nsched_rt_ratio_esceeded())\nwell, it might be that \u0027ratio\u0027 for this rt_rq has been re-configured\n(and the period over which this rt_rq was active has not yet been\nfinished)... but I don\u0027t think we should really take this into\naccount.\n\n(2) now pick_next_rt_entity() must never return NULL, so let\u0027s change\npick_next_task_rt() accordingly.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc203d2422004498909c4886d1b94a2e388d973e",
      "tree": "10fd9f364bda783b7354cf0e7d04ba319899c079",
      "parents": [
        "782daeee3d596282bfee4cd9e976c86be0e194a8"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: monitor clock underflows in /proc/sched_debug\n\nWe monitor clock overflows, let\u0027s also monitor clock underflows.\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "782daeee3d596282bfee4cd9e976c86be0e194a8",
      "tree": "7f831f365ba3f9f9b8f10572b858eb231864dde0",
      "parents": [
        "4f05b98d54b140ed3c5851d5d5156e9918c6305d"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: fix rq-\u003eclock warps on frequency changes\n\nsched: fix rq-\u003eclock warps on frequency changes\n\nFix 2bacec8c318ca0418c0ee9ac662ee44207765dd4\n(sched: touch softlockup watchdog after idling) that reintroduced warps\non frequency changes. touch_softlockup_watchdog() calls __update_rq_clock\nthat checks rq-\u003eclock for warps, so call it after adjusting rq-\u003eclock.\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f05b98d54b140ed3c5851d5d5156e9918c6305d",
      "tree": "f12f09c1e54e72adf4724b94733cb5b08e0879f7",
      "parents": [
        "1ad82fd547c716f96e544b477e0bdbfa2d647529"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "mschmidt@redhat.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: fix, always create kernel threads with normal priority\n\nEnsure that the kernel threads are created with the usual nice level\nand affinity even if kthreadd\u0027s properties were changed from the\ndefault by root.\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ad82fd547c716f96e544b477e0bdbfa2d647529",
      "tree": "ef865aa630836e4761eef7526a7e121f1672cea2",
      "parents": [
        "6478d8800b75253b2a934ddcb734e13ade023ad0"
      ],
      "author": {
        "name": "Paolo Ciarrocchi",
        "email": "paolo.ciarrocchi@gmail.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "debug: clean up kernel/profile.c\n\n Before:\n total: 25 errors, 13 warnings, 602 lines checked\n\n After:\n total: 0 errors, 2 warnings, 601 lines checked\n\nNo code changed:\n\nkernel/profile.o:\n   text    data     bss     dec     hex filename\n   3048     236      24    3308     cec profile.o.before\n   3048     236      24    3308     cec profile.o.after\n md5:\n   2501d64748a4d350dffb11203e2a5182  profile.o.before.asm\n   2501d64748a4d350dffb11203e2a5182  profile.o.after.asm\n\nSigned-off-by: Paolo Ciarrocchi \u003cpaolo.ciarrocchi@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6478d8800b75253b2a934ddcb734e13ade023ad0",
      "tree": "df4017269b8755735578445c0a8a9e8b3b2615e9",
      "parents": [
        "58b8a73ab8becfcaea84abc2a06038281efa4c8a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: remove the !PREEMPT_BKL code\n\nremove the !PREEMPT_BKL code.\n\nthis removes 160 lines of legacy code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58b8a73ab8becfcaea84abc2a06038281efa4c8a",
      "tree": "d70f675ff0ab23ceb9ce2fc48ec9ae099964301b",
      "parents": [
        "e14af7eeb47ea96c52741c5e5fa010d33daf6973"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: make PREEMPT_BKL the default\n\nmake PREEMPT_BKL the default.\n\nprecursor to removal of the !PREEMPT_BKL code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e14af7eeb47ea96c52741c5e5fa010d33daf6973",
      "tree": "0b4c1af86e766726ba75873812715706e4044086",
      "parents": [
        "21aa9280b9f4e9e68d3fa8990df6c9d7fd71f994"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "debug: track and print last unloaded module in the oops trace\n\nBased on a suggestion from Andi:\n\n In various cases, the unload of a module may leave some bad state around\n that causes a kernel crash AFTER a module is unloaded; and it\u0027s then hard\n to find which module caused that.\n\nThis patch tracks the last unloaded module, and prints this as part of the\nmodule list in the oops trace.\n\nRight now, only the last 1 module is tracked; I expect that this is enough\nfor the vast majority of cases where this information matters; if it turns\nout that tracking more is important, we can always extend it to that.\n\n[ mingo@elte.hu: build fix ]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21aa9280b9f4e9e68d3fa8990df6c9d7fd71f994",
      "tree": "dbf9011a8ba89037dc7807d50daa645bf1b2e2b7",
      "parents": [
        "5a52dd50091b6a6e710a1293db741028f8cc5aac"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "debug: show being-loaded/being-unloaded indicator for modules\n\nIt\u0027s rather common that an oops/WARN_ON/BUG happens during the load or\nunload of a module. Unfortunatly, it\u0027s not always easy to see directly\nwhich module is being loaded/unloaded from the oops itself. Worse,\nit\u0027s not even always possible to ask the bug reporter, since there\nare so many components (udev etc) that auto-load modules that there\u0027s\na good chance that even the reporter doesn\u0027t know which module this is.\n\nThis patch extends the existing \"show if it\u0027s tainting\" print code,\nwhich is used as part of printing the modules in the oops/BUG/WARN_ON\nto include a \"+\" for \"being loaded\" and a \"-\" for \"being unloaded\".\n\nAs a result this extension, the \"taint_flags()\" function gets renamed to\n\"module_flags()\" (and takes a module struct as argument, not a taint\nflags int).\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a52dd50091b6a6e710a1293db741028f8cc5aac",
      "tree": "ea2b361909e431c458c26208e501ea3cf10edd85",
      "parents": [
        "1020387f5f3b52929b387103cf976321981f8e26"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "message": "sched: rt-watchdog: fix .rlim_max \u003d RLIM_INFINITY\n\nRemove the curious logic to set it_sched_expires in the future. It useless\nbecause rt.timeout wouldn\u0027t be incremented anyway.\n\nExplicity check for RLIM_INFINITY as a test programm that had a 1s soft limit\nand a inf hard limit would SIGKILL at 1s. This is because RLIM_INFINITY+d-1\nis d-2.\n\nSigned-off-by: Peter Zijlsta \u003ca.p.zijlstra@chello.nl\u003e\nCC: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1020387f5f3b52929b387103cf976321981f8e26",
      "tree": "201f6c44cc09c57dc936cc804971d37178007687",
      "parents": [
        "37bb6cb4097e29ffee970065b74499cbf10603a3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "message": "sched: rt-group: reduce rescheduling\n\nOnly reschedule if the new group has a higher prio task.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37bb6cb4097e29ffee970065b74499cbf10603a3",
      "tree": "406de8e53a02244d9f8998bf5e583d3923b4e5c0",
      "parents": [
        "d3d74453c34f8fd87674a8cf5b8a327c68f22e99"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "message": "hrtimer: unlock hrtimer_wakeup\n\nhrtimer_wakeup creates a\n\n  base-\u003elock\n    rq-\u003elock\n\nlock dependancy. Avoid this by switching to HRTIMER_CB_IRQSAFE_NO_SOFTIRQ\nwhich doesn\u0027t hold base-\u003elock.\n\nThis fully untangles hrtimer locks from the scheduler locks, and allows\nhrtimer usage in the scheduler proper.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d74453c34f8fd87674a8cf5b8a327c68f22e99",
      "tree": "cbbd46eb7b81f5c9d39a93604a206ac775084858",
      "parents": [
        "2d44ae4d7135b9aee26439b3523b43473381bc5f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "message": "hrtimer: fixup the HRTIMER_CB_IRQSAFE_NO_SOFTIRQ fallback\n\nCurrently all highres\u003doff timers are run from softirq context, but\nHRTIMER_CB_IRQSAFE_NO_SOFTIRQ timers expect to run from irq context.\n\nFix this up by splitting it similar to the highres\u003don case.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2d44ae4d7135b9aee26439b3523b43473381bc5f",
      "tree": "ba3afc0f03142d26f9238974dab5b99bf1dca1db",
      "parents": [
        "48d5e258216f1c7713633439beb98a38c7290649"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "message": "hrtimer: clean up cpu-\u003ebase locking tricks\n\nIn order to more easily allow for the scheduler to use timers, clean up\nthe locking a bit.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48d5e258216f1c7713633439beb98a38c7290649",
      "tree": "6f8c98785015d56337e87ed56b23d39feeeaf846",
      "parents": [
        "614ee1f61f667b02165c1ae0c1357048dc6d94a0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "message": "sched: rt throttling vs no_hz\n\nWe need to teach no_hz about the rt throttling because its tick driven.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "614ee1f61f667b02165c1ae0c1357048dc6d94a0",
      "tree": "0f2e6389d045a4046f2fed14f3c9527a95467ecb",
      "parents": [
        "6f505b16425a51270058e4a93441fe64de3dd435"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "message": "sched: pull_rt_task() cleanup\n\n\"goto out\" is an odd way to spell \"skip\".\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f505b16425a51270058e4a93441fe64de3dd435",
      "tree": "be21e711d93bc4d088b97c4a4f585a5044dbaa7d",
      "parents": [
        "fa85ae2418e6843953107cd6a06f645752829bc0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "message": "sched: rt group scheduling\n\nExtend group scheduling to also cover the realtime classes. It uses the time\nlimiting introduced by the previous patch to allow multiple realtime groups.\n\nThe hard time limit is required to keep behaviour deterministic.\n\nThe algorithms used make the realtime scheduler O(tg), linear scaling wrt the\nnumber of task groups. This is the worst case behaviour I can\u0027t seem to get out\nof, the avg. case of the algorithms can be improved, I focused on correctness\nand worst case.\n\n[ akpm@linux-foundation.org: move side-effects out of BUG_ON(). ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa85ae2418e6843953107cd6a06f645752829bc0",
      "tree": "004130ac471247a29d3f6adfbfe61c474e725779",
      "parents": [
        "8f4d37ec073c17e2d4aa8851df5837d798606d6f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "message": "sched: rt time limit\n\nVery simple time limit on the realtime scheduling classes.\nAllow the rq\u0027s realtime class to consume sched_rt_ratio of every\nsched_rt_period slice. If the class exceeds this quota the fair class\nwill preempt the realtime class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f4d37ec073c17e2d4aa8851df5837d798606d6f",
      "tree": "a9ac9063eca53e4d0110e8086f55241ea70ba993",
      "parents": [
        "02b67cc3ba36bdba351d6c3a00593f4ec550d9d3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "message": "sched: high-res preemption tick\n\nUse HR-timers (when available) to deliver an accurate preemption tick.\n\nThe regular scheduler tick that runs at 1/HZ can be too coarse when nice\nlevel are used. The fairness system will still keep the cpu utilisation \u0027fair\u0027\nby then delaying the task that got an excessive amount of CPU time but try to\nminimize this by delivering preemption points spot-on.\n\nThe average frequency of this extra interrupt is sched_latency / nr_latency.\nWhich need not be higher than 1/HZ, its just that the distribution within the\nsched_latency period is important.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02b67cc3ba36bdba351d6c3a00593f4ec550d9d3",
      "tree": "5185ad2d780974dc864f12d81d6c8b9fec73097b",
      "parents": [
        "03319ec8b06849051747a17aa2a0f9aba9277980"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "message": "sched: do not do cond_resched() when CONFIG_PREEMPT\n\nWhy do we even have cond_resched when real preemption\nis on? It seems to be a waste of space and time.\n\nremove cond_resched with CONFIG_PREEMPT on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "03319ec8b06849051747a17aa2a0f9aba9277980",
      "tree": "085d1b072b95e91061d27cb3bab965ff83b6b04a",
      "parents": [
        "78f2c7db6068fd6ef75b8c120f04a388848eacb5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "message": "sched: documentation, whitespace fixes\n\nwhitespace fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78f2c7db6068fd6ef75b8c120f04a388848eacb5",
      "tree": "994e8082a01c78e691bacb90c0f8368823c87767",
      "parents": [
        "fa717060f1ab7eb6570f2fb49136f838fc9195a9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "message": "sched: SCHED_FIFO/SCHED_RR watchdog timer\n\nIntroduce a new rlimit that allows the user to set a runtime timeout on\nreal-time tasks their slice. Once this limit is exceeded the task will receive\nSIGXCPU.\n\nSo it measures runtime since the last sleep.\n\nInput and ideas by Thomas Gleixner and Lennart Poettering.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Lennart Poettering \u003cmzxreary@0pointer.de\u003e\nCC: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCC: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa717060f1ab7eb6570f2fb49136f838fc9195a9",
      "tree": "0338460dae3116563645e3bfa1ff5100d39826f8",
      "parents": [
        "8eb703e4f33488bf75829564d51d427e17f7cd4c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "message": "sched: sched_rt_entity\n\nMove the task_struct members specific to rt scheduling together.\nA future optimization could be to put sched_entity and sched_rt_entity\ninto a union.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8eb703e4f33488bf75829564d51d427e17f7cd4c",
      "tree": "ee520bf5f1b6c5b61f3b2b6b950ecb4108fc22fc",
      "parents": [
        "dc938520d2bf343b239795cfa24e4f44649358dc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "message": "uids: merge multiple error paths in alloc_uid() into one\n\nThere are already 4 error paths in alloc_uid() that do incremental rollbacks.\nI think it\u0027s time to merge them.  This costs us 8 lines of code :)\n\nMaybe it would be better to merge this patch with the previous one, but I\nremember that some time ago I sent a similar patch (fixing the error path and\ncleaning it), but I was told to make two patches in such cases.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dc938520d2bf343b239795cfa24e4f44649358dc",
      "tree": "576a88bdc234cf663e649c058392478cf24e1f62",
      "parents": [
        "f85d6c7168887e6659f4d00fa5f34fa23dbde1bb"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "message": "sched: dynamically update the root-domain span/online maps\n\nThe baseline code statically builds the span maps when the domain is formed.\nPrevious attempts at dynamically updating the maps caused a suspend-to-ram\nregression, which should now be fixed.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eaf649e9fe6685f4c5a392cd0e16df5fd6660b7c",
      "tree": "05fb08fc2e8bf9e87e9892130f4bd6e147d5a69d",
      "parents": [
        "e260be673a15b6125068270e0216a3bfbfc12f87"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:25 2008 +0100"
      },
      "message": "Preempt-RCU: CPU Hotplug handling\n\nThis patch allows preemptible RCU to tolerate CPU-hotplug operations.\nIt accomplishes this by maintaining a local copy of a map of online\nCPUs, which it accesses under its own lock.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e260be673a15b6125068270e0216a3bfbfc12f87",
      "tree": "f50760606d395bf6faa9e865f814761a3c88d32c",
      "parents": [
        "e0ecfa7917cafe72f4a75f87e8bb5d8d51dc534f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "message": "Preempt-RCU: implementation\n\nThis patch implements a new version of RCU which allows its read-side\ncritical sections to be preempted. It uses a set of counter pairs\nto keep track of the read-side critical sections and flips them\nwhen all tasks exit read-side critical section. The details\nof this implementation can be found in this paper -\n\n\thttp://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf\n\nand the article-\n\n\thttp://lwn.net/Articles/253651/\n\nThis patch was developed as a part of the -rt kernel development and\nmeant to provide better latencies when read-side critical sections of\nRCU don\u0027t disable preemption.  As a consequence of keeping track of RCU\nreaders, the readers have a slight overhead (optimizations in the paper).\nThis implementation co-exists with the \"classic\" RCU implementations\nand can be switched to at compiler.\n\nAlso includes RCU tracing summarized in debugfs.\n\n[ akpm@linux-foundation.org: build fixes on non-preempt architectures ]\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e0ecfa7917cafe72f4a75f87e8bb5d8d51dc534f",
      "tree": "92106dbd88530d3884bc6c4d1c088cba1ad8630e",
      "parents": [
        "01c1c660f4b8086cad7a62345fd04290f3d82c8f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "message": "Preempt-RCU: fix rcu_barrier for preemptive environment.\n\nFix rcu_barrier() to work properly in preemptive kernel environment.\nAlso, the ordering of callback must be preserved while moving\ncallbacks to another CPU during CPU hotplug.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "01c1c660f4b8086cad7a62345fd04290f3d82c8f",
      "tree": "bd09ab1fc3f9e267b1ea78f1a41b121175e1585a",
      "parents": [
        "c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "message": "Preempt-RCU: reorganize RCU code into rcuclassic.c and rcupdate.c\n\nThis patch re-organizes the RCU code to enable multiple implementations\nof RCU. Users of RCU continues to include rcupdate.h and the\nRCU interfaces remain the same. This is in preparation for\nsubsequently merging the preemptible RCU implementation.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82",
      "tree": "76b570288a72c1337920c5e60682316c554f00ee",
      "parents": [
        "c49443c538c1bbf50eda27e4a3711e9fc15176b0"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "message": "Preempt-RCU: Use softirq instead of tasklets for\n\nThis patch makes RCU use softirq instead of tasklets.\n\nIt also adds a memory barrier after raising the softirq\ninorder to ensure that the cpu sees the most recently updated\nvalue of rcu-\u003ecur while processing callbacks.\nThe discussion of the related theoretical race pointed out\nby James Huang can be found here --\u003e http://lkml.org/lkml/2007/11/20/603\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c49443c538c1bbf50eda27e4a3711e9fc15176b0",
      "tree": "8dece13f1f5c48422359c981a4ef8bba92136597",
      "parents": [
        "cdc8eb984ce47a7c90a049f45229f7b0d59ba781"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "message": "sched: remove some old cpuset logic\n\nWe had support for overlapping cpuset based rto logic in early\nprototypes that is no longer used, so remove it.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cdc8eb984ce47a7c90a049f45229f7b0d59ba781",
      "tree": "cebcaf9d854b843a5381cae18cffa6fd836a20ab",
      "parents": [
        "cb46984504048db946cd551c261df4e70d59a8ea"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "message": "sched: RT-balance, only adjust overload state when changing\n\nThe overload set/clears were originally idempotent when this logic was first\nimplemented.  But that is no longer true due to the addition of the atomic\ncounter and this logic was never updated to work properly with that change.\nSo only adjust the overload state if it is actually changing to avoid\ngetting out of sync.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb46984504048db946cd551c261df4e70d59a8ea",
      "tree": "e07343cc5967f74370c6b0290b67a225d868a99d",
      "parents": [
        "9a897c5a6701bcb6f099f7ca20194999102729fd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "message": "sched: RT-balance, add new methods to sched_class\n\nDmitry Adamushko found that the current implementation of the RT\nbalancing code left out changes to the sched_setscheduler and\nrt_mutex_setprio.\n\nThis patch addresses this issue by adding methods to the schedule classes\nto handle being switched out of (switched_from) and being switched into\n(switched_to) a sched_class. Also a method for changing of priorities\nis also added (prio_changed).\n\nThis patch also removes some duplicate logic between rt_mutex_setprio and\nsched_setscheduler.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a897c5a6701bcb6f099f7ca20194999102729fd",
      "tree": "9c5415d5e2dd115660200cbd246fe1343cd5cd5c",
      "parents": [
        "4bf0b77158d581c952af237aec79d0604b78fe27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "message": "sched: RT-balance, replace hooks with pre/post schedule and wakeup methods\n\nTo make the main sched.c code more agnostic to the schedule classes.\nInstead of having specific hooks in the schedule code for the RT class\nbalancing. They are replaced with a pre_schedule, post_schedule\nand task_wake_up methods. These methods may be used by any of the classes\nbut currently, only the sched_rt class implements them.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4bf0b77158d581c952af237aec79d0604b78fe27",
      "tree": "d2500b882a4ed7e9a97e8633120a6e6aeccfa0c3",
      "parents": [
        "5d2f5a616d65e3c08acde3195694c4ab8afbc1b7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "message": "sched: remove do_div() from __sched_slice()\n\nYanmin Zhang noticed a nice optimization:\n\n  p \u003d l * nr / nl, nl \u003d l/g -\u003e p \u003d g * nr\n\nwhich eliminates a do_div() from __sched_period().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d2f5a616d65e3c08acde3195694c4ab8afbc1b7",
      "tree": "df44c641af4cd66160f6296e86833c568070ae76",
      "parents": [
        "9ec3b77e11b9398ab40b492c4fde7d8aac04a718"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "message": "sched: get rid of \u0027new_cpu\u0027 in try_to_wake_up()\n\nClean-up try_to_wake_up().\n\nGet rid of the \u0027new_cpu\u0027 variable in try_to_wake_up() [ that\u0027s, one\n#ifdef section less ].  Also remove a few redundant blank lines.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ec3b77e11b9398ab40b492c4fde7d8aac04a718",
      "tree": "50045d0ddae170feea69e097e54b8c019aa81681",
      "parents": [
        "32525d022ad52a5c14e80e130260431e16e294b6"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "message": "sched: no need for \u0027affine wakeup\u0027 balancing\n\nNo need to do a check for \u0027affine wakeup and passive balancing possibilities\u0027\nin select_task_rq_fair() when task_cpu(p) \u003d\u003d this_cpu.\n\nI guess, this part got missed upon introduction of per-sched_class\nselect_task_rq() in try_to_wake_up().\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b913176917399e92e6f741672038c73d7ce93be5",
      "tree": "23e91c24e606fbff9d90253b03685f62069fcae1",
      "parents": [
        "0eab9146571dfa9b50ea952ec2ab27d591f26b63"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "message": "sched: add credits for RT balancing improvements\n\nadd credits for RT balancing improvements.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0eab9146571dfa9b50ea952ec2ab27d591f26b63",
      "tree": "690e7a3588e914fea1dd3891b04e4c20d1159349",
      "parents": [
        "d7876a08db50895ed9808ede4a259cccf65eba47"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "message": "sched: style cleanup, #2\n\nstyle cleanup of various changes that were done recently.\n\nno code changed:\n\n      text    data     bss     dec     hex filename\n     26399    2578      48   29025    7161 sched.o.before\n     26399    2578      48   29025    7161 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7876a08db50895ed9808ede4a259cccf65eba47",
      "tree": "c1459fb0b369cbebe60cde3f6248b67278ad6816",
      "parents": [
        "bdd7c81b4973e72b670eff6b5725bab189b723d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "message": "sched: remove unused JIFFIES_TO_NS() macro\n\nremove unused JIFFIES_TO_NS() macro.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bdd7c81b4973e72b670eff6b5725bab189b723d6",
      "tree": "5660b7ee8b2e9bc295053901112f70d5e784c183",
      "parents": [
        "637f50851b57a32f7ec67c50fc16f1601ab1a87a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "message": "sched: fix sched_rt.c:join/leave_domain\n\nfix build bug in sched_rt.c:join/leave_domain and make them only\nbe included on SMP builds.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "637f50851b57a32f7ec67c50fc16f1601ab1a87a",
      "tree": "ee8a4bc19fda1783bff8aa44abdcb6d8596aa7f1",
      "parents": [
        "57d885fea0da0e9541d7730a9e1dcf734981a173"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "message": "sched: only balance our RT tasks within our domain\n\nWe move the rt-overload data as the first global to per-domain\nreclassification.  This limits the scope of overload related cache-line\nbouncing to stay with a specified partition instead of affecting all\ncpus in the system.\n\nFinally, we limit the scope of find_lowest_cpu searches to the domain\ninstead of the entire system.  Note that we would always respect domain\nboundaries even without this patch, but we first would scan potentially\nall cpus before whittling the list down.  Now we can avoid looking at\nRQs that are out of scope, again reducing cache-line hits.\n\nNote: In some cases, task-\u003ecpus_allowed will effectively reduce our search\nto within our domain.  However, I believe there are cases where the\ncpus_allowed mask may be all ones and therefore we err on the side of\ncaution.  If it can be optimized later, so be it.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57d885fea0da0e9541d7730a9e1dcf734981a173",
      "tree": "80f08ea6ed506e2aac30c89b8ae1eee7f008a378",
      "parents": [
        "7f51f298204ec0528422cd9b23feac12612c5665"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "message": "sched: add sched-domain roots\n\nWe add the notion of a root-domain which will be used later to rescope\nglobal variables to per-domain variables.  Each exclusive cpuset\nessentially defines an island domain by fully partitioning the member cpus\nfrom any other cpuset.  However, we currently still maintain some\npolicy/state as global variables which transcend all cpusets.  Consider,\nfor instance, rt-overload state.\n\nWhenever a new exclusive cpuset is created, we also create a new\nroot-domain object and move each cpu member to the root-domain\u0027s span.\nBy default the system creates a single root-domain with all cpus as\nmembers (mimicking the global state we have today).\n\nWe add some plumbing for storing class specific data in our root-domain.\nWhenever a RQ is switching root-domains (because of repartitioning) we\ngive each sched_class the opportunity to remove any state from its old\ndomain and add state to the new one.  This logic doesn\u0027t have any clients\nyet but it will later in the series.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Christoph Lameter \u003cclameter@sgi.com\u003e\nCC: Paul Jackson \u003cpj@sgi.com\u003e\nCC: Simon Derr \u003csimon.derr@bull.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f51f298204ec0528422cd9b23feac12612c5665",
      "tree": "542837841201a765114320042edbbd574010bd7a",
      "parents": [
        "80bf3171dcdf0f5d236e2e48afe2a95c7ce23879"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "message": "sched: clean up schedule_balance_rt()\n\nclean up schedule_balance_rt().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80bf3171dcdf0f5d236e2e48afe2a95c7ce23879",
      "tree": "91cc16d8b91fd669ef234ab231895779907c1a31",
      "parents": [
        "00597c3ed78e424bdafff123565c078d8b6088cf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "message": "sched: clean up pull_rt_task()\n\nclean up pull_rt_task().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00597c3ed78e424bdafff123565c078d8b6088cf",
      "tree": "9aa1df064152008969f6fa6eacec7f2b15110f75",
      "parents": [
        "6e1938d3ad58c940ec4119d387dd92a787cb238c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "message": "sched: remove leftover debugging\n\nremove leftover debugging.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e1938d3ad58c940ec4119d387dd92a787cb238c",
      "tree": "c879b423cb18a7961fd99e577b2ef3dfc8539179",
      "parents": [
        "84de4274893691aa8c471a1f7336d51e555d23a0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "message": "sched: remove rt_overload()\n\nremove rt_overload() - it\u0027s an unnecessary indirection.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "84de4274893691aa8c471a1f7336d51e555d23a0",
      "tree": "59f9a3029089d1f36adda93f96ba1ce2daa9cc76",
      "parents": [
        "deeeccd41bd94a9db133d7b923f9a7479a47305d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "message": "sched: clean up kernel/sched_rt.c\n\nclean up whitespace damage and missing comments in kernel/sched_rt.c.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "deeeccd41bd94a9db133d7b923f9a7479a47305d",
      "tree": "add251ffa08f134e60d1e174914d6e511105c173",
      "parents": [
        "4df64c0bfb7e0e260d10ebc005f7d0ba1308eed7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "message": "sched: clean up overlong line in kernel/sched_debug.c\n\nclean up overlong line in kernel/sched_debug.c.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4df64c0bfb7e0e260d10ebc005f7d0ba1308eed7",
      "tree": "51ffd9e80f38e6c918e57f33373ac400bd403c53",
      "parents": [
        "79064fbf75796c4c6a53e40729dbe52f789a91fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "message": "sched: clean up find_lock_lowest_rq()\n\nclean up find_lock_lowest_rq().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "79064fbf75796c4c6a53e40729dbe52f789a91fd",
      "tree": "a54667418d6623cd84c566544930c99c608a42f8",
      "parents": [
        "0d1311a536a0face6267e7346223f2e68b002018"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:14 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:14 2008 +0100"
      },
      "message": "sched: clean up pick_next_highest_task_rt()\n\nclean up pick_next_highest_task_rt().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d1311a536a0face6267e7346223f2e68b002018",
      "tree": "20fff118911799b902647a8cb50cc9d2c0f0bd6f",
      "parents": [
        "610bf05645a7ac6ea104a474e328eeaaea148870"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:14 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:14 2008 +0100"
      },
      "message": "sched: RT-balance on new task\n\nrt-balance when creating new tasks.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "610bf05645a7ac6ea104a474e328eeaaea148870",
      "tree": "fb0a1b2969e0cdfb466f362d0a3bd636b0ec5ba0",
      "parents": [
        "06f90dbd7610d51549004ea9c2ada337831eb292"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "message": "sched: RT-balance, optimize cpu search\n\nThis patch removes several cpumask operations by keeping track\nof the first of the CPUS that is of the lowest priority. When\nthe search for the lowest priority runqueue is completed, all\nthe bits up to the first CPU with the lowest priority runqueue\nis cleared.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "06f90dbd7610d51549004ea9c2ada337831eb292",
      "tree": "952ce91bf158cee7fc3df0553496be524bc38b78",
      "parents": [
        "17b3279b48835eb522d842eae16f541da3729c8a"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "message": "sched: RT-balance, optimize\n\nWe can cheaply track the number of bits set in the cpumask for the lowest\npriority CPUs.  Therefore, compute the mask\u0027s weight and use it to skip\nthe optimal domain search logic when there is only one CPU available.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "17b3279b48835eb522d842eae16f541da3729c8a",
      "tree": "c94c7da732fbefda4a938bb6479ebb3b6d8d0c82",
      "parents": [
        "e1f47d891c0f00769d6d40ac5740f943e998d089"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "message": "sched: break out early if RT task cannot be migrated\n\nWe don\u0027t need to bother searching if the task cannot be migrated\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1f47d891c0f00769d6d40ac5740f943e998d089",
      "tree": "ccf402b5b5a8377af811afb288c39e2e136f1700",
      "parents": [
        "a22d7fc187ed996b66d8439db27b2303f79a8e7b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:12 2008 +0100"
      },
      "message": "sched: RT-balance, avoid overloading\n\nThis patch changes the searching for a run queue by a waking RT task\nto try to pick another runqueue if the currently running task\nis an RT task.\n\nThe reason is that RT tasks behave different than normal\ntasks. Preempting a normal task to run a RT task to keep\nits cache hot is fine, because the preempted non-RT task\nmay wait on that same runqueue to run again unless the\nmigration thread comes along and pulls it off.\n\nRT tasks behave differently. If one is preempted, it makes\nan active effort to continue to run. So by having a high\npriority task preempt a lower priority RT task, that lower\nRT task will then quickly try to run on another runqueue.\nThis will cause that lower RT task to replace its nice\nhot cache (and TLB) with a completely cold one. This is\nfor the hope that the new high priority RT task will keep\n its cache hot.\n\nRemeber that this high priority RT task was just woken up.\nSo it may likely have been sleeping for several milliseconds,\nand will end up with a cold cache anyway. RT tasks run till\nthey voluntarily stop, or are preempted by a higher priority\ntask. This means that it is unlikely that the woken RT task\nwill have a hot cache to wake up to. So pushing off a lower\nRT task is just killing its cache for no good reason.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a22d7fc187ed996b66d8439db27b2303f79a8e7b",
      "tree": "44845eaac2aa44b185d0663d689fea29d94ea5ff",
      "parents": [
        "6e1254d2c41215da27025add8900ed187bca121d"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:12 2008 +0100"
      },
      "message": "sched: wake-balance fixes\n\nWe have logic to detect whether the system has migratable tasks, but we are\nnot using it when deciding whether to push tasks away.  So we add support\nfor considering this new information.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e1254d2c41215da27025add8900ed187bca121d",
      "tree": "f68081e3b87d44c20a1b2739cf0119d8624208b0",
      "parents": [
        "318e0893ce3f524ca045f9fd9dfd567c0a6f9446"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:11 2008 +0100"
      },
      "message": "sched: optimize RT affinity\n\nThe current code base assumes a relatively flat CPU/core topology and will\nroute RT tasks to any CPU fairly equally.  In the real world, there are\nvarious toplogies and affinities that govern where a task is best suited to\nrun with the smallest amount of overhead.  NUMA and multi-core CPUs are\nprime examples of topologies that can impact cache performance.\n\nFortunately, linux is already structured to represent these topologies via\nthe sched_domains interface.  So we change our RT router to consult a\ncombination of topology and affinity policy to best place tasks during\nmigration.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "318e0893ce3f524ca045f9fd9dfd567c0a6f9446",
      "tree": "94eb9b03fc51033e87bc222861a5906233abae67",
      "parents": [
        "2de0b4639f4b1b6bfe31f795e5855f041f177170"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "message": "sched: pre-route RT tasks on wakeup\n\nIn the original patch series that Steven Rostedt and I worked on together,\nwe both took different approaches to low-priority wakeup path.  I utilized\n\"pre-routing\" (push the task away to a less important RQ before activating)\napproach, while Steve utilized a \"post-routing\" approach.  The advantage of\nmy approach is that you avoid the overhead of a wasted activate/deactivate\ncycle and peripherally related burdens.  The advantage of Steve\u0027s method is\nthat it neatly solves an issue preventing a \"pull\" optimization from being\ndeployed.\n\nIn the end, we ended up deploying Steve\u0027s idea.  But it later dawned on me\nthat we could get the best of both worlds by deploying both ideas together,\nalbeit slightly modified.\n\nThe idea is simple:  Use a \"light-weight\" lookup for pre-routing, since we\nonly need to approximate a good home for the task.  And we also retain the\npost-routing push logic to clean up any inaccuracies caused by a condition\nof \"priority mistargeting\" caused by the lightweight lookup.  Most of the\ntime, the pre-routing should work and yield lower overhead.  In the cases\nwhere it doesnt, the post-router will bat cleanup.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2de0b4639f4b1b6bfe31f795e5855f041f177170",
      "tree": "18f7647cb785e3aa450aacbb11150bea2da7ce22",
      "parents": [
        "07b4032c9e505e2a1fbe7703aff64a153c3249be"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "message": "sched: RT balancing: include current CPU\n\nIt doesn\u0027t hurt if we allow the current CPU to be included in the\nsearch.  We will just simply skip it later if the current CPU turns out\nto be the lowest.\n\nWe will use this later in the series\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "07b4032c9e505e2a1fbe7703aff64a153c3249be",
      "tree": "8b797b9cf80bc4f683a75557ff85ff385544cd74",
      "parents": [
        "e7693a362ec84bb5b6fd441d8a8b4b9d568a7a0c"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "message": "sched: break out search for RT tasks\n\nIsolate the search logic into a function so that it can be used later\nin places other than find_locked_lowest_rq().\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7693a362ec84bb5b6fd441d8a8b4b9d568a7a0c",
      "tree": "078940540641a59aaf199695bfc6de3f062a987b",
      "parents": [
        "697f0a487f294e634a342764472b79375bb3158a"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "message": "sched: de-SCHED_OTHER-ize the RT path\n\nThe current wake-up code path tries to determine if it can optimize the\nwake-up to \"this_cpu\" by computing load calculations.  The problem is that\nthese calculations are only relevant to SCHED_OTHER tasks where load is king.\nFor RT tasks, priority is king.  So the load calculation is completely wasted\nbandwidth.\n\nTherefore, we create a new sched_class interface to help with\npre-wakeup routing decisions and move the load calculation as a function\nof CFS task\u0027s class.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "697f0a487f294e634a342764472b79375bb3158a",
      "tree": "edfee23b36eef33027368bf488a731d5373765aa",
      "parents": [
        "73fe6aae84400e2b475e2a1dc4e8592cd3ed6e69"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "message": "sched: clean up this_rq use in kernel/sched_rt.c\n\n\"this_rq\" is normally used to denote the RQ on the current cpu\n(i.e. \"cpu_rq(this_cpu)\").  So clean up the usage of this_rq to be\nmore consistent with the rest of the code.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "73fe6aae84400e2b475e2a1dc4e8592cd3ed6e69",
      "tree": "97c7d6a866d75563082c422491fc423b47aca9d7",
      "parents": [
        "c7a1e46aa9782a947cf2ed506245d43396dbf991"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: add RT-balance cpu-weight\n\nSome RT tasks (particularly kthreads) are bound to one specific CPU.\nIt is fairly common for two or more bound tasks to get queued up at the\nsame time.  Consider, for instance, softirq_timer and softirq_sched.  A\ntimer goes off in an ISR which schedules softirq_thread to run at RT50.\nThen the timer handler determines that it\u0027s time to smp-rebalance the\nsystem so it schedules softirq_sched to run.  So we are in a situation\nwhere we have two RT50 tasks queued, and the system will go into\nrt-overload condition to request other CPUs for help.\n\nThis causes two problems in the current code:\n\n1) If a high-priority bound task and a low-priority unbounded task queue\n   up behind the running task, we will fail to ever relocate the unbounded\n   task because we terminate the search on the first unmovable task.\n\n2) We spend precious futile cycles in the fast-path trying to pull\n   overloaded tasks over.  It is therefore optimial to strive to avoid the\n   overhead all together if we can cheaply detect the condition before\n   overload even occurs.\n\nThis patch tries to achieve this optimization by utilizing the hamming\nweight of the task-\u003ecpus_allowed mask.  A weight of 1 indicates that\nthe task cannot be migrated.  We will then utilize this information to\nskip non-migratable tasks and to eliminate uncessary rebalance attempts.\n\nWe introduce a per-rq variable to count the number of migratable tasks\nthat are currently running.  We only go into overload if we have more\nthan one rt task, AND at least one of them is migratable.\n\nIn addition, we introduce a per-task variable to cache the cpus_allowed\nweight, since the hamming calculation is probably relatively expensive.\nWe only update the cached value when the mask is updated which should be\nrelatively infrequent, especially compared to scheduling frequency\nin the fast path.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7a1e46aa9782a947cf2ed506245d43396dbf991",
      "tree": "1cbf3bc6173b57ea9819c1f0a761347c4285b107",
      "parents": [
        "4642dafdf93dc7d66ee33437b93a5e6b8cea20d2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: disable standard balancer for RT tasks\n\nSince we now take an active approach to load balancing, we don\u0027t need to\nbalance RT tasks via the normal task balancer. In fact, this code was\nfound to pull RT tasks away from CPUS that the active movement performed,\nresulting in large latencies.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4642dafdf93dc7d66ee33437b93a5e6b8cea20d2",
      "tree": "4e3fd9c95be1ed14e9f40b2dcf232c40e5ab8fef",
      "parents": [
        "f65eda4f789168ba5ff3fa75546c29efeed19f58"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: push RT tasks from overloaded CPUs\n\nThis patch adds pushing of overloaded RT tasks from a runqueue that is\nhaving tasks (most likely RT tasks) added to the run queue.\n\nTODO: We don\u0027t cover the case of waking of new RT tasks (yet).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f65eda4f789168ba5ff3fa75546c29efeed19f58",
      "tree": "235e6daad2bc37b22cc5b21907608c79f944f036",
      "parents": [
        "4fd29176b7cd24909f8ceba2105cb3ae2857b90c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: pull RT tasks from overloaded runqueues\n\nThis patch adds the algorithm to pull tasks from RT overloaded runqueues.\n\nWhen a pull RT is initiated, all overloaded runqueues are examined for\na RT task that is higher in prio than the highest prio task queued on the\ntarget runqueue. If another runqueue holds a RT task that is of higher\nprio than the highest prio task on the target runqueue is found it is pulled\nto the target runqueue.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4fd29176b7cd24909f8ceba2105cb3ae2857b90c",
      "tree": "2d83445de1d500cd3794a73e6d9d35b44444e259",
      "parents": [
        "e8fa136262e1121288bb93befe2295928ffd240d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:06 2008 +0100"
      },
      "message": "sched: add rt-overload tracking\n\nThis patch adds an RT overload accounting system. When a runqueue has\nmore than one RT task queued, it is marked as overloaded. That is that it\nis a candidate to have RT tasks pulled from it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8fa136262e1121288bb93befe2295928ffd240d",
      "tree": "5df829adde9b43efee39275c05751c99bf46eb2f",
      "parents": [
        "764a9d6fe4b52995c8aba277e3634385699354f4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:05 2008 +0100"
      },
      "message": "sched: add RT task pushing\n\nThis patch adds an algorithm to push extra RT tasks off a run queue to\nother CPU runqueues.\n\nWhen more than one RT task is added to a run queue, this algorithm takes\nan assertive approach to push the RT tasks that are not running onto other\nrun queues that have lower priority.  The way this works is that the highest\nRT task that is not running is looked at and we examine the runqueues on\nthe CPUS for that tasks affinity mask. We find the runqueue with the lowest\nprio in the CPU affinity of the picked task, and if it is lower in prio than\nthe picked task, we push the task onto that CPU runqueue.\n\nWe continue pushing RT tasks off the current runqueue until we don\u0027t push any\nmore.  The algorithm stops when the next highest RT task can\u0027t preempt any\nother processes on other CPUS.\n\nTODO: The algorithm may stop when there are still RT tasks that can be\n migrated. Specifically, if the highest non running RT task CPU affinity\n is restricted to CPUs that are running higher priority tasks, there may\n be a lower priority task queued that has an affinity with a CPU that is\n running a lower priority task that it could be migrated to.  This\n patch set does not address this issue.\n\nNote: checkpatch reveals two over 80 character instances. I\u0027m not sure\n that breaking them up will help visually, so I left them as is.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "764a9d6fe4b52995c8aba277e3634385699354f4",
      "tree": "497587d29fc867cfe8fc1aab68dd4ed7aba72bdd",
      "parents": [
        "63489e45e265f64c368882be1f01c42dec5d984c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:04 2008 +0100"
      },
      "message": "sched: track highest prio task queued\n\nThis patch adds accounting to each runqueue to keep track of the\nhighest prio task queued on the run queue. We only care about\nRT tasks, so if the run queue does not contain any active RT tasks\nits priority will be considered MAX_RT_PRIO.\n\nThis information will be used for later patches.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "63489e45e265f64c368882be1f01c42dec5d984c",
      "tree": "d228ccbe22bc421c36455c7e05480247a4a8d2b1",
      "parents": [
        "82a1fcb90287052aabfa235e7ffc693ea003fe69"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:03 2008 +0100"
      },
      "message": "sched: count # of queued RT tasks\n\nThis patch adds accounting to keep track of the number of RT tasks running\non a runqueue. This information will be used in later patches.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82a1fcb90287052aabfa235e7ffc693ea003fe69",
      "tree": "826b464a248bebe259fe787f7b8d17d5626cf2c5",
      "parents": [
        "d0d23b5432fe61229dd3641c5e94d4130bc4e61b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks\n\nthis patch extends the soft-lockup detector to automatically\ndetect hung TASK_UNINTERRUPTIBLE tasks. Such hung tasks are\nprinted the following way:\n\n ------------------\u003e\n INFO: task prctl:3042 blocked for more than 120 seconds.\n \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message\n prctl         D fd5e3793     0  3042   2997\n        f6050f38 00000046 00000001 fd5e3793 00000009 c06d8264 c06dae80 00000286\n        f6050f40 f6050f00 f7d34d90 f7d34fc8 c1e1be80 00000001 f6050000 00000000\n        f7e92d00 00000286 f6050f18 c0489d1a f6050f40 00006605 00000000 c0133a5b\n Call Trace:\n  [\u003cc04883a5\u003e] schedule_timeout+0x6d/0x8b\n  [\u003cc04883d8\u003e] schedule_timeout_uninterruptible+0x15/0x17\n  [\u003cc0133a76\u003e] msleep+0x10/0x16\n  [\u003cc0138974\u003e] sys_prctl+0x30/0x1e2\n  [\u003cc0104c52\u003e] sysenter_past_esp+0x5f/0xa5\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n 2 locks held by prctl/3042:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#5){--..}, at: [\u003cc0197d11\u003e] do_fsync+0x38/0x7a\n #1:  (jbd_handle){--..}, at: [\u003cc01ca3d2\u003e] journal_start+0xc7/0xe9\n \u003c------------------\n\nthe current default timeout is 120 seconds. Such messages are printed\nup to 10 times per bootup. If the system has crashed already then the\nmessages are not printed.\n\nif lockdep is enabled then all held locks are printed as well.\n\nthis feature is a natural extension to the softlockup-detector (kernel\nlocked up without scheduling) and to the NMI watchdog (kernel locked up\nwith IRQs disabled).\n\n[ Gautham R Shenoy \u003cego@in.ibm.com\u003e: CPU hotplug fixes. ]\n[ Andrew Morton \u003cakpm@linux-foundation.org\u003e: build warning fix. ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "95402b3829010fe1e208f44e4a158ccade88969a",
      "tree": "3b9895b47623b4673e3c11121980e5171af76bbe",
      "parents": [
        "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()\n\nThis patch converts the known per-subsystem mutexes to get_online_cpus\nput_online_cpus. It also eliminates the CPU_LOCK_ACQUIRE and\nCPU_LOCK_RELEASE hotplug notification events.\n\nSigned-off-by: Gautham  R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a",
      "tree": "7bf46885326a6fdbb0c3596855408e9a5634dd3a",
      "parents": [
        "d221938c049f4845da13c8593132595a6b9222a8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()\n\nReplace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use\nget_online_cpus and put_online_cpus instead as it highlights the\nrefcount semantics in these operations.\n\nThe new API guarantees protection against the cpu-hotplug operation, but\nit doesn\u0027t guarantee serialized access to any of the local data\nstructures. Hence the changes needs to be reviewed.\n\nIn case of pseries_add_processor/pseries_remove_processor, use\ncpu_maps_update_begin()/cpu_maps_update_done() as we\u0027re modifying the\ncpu_present_map there.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d221938c049f4845da13c8593132595a6b9222a8",
      "tree": "8eae6c7095a3d7d31d7435befc30019540a4d13e",
      "parents": [
        "6b2d7700266b9402e12824e11e0099ae6a4a6a79"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "message": "cpu-hotplug: refcount based cpu hotplug\n\nThis patch implements a Refcount + Waitqueue based model for\ncpu-hotplug.\n\nNow, a thread which wants to prevent cpu-hotplug, will bump up a global\nrefcount and the thread which wants to perform a cpu-hotplug operation\nwill block till the global refcount goes to zero.\n\nThe readers, if any, during an ongoing cpu-hotplug operation are blocked\nuntil the cpu-hotplug operation is over.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e [For !CONFIG_HOTPLUG_CPU ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b2d7700266b9402e12824e11e0099ae6a4a6a79",
      "tree": "d72c25b03150901ad8643f931186a11eb85635dc",
      "parents": [
        "a183561567b5446d3362b4839bd4f744f4b2af1e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups\n\nThe current load balancing scheme isn\u0027t good enough for precise\ngroup fairness.\n\nFor example: on a 8-cpu system, I created 3 groups as under:\n\n\ta \u003d 8 tasks (cpu.shares \u003d 1024)\n\tb \u003d 4 tasks (cpu.shares \u003d 1024)\n\tc \u003d 3 tasks (cpu.shares \u003d 1024)\n\na, b and c are task groups that have equal weight. We would expect each\nof the groups to receive 33.33% of cpu bandwidth under a fair scheduler.\n\nThis is what I get with the latest scheduler git tree:\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------------------\nCol1  | Col2    | Col3  |  Col4\n------|---------|-------|-------------------------------------------------------\na     | 277.676 | 57.8% | 54.1%  54.1%  54.1%  54.2%  56.7%  62.2%  62.8% 64.5%\nb     | 116.108 | 24.2% | 47.4%  48.1%  48.7%  49.3%\nc     |  86.326 | 18.0% | 47.5%  47.9%  48.5%\n--------------------------------------------------------------------------------\n\nExplanation of o/p:\n\nCol1 -\u003e Group name\nCol2 -\u003e Cumulative execution time (in seconds) received by all tasks of that\n\tgroup in a 60sec window across 8 cpus\nCol3 -\u003e CPU bandwidth received by the group in the 60sec window, expressed in\n        percentage. Col3 data is derived as:\n\t\tCol3 \u003d 100 * Col2 / (NR_CPUS * 60)\nCol4 -\u003e CPU bandwidth received by each individual task of the group.\n\t\tCol4 \u003d 100 * cpu_time_recd_by_task / 60\n\n[I can share the test case that produces a similar o/p if reqd]\n\nThe deviation from desired group fairness is as below:\n\n\ta \u003d +24.47%\n\tb \u003d -9.13%\n\tc \u003d -15.33%\n\nwhich is quite high.\n\nAfter the patch below is applied, here are the results:\n\n--------------------------------------------------------------------------------\nCol1  | Col2    | Col3  |  Col4\n------|---------|-------|-------------------------------------------------------\na     | 163.112 | 34.0% | 33.2%  33.4%  33.5%  33.5%  33.7%  34.4%  34.8% 35.3%\nb     | 156.220 | 32.5% | 63.3%  64.5%  66.1%  66.5%\nc     | 160.653 | 33.5% | 85.8%  90.6%  91.4%\n--------------------------------------------------------------------------------\n\nDeviation from desired group fairness is as below:\n\n\ta \u003d +0.67%\n\tb \u003d -0.83%\n\tc \u003d +0.17%\n\nwhich is far better IMO. Most of other runs have yielded a deviation within\n+-2% at the most, which is good.\n\nWhy do we see bad (group) fairness with current scheuler?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCurrently cpu\u0027s weight is just the summation of individual task weights.\nThis can yield incorrect results. For ex: consider three groups as below\non a 2-cpu system:\n\n\tCPU0\tCPU1\n---------------------------\n\tA (10)  B(5)\n\t\tC(5)\n---------------------------\n\nGroup A has 10 tasks, all on CPU0, Group B and C have 5 tasks each all\nof which are on CPU1. Each task has the same weight (NICE_0_LOAD \u003d\n1024).\n\nThe current scheme would yield a cpu weight of 10240 (10*1024) for each cpu and\nthe load balancer will think both CPUs are perfectly balanced and won\u0027t\nmove around any tasks. This, however, would yield this bandwidth:\n\n\tA \u003d 50%\n\tB \u003d 25%\n\tC \u003d 25%\n\nwhich is not the desired result.\n\nWhat\u0027s changing in the patch?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\t- How cpu weights are calculated when CONFIF_FAIR_GROUP_SCHED is\n\t  defined (see below)\n\t- API Change\n\t\t- Two tunables introduced in sysfs (under SCHED_DEBUG) to\n\t\t  control the frequency at which the load balance monitor\n\t\t  thread runs.\n\nThe basic change made in this patch is how cpu weight (rq-\u003eload.weight) is\ncalculated. Its now calculated as the summation of group weights on a cpu,\nrather than summation of task weights. Weight exerted by a group on a\ncpu is dependent on the shares allocated to it and also the number of\ntasks the group has on that cpu compared to the total number of\n(runnable) tasks the group has in the system.\n\nLet,\n\tW(K,i)  \u003d Weight of group K on cpu i\n\tT(K,i)  \u003d Task load present in group K\u0027s cfs_rq on cpu i\n\tT(K)    \u003d Total task load of group K across various cpus\n\tS(K) \t\u003d Shares allocated to group K\n\tNRCPUS\t\u003d Number of online cpus in the scheduler domain to\n\t \t  which group K is assigned.\n\nThen,\n\tW(K,i) \u003d S(K) * NRCPUS * T(K,i) / T(K)\n\nA load balance monitor thread is created at bootup, which periodically\nruns and adjusts group\u0027s weight on each cpu. To avoid its overhead, two\nmin/max tunables are introduced (under SCHED_DEBUG) to control the rate\nat which it runs.\n\nFixes from: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\n- don\u0027t start the load_balance_monitor when there is only a single cpu.\n- rename the kthread because its currently longer than TASK_COMM_LEN\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a183561567b5446d3362b4839bd4f744f4b2af1e",
      "tree": "7bfa46fd0bf4a96e96500732d188f1ef4b04454d",
      "parents": [
        "58e2d4ca581167c2a079f4ee02be2f0bc52e8729"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: introduce a mutex and corresponding API to serialize access to doms_curarray\n\ndoms_cur[] array represents various scheduling domains which are\nmutually exclusive. Currently cpusets code can modify this array (by\ncalling partition_sched_domains()) as a result of user modifying\nsched_load_balance flag for various cpusets.\n\nThis patch introduces a mutex and corresponding API (only when\nCONFIG_FAIR_GROUP_SCHED is defined) which allows a reader to safely read\nthe doms_cur[] array w/o worrying abt concurrent modifications to the\narray.\n\nThe fair group scheduler code (introduced in next patch of this series)\nmakes use of this mutex to walk thr\u0027 doms_cur[] array while rebalancing\nshares of task groups across cpus.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58e2d4ca581167c2a079f4ee02be2f0bc52e8729",
      "tree": "9a8c8324785800f3577fb897ca3e2ae21ad8c55a",
      "parents": [
        "ec2c507fe8c8fa3c04fc6cb99a382a965c477379"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: group scheduling, change how cpu load is calculated\n\nThis patch changes how the cpu load exerted by fair_sched_class tasks\nis calculated. Load exerted by fair_sched_class tasks on a cpu is now\na summation of the group weights, rather than summation of task weights.\nWeight exerted by a group on a cpu is dependent on the shares allocated\nto it.\n\nThis version of patch has a minor impact on code size, but should have\nno runtime/functional impact for !CONFIG_FAIR_GROUP_SCHED.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec2c507fe8c8fa3c04fc6cb99a382a965c477379",
      "tree": "f139f738ba08576318ec09047148cdc7ae33ac9b",
      "parents": [
        "93f992ccc008dd4030381caeebb252e85e66684b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "message": "sched: group scheduling, minor fixes\n\nMinor bug fixes for the group scheduler:\n\n- Use a mutex to serialize add/remove of task groups and also when\n  changing shares of a task group. Use the same mutex when printing\n  cfs_rq debugging stats for various task groups.\n\n- Use list_for_each_entry_rcu in for_each_leaf_cfs_rq macro (when\n  walking task group list)\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93f992ccc008dd4030381caeebb252e85e66684b",
      "tree": "34c177cc9de4eee560aee07c08a1fde59b37ed37",
      "parents": [
        "86faf39d0fc04272b05fab1db6d683f3ac7199d1"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "message": "sched: group scheduling code cleanup\n\nMinor cleanups:\n\n- Fix coding style\n- remove obsolete comment\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b842271fbb9c8b5fd0e1c3e1895a3b67ba5bcc54",
      "tree": "e6fd8db6b1544056b13379b5e3c4cd8217231d86",
      "parents": [
        "d713f519332e029d43eca8462629314eee1ded86"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "message": "sched: remove printk_clock()\n\nprintk_clock() is obsolete - it has been replaced with cpu_clock().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d713f519332e029d43eca8462629314eee1ded86",
      "tree": "2bce92a20518105d8884b2bf5ff6fb1b5e3d7636",
      "parents": [
        "32a76006683f7b28ae3cc491da37716e002f198e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:58 2008 +0100"
      },
      "message": "sched: fix CONFIG_PRINT_TIME\u0027s reliance on sched_clock()\n\nStefano Brivio reported weird printk timestamp behavior during\nCPU frequency changes:\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d9475\n\nfix CONFIG_PRINT_TIME\u0027s reliance on sched_clock() and use cpu_clock()\ninstead.\n\nReported-and-bisected-by: Stefano Brivio \u003cstefano.brivio@polimi.it\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "32a76006683f7b28ae3cc491da37716e002f198e",
      "tree": "ab4bf487f675ab1a19b3ad0eac78a0e48f5144e9",
      "parents": [
        "b47711bfbcd4eb77ca61ef0162487b20e023ae55"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:58 2008 +0100"
      },
      "message": "printk: make printk more robust by not allowing recursion\n\nmake printk more robust by allowing recursion only if there\u0027s a crash\ngoing on. Also add recursion detection.\n\nI\u0027ve tested it with an artificially injected printk recursion - instead\nof a lockup or spontaneous reboot or other crash, the output was a well\ncontrolled:\n\n[   41.057335] SysRq : \u003c2\u003eBUG: recent printk recursion!\n[   41.057335] loglevel0-8 reBoot Crashdump show-all-locks(D) tErm Full kIll saK showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks Unmount shoW-blocked-tasks\n\nalso do all this printk-debug logic with irqs disabled.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "7556afa0e0e436cad4f560ee83e5fbd5dac9359a",
      "tree": "c1500918b4b7c8b760feab1c8eeb8a815d2135ca",
      "parents": [
        "e07dd2ad305f6b29b47d713600aa8b722ef2a9f7",
        "d6c49a7a78fc841418bbd58bda504076f80ec51d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:40:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:40:02 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:\n  [AVR32] extint: Set initial irq type to low level\n  [AVR32] extint: change set_irq_type() handling\n  [AVR32] NMI debugging\n  [AVR32] constify function pointer tables\n  [AVR32] ATNGW100: Update defconfig\n  [AVR32] ATSTK1002: Update defconfig\n  [AVR32] Kconfig: Choose daughterboard instead of CPU\n  [AVR32] Add support for ATSTK1003 and ATSTK1004\n  [AVR32] Clean up external DAC setup code\n  [AVR32] ATSTK1000: Move gpio-leds setup to setup.c\n  [AVR32] Add support for AT32AP7001 and AT32AP7002\n  [AVR32] Provide more CPU information in /proc/cpuinfo and dmesg\n  [AVR32] Oprofile support\n  [AVR32] Include instrumentation menu\n  Disable VGA text console for AVR32 architecture\n  [AVR32] Enable debugging only when needed\n  ptrace: Call arch_ptrace_attach() when request\u003dPTRACE_TRACEME\n  [AVR32] Remove redundant try_to_freeze() call from do_signal()\n  [AVR32] Drop GFP_COMP for DMA memory allocations\n"
    }
  ],
  "next": "6ea6dd93c9454cc9521134f907bc970d09f460e4"
}
