)]}'
{
  "log": [
    {
      "commit": "a9d9baa1e819b2f92f9cfa5240f766c535e636a6",
      "tree": "0ae15e5b1071b395affa0ac9abf6fd746ad60b0e",
      "parents": [
        "e0f39591cc178026607fcbbe9a53be435fe8285d"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Mon Nov 28 13:43:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] clean up lock_cpu_hotplug() in cpufreq\n\nThere are some callers in cpufreq hotplug notify path that the lowest\nfunction calls lock_cpu_hotplug().  The lock is already held during\ncpu_up() and cpu_down() calls when the notify calls are broadcast to\nregistered clients.\n\nIdeally if possible, we could disable_preempt() at the highest caller and\nmake sure we dont sleep in the path down in cpufreq-\u003edriver_target() calls\nbut the calls are so intertwined and cumbersome to cleanup.\n\nHence we consistently use lock_cpu_hotplug() and unlock_cpu_hotplug() in\nall places.\n\n - Removed export of cpucontrol semaphore and made it static.\n - removed explicit uses of up/down with lock_cpu_hotplug()\n   so we can keep track of the the callers in same thread context and\n   just keep refcounts without calling a down() that causes a deadlock.\n - Removed current_in_hotplug() uses\n - Removed PF_HOTPLUG_CPU in sched.h introduced for the current_in_hotplug()\n   temporary workaround.\n\nTested with insmod of cpufreq_stat.ko, and logical online/offline\nto make sure we dont have any hang situations.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Zwane Mwaikambo \u003czwane@linuxpower.ca\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90d45d17f3e68608ac7ba8fc3d7acce022a19c8e",
      "tree": "615b2f21c3e02e0ec901febd180014fed64a6a01",
      "parents": [
        "330d57fb98a916fa8e1363846540dd420e99499a"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Tue Nov 08 21:34:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:50 2005 -0800"
      },
      "message": "[PATCH] cpu hotplug: fix locking in cpufreq drivers\n\nWhen calling target drivers to set frequency, we take cpucontrol lock.\nWhen we modified the code to accomodate CPU hotplug, there was an attempt\nto take a double lock of cpucontrol leading to a deadlock.  Since the\ncurrent thread context is already holding the cpucontrol lock, we dont need\nto make another attempt to acquire it.\n\nNow we leave a trace in current-\u003eflags indicating current thread already is\nunder cpucontrol lock held, so we dont attempt to do this another time.\n\nThanks to Andrew Morton for the beating:-)\n\nFrom: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\n\n  Build fix\n\n(akpm: this patch is still unpleasant.  Ashok continues to look for a cleaner\nsolution, doesn\u0027t he?  ;))\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c32b6b8e524d2c337767d312814484d9289550cf",
      "tree": "02e634b0b48db6eccc8774369366daa1893921ea",
      "parents": [
        "d434fca737bee0862625c2377b987a7713b6b487"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sun Oct 30 14:59:54 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] create and destroy cpufreq sysfs entries based on cpu notifiers\n\ncpufreq entries in sysfs should only be populated when CPU is online state.\n When we either boot with maxcpus\u003dx and then boot the other cpus by echoing\nto sysfs online file, these entries should be created and destroyed when\nCPU_DEAD is notified.  Same treatement as cache entries under sysfs.\n\nWe place the processor in the lowest frequency, so hw managed P-State\ntransitions can still work on the other threads to save power.\n\nPrimary goal was to just make these directories appear/disapper dynamically.\n\nThere is one in this patch i had to do, which i really dont like myself but\nprobably best if someone handling the cpufreq infrastructure could give\nthis code right treatment if this is not acceptable.  I guess its probably\ngood for the first cut.\n\n- Converting lock_cpu_hotplug()/unlock_cpu_hotplug() to disable/enable preempt.\n  The locking was smack in the middle of the notification path, when the\n  hotplug is already holding the lock. I tried another solution to avoid this\n  so avoid taking locks if we know we are from notification path. The solution\n  was getting very ugly and i decided this was probably good for this iteration\n  until someone who understands cpufreq could do a better job than me.\n\n(akpm: export cpucontrol to GPL modules: drivers/cpufreq/cpufreq_stats.c now\ndoes lock_cpu_hotplug())\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Zwane Mwaikambo \u003czwane@holomorphy.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f370513640492641b4046bfd9a6e4714f6ae530d",
      "tree": "46da47197fcbb3614b51c5f1fac841bf26d5e572",
      "parents": [
        "d92de65cab5980c16d4a1c326c1ef9a591892883"
      ],
      "author": {
        "name": "Zwane Mwaikambo",
        "email": "zwane@linuxpower.ca",
        "time": "Sat Jun 25 14:54:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:29 2005 -0700"
      },
      "message": "[PATCH] i386 CPU hotplug\n\n(The i386 CPU hotplug patch provides infrastructure for some work which Pavel\nis doing as well as for ACPI S3 (suspend-to-RAM) work which Li Shaohua\n\u003cshaohua.li@intel.com\u003e is doing)\n\nThe following provides i386 architecture support for safely unregistering and\nregistering processors during runtime, updated for the current -mm tree.  In\norder to avoid dumping cpu hotplug code into kernel/irq/* i dropped the\ncpu_online check in do_IRQ() by modifying fixup_irqs().  The difference being\nthat on cpu offline, fixup_irqs() is called before we clear the cpu from\ncpu_online_map and a long delay in order to ensure that we never have any\nqueued external interrupts on the APICs.  There are additional changes to s390\nand ppc64 to account for this change.\n\n1) Add CONFIG_HOTPLUG_CPU\n2) disable local APIC timer on dead cpus.\n3) Disable preempt around irq balancing to prevent CPUs going down.\n4) Print irq stats for all possible cpus.\n5) Debugging check for interrupts on offline cpus.\n6) Hacky fixup_irqs() to redirect irqs when cpus go off/online.\n7) play_dead() for offline cpus to spin inside.\n8) Handle offline cpus set in flush_tlb_others().\n9) Grab lock earlier in smp_call_function() to prevent CPUs going down.\n10) Implement __cpu_disable() and __cpu_die().\n11) Enable local interrupts in cpu_enable() after fixup_irqs()\n12) Don\u0027t fiddle with NMI on dead cpu, but leave intact on other cpus.\n13) Program IRQ affinity whilst cpu is still in cpu_online_map on offline.\n\nSigned-off-by: Zwane Mwaikambo \u003czwane@linuxpower.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
