)]}'
{
  "log": [
    {
      "commit": "4d4c4e24cf48400a24d33feffc7cca4f4e8cabe1",
      "tree": "b1d4862302c3cc56a10bed9605c9e9b0379a234b",
      "parents": [
        "af7bdbafe3812af406ce07631effd2b96aae2dba"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Feb 22 00:05:07 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Feb 22 00:05:07 2013 +0100"
      },
      "message": "irq: Remove IRQ_EXIT_OFFSET workaround\n\nThe IRQ_EXIT_OFFSET trick was used to make sure the irq\ndoesn\u0027t get preempted after we substract the HARDIRQ_OFFSET\nuntil we are entirely done with any code in irq_exit().\n\nThis workaround was necessary because some archs may call\nirq_exit() with irqs enabled and there is still some code\nin the end of this function that is not covered by the\nHARDIRQ_OFFSET but want to stay non-preemptible.\n\nNow that irq are always disabled in irq_exit(), the whole code\nis guaranteed not to be preempted. We can thus remove this hack.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "af7bdbafe3812af406ce07631effd2b96aae2dba",
      "tree": "4dddf6a7a5cbb9b04d1b0d04af1f25383e27fa19",
      "parents": [
        "facd8b80c67a3cf64a467c4a2ac5fb31f2e6745b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 21 18:21:30 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 21 20:52:34 2013 +0100"
      },
      "message": "Revert \"nohz: Make tick_nohz_irq_exit() irq safe\"\n\nThis reverts commit 351429b2e62b6545bb10c756686393f29ba268a1. The\nextra local_irq_save() is not longer needed as the call site now\nalways calls with interrupts disabled.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "facd8b80c67a3cf64a467c4a2ac5fb31f2e6745b",
      "tree": "5feb802348c3fe708b9ea562e5e6b3c753ad7fe6",
      "parents": [
        "74eed0163d0def3fce27228d9ccf3d36e207b286"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 21 18:17:42 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 21 20:52:24 2013 +0100"
      },
      "message": "irq: Sanitize invoke_softirq\n\nWith the irq protection in irq_exit, we can remove the #ifdeffery and\nthe bh_disable/enable dance in invoke_softirq()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linuxfoundation.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1302202155320.22263@ionos\n\n"
    },
    {
      "commit": "74eed0163d0def3fce27228d9ccf3d36e207b286",
      "tree": "28aa386f02468504846ebec731e9ba432e4a4010",
      "parents": [
        "e5ab012c3271990e8457055c25cafddc1ae8aa6b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 20 22:00:48 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 21 20:52:24 2013 +0100"
      },
      "message": "irq: Ensure irq_exit() code runs with interrupts disabled\n\nWe had already a few problems with code called from irq_exit() when\ninterrupted from a nesting interrupt. This can happen on architectures\nwhich do not define __ARCH_IRQ_EXIT_IRQS_DISABLED.\n\n__ARCH_IRQ_EXIT_IRQS_DISABLED should go away and we want to make it\nmandatory to call irq_exit() with interrupts disabled.\n\nAs a temporary protection disable interrupts for those architectures\nwhich do not define __ARCH_IRQ_EXIT_IRQS_DISABLED and add a WARN_ONCE\nwhen an architecture which defines __ARCH_IRQ_EXIT_IRQS_DISABLED calls\nirq_exit() with interrupts enabled.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linuxfoundation.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1302202155320.22263@ionos\n\n"
    },
    {
      "commit": "e5ab012c3271990e8457055c25cafddc1ae8aa6b",
      "tree": "6c08a944d66fa68928a05b0792ad013c5e2a3da6",
      "parents": [
        "1a13c0b181f218bf56a1a6b8edbaf2876b22314b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 20 16:15:36 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 21 20:52:24 2013 +0100"
      },
      "message": "nohz: Make tick_nohz_irq_exit() irq safe\n\nAs it stands, irq_exit() may or may not be called with\nirqs disabled, depending on __ARCH_IRQ_EXIT_IRQS_DISABLED\nthat the arch can define.\n\nIt makes tick_nohz_irq_exit() unsafe. For example two\ninterrupts can race in tick_nohz_stop_sched_tick(): the inner\nmost one computes the expiring time on top of the timer list,\nthen it\u0027s interrupted right before reprogramming the\nclock. The new interrupt enqueues a new timer list timer,\nit reprogram the clock to take it into account and it exits.\nThe CPUs resumes the inner most interrupt and performs the clock\nreprogramming without considering the new timer list timer.\n\nThis regression has been introduced by:\n     280f06774afedf849f0b34248ed6aff57d0f6908\n     (\"nohz: Separate out irq exit and idle loop dyntick logic\")\n\nLet\u0027s fix it right now with the appropriate protections.\n\nA saner long term solution will be to remove\n__ARCH_IRQ_EXIT_IRQS_DISABLED and mandate that irq_exit() is called\nwith interrupts disabled.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linuxfoundation.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e #v3.2+\nLink: http://lkml.kernel.org/r/1361373336-11337-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "121027a7a64a12e9e5c0289f12473ff11678a812",
      "tree": "741dd57ee06d9607d9126a7ae9014cd087e54d32",
      "parents": [
        "5abcd76f5d896de014bd8d1486107c483659d40d",
        "63a3f603413ffe82ad775f2d62a5afff87fd94a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:12:03 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:12:03 2013 -0800"
      },
      "message": "Merge branch \u0027x86-build-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull two x86 kernel build changes from Ingo Molnar:\n \"The first change modifies how \u0027make oldconfig\u0027 works on cross-bitness\n  situations on x86.  It was felt the new behavior of preserving the\n  bitness of the .config is more logical.  This is a leftover of the\n  merge.\n\n  The second change eliminates a Perl warning.  (There\u0027s another, more\n  complete fix resulting of this warning fix, which second fix in flight\n  to you via the kbuild tree, which will remove the timeconst.pl script\n  altogether.)\"\n\n* \u0027x86-build-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timeconst.pl: Eliminate Perl warning\n  x86: Default to ARCH\u003dx86 to avoid overriding CONFIG_64BIT\n"
    },
    {
      "commit": "5800700f66678ea5c85e7d62b138416070bf7f60",
      "tree": "4aeff1edb0429eb222ddea97701d1ab1efbca2d0",
      "parents": [
        "266d7ad7f4fe2f44b91561f5b812115c1b3018ab",
        "af8d102f999a41c0189bd2cce488bac2ee88c29b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:07:27 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:07:27 2013 -0800"
      },
      "message": "Merge branch \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/apic changes from Ingo Molnar:\n \"Main changes:\n\n   - Multiple MSI support added to the APIC, PCI and AHCI code - acked\n     by all relevant maintainers, by Alexander Gordeev.\n\n     The advantage is that multiple AHCI ports can have multiple MSI\n     irqs assigned, and can thus spread to multiple CPUs.\n\n     [ Drivers can make use of this new facility via the\n       pci_enable_msi_block_auto() method ]\n\n   - x86 IOAPIC code from interrupt remapping cleanups from Joerg\n     Roedel:\n\n     These patches move all interrupt remapping specific checks out of\n     the x86 core code and replaces the respective call-sites with\n     function pointers.  As a result the interrupt remapping code is\n     better abstraced from x86 core interrupt handling code.\n\n   - Various smaller improvements, fixes and cleanups.\"\n\n* \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)\n  x86/intel/irq_remapping: Clean up x2apic opt-out security warning mess\n  x86, kvm: Fix intialization warnings in kvm.c\n  x86, irq: Move irq_remapped out of x86 core code\n  x86, io_apic: Introduce eoi_ioapic_pin call-back\n  x86, msi: Introduce x86_msi.compose_msi_msg call-back\n  x86, irq: Introduce setup_remapped_irq()\n  x86, irq: Move irq_remapped() check into free_remapped_irq\n  x86, io-apic: Remove !irq_remapped() check from __target_IO_APIC_irq()\n  x86, io-apic: Move CONFIG_IRQ_REMAP code out of x86 core\n  x86, irq: Add data structure to keep AMD specific irq remapping information\n  x86, irq: Move irq_remapping_enabled declaration to iommu code\n  x86, io_apic: Remove irq_remapping_enabled check in setup_timer_IRQ0_pin\n  x86, io_apic: Move irq_remapping_enabled checks out of check_timer()\n  x86, io_apic: Convert setup_ioapic_entry to function pointer\n  x86, io_apic: Introduce set_affinity function pointer\n  x86, msi: Use IRQ remapping specific setup_msi_irqs routine\n  x86, hpet: Introduce x86_msi_ops.setup_hpet_msi\n  x86, io_apic: Introduce x86_io_apic_ops.print_entries for debugging\n  x86, io_apic: Introduce x86_io_apic_ops.disable()\n  x86, apic: Mask IO-APIC and PIC unconditionally on LAPIC resume\n  ...\n"
    },
    {
      "commit": "266d7ad7f4fe2f44b91561f5b812115c1b3018ab",
      "tree": "45acf12d5cb170205ccffe24b9f24672ff8bff2e",
      "parents": [
        "bcbd818c069b9e1bf82517401225b152a33968e2",
        "36dfbbf136db0d645bacfd42ce7d9d6928ea532d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:05:45 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:05:45 2013 -0800"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer changes from Ingo Molnar:\n \"Main changes:\n\n   - ntp: Add CONFIG_RTC_SYSTOHC: a generic RTC driver facility\n     complementing the existing CONFIG_RTC_HCTOSYS, which uses NTP to\n     keep the hardware clock updated.\n\n   - posix-timers: Fix clock_adjtime to always return timex data on\n     success.  This is changing the ABI, but no breakage was expected\n     and found - caution is warranted nevertheless.\n\n   - platform persistent clock improvements/cleanups.\n\n   - clockevents: refactor timer broadcast handling to be more generic\n     and less duplicated with matching architecture code (mostly ARM\n     motivated.)\n\n   - various fixes and cleanups\"\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timers/x86/hpet: Use HPET_COUNTER to specify the hpet counter in vread_hpet()\n  posix-cpu-timers: Fix nanosleep task_struct leak\n  clockevents: Fix generic broadcast for FEAT_C3STOP\n  time, Fix setting of hardware clock in NTP code\n  hrtimer: Prevent hrtimer_enqueue_reprogram race\n  clockevents: Add generic timer broadcast function\n  clockevents: Add generic timer broadcast receiver\n  timekeeping: Switch HAS_PERSISTENT_CLOCK to ALWAYS_USE_PERSISTENT_CLOCK\n  x86/time/rtc: Don\u0027t print extended CMOS year when reading RTC\n  x86: Select HAS_PERSISTENT_CLOCK on x86\n  timekeeping: Add CONFIG_HAS_PERSISTENT_CLOCK option\n  rtc: Skip the suspend/resume handling if persistent clock exist\n  timekeeping: Add persistent_clock_exist flag\n  posix-timers: Fix clock_adjtime to always return timex data on success\n  Round the calculated scale factor in set_cyc2ns_scale()\n  NTP: Add a CONFIG_RTC_SYSTOHC configuration\n  MAINTAINERS: Update John Stultz\u0027s email\n  time: create __getnstimeofday for WARNless calls\n"
    },
    {
      "commit": "bcbd818c069b9e1bf82517401225b152a33968e2",
      "tree": "3fcdcf02b15fdd77998589a6158d0e36ba137d1c",
      "parents": [
        "d652e1eb8e7b739fccbfb503a3da3e9f640fbf3d",
        "14e568e78f6f80ca1e27256641ddf524c7dbdc51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:04:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 19:04:55 2013 -0800"
      },
      "message": "Merge branch \u0027smp-hotplug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull preparatory smp/hotplug patches from Ingo Molnar:\n \"Some early preparatory changes for the WIP hotplug rework by Thomas\n  Gleixner.\"\n\n* \u0027smp-hotplug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  stop_machine: Use smpboot threads\n  stop_machine: Store task reference in a separate per cpu variable\n  smpboot: Allow selfparking per cpu threads\n"
    },
    {
      "commit": "d652e1eb8e7b739fccbfb503a3da3e9f640fbf3d",
      "tree": "55ab77bad0cbb045eac0b84b80d63f88f1ae09e6",
      "parents": [
        "8f55cea410dbc56114bb71a3742032070c8108d0",
        "77852fea6e2442a0e654a9292060489895de18c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"Main changes:\n\n   - scheduler side full-dynticks (user-space execution is undisturbed\n     and receives no timer IRQs) preparation changes that convert the\n     cputime accounting code to be full-dynticks ready, from Frederic\n     Weisbecker.\n\n   - Initial sched.h split-up changes, by Clark Williams\n\n   - select_idle_sibling() performance improvement by Mike Galbraith:\n\n        \" 1 tbench pair (worst case) in a 10 core + SMT package:\n\n          pre   15.22 MB/sec 1 procs\n          post 252.01 MB/sec 1 procs \"\n\n  - sched_rr_get_interval() ABI fix/change.  We think this detail is not\n    used by apps (so it\u0027s not an ABI in practice), but lets keep it\n    under observation.\n\n  - misc RT scheduling cleanups, optimizations\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  sched/rt: Add \u003clinux/sched/rt.h\u003e header to \u003clinux/init_task.h\u003e\n  cputime: Remove irqsave from seqlock readers\n  sched, powerpc: Fix sched.h split-up build failure\n  cputime: Restore CPU_ACCOUNTING config defaults for PPC64\n  sched/rt: Move rt specific bits into new header file\n  sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n  sched: Move sched.h sysctl bits into separate header\n  sched: Fix signedness bug in yield_to()\n  sched: Fix select_idle_sibling() bouncing cow syndrome\n  sched/rt: Further simplify pick_rt_task()\n  sched/rt: Do not account zero delta_exec in update_curr_rt()\n  cputime: Safely read cputime of full dynticks CPUs\n  kvm: Prepare to add generic guest entry/exit callbacks\n  cputime: Use accessors to read task cputime stats\n  cputime: Allow dynamic switch between tick/virtual based cputime accounting\n  cputime: Generic on-demand virtual cputime accounting\n  cputime: Move default nsecs_to_cputime() to jiffies based cputime file\n  cputime: Librarize per nsecs resolution cputime definitions\n  cputime: Avoid multiplication overflow on utime scaling\n  context_tracking: Export context state for generic vtime\n  ...\n\nFix up conflict in kernel/context_tracking.c due to comment additions.\n"
    },
    {
      "commit": "8f55cea410dbc56114bb71a3742032070c8108d0",
      "tree": "59605f0ee961274b22f91add33f5c32459471a83",
      "parents": [
        "b7133a9a103655cda254987a3c0975fd9d8c443f",
        "e259514eef764a5286873618e34c560ecb6cff13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf changes from Ingo Molnar:\n \"There are lots of improvements, the biggest changes are:\n\n  Main kernel side changes:\n\n   - Improve uprobes performance by adding \u0027pre-filtering\u0027 support, by\n     Oleg Nesterov.\n\n   - Make some POWER7 events available in sysfs, equivalent to what was\n     done on x86, from Sukadev Bhattiprolu.\n\n   - tracing updates by Steve Rostedt - mostly misc fixes and smaller\n     improvements.\n\n   - Use perf/event tracing to report PCI Express advanced errors, by\n     Tony Luck.\n\n   - Enable northbridge performance counters on AMD family 15h, by Jacob\n     Shin.\n\n   - This tracing commit:\n\n        tracing: Remove the extra 4 bytes of padding in events\n\n     changes the ABI.  All involved parties (PowerTop in particular)\n     seem to agree that it\u0027s safe to do now with the introduction of\n     libtraceevent, but the devil is in the details ...\n\n  Main tooling side changes:\n\n   - Add \u0027event group view\u0027, from Namyung Kim:\n\n     To use it, \u0027perf record\u0027 should group events when recording.  And\n     then perf report parses the saved group relation from file header\n     and prints them together if --group option is provided.  You can\n     use the \u0027perf evlist\u0027 command to see event group information:\n\n        $ perf record -e \u0027{ref-cycles,cycles}\u0027 noploop 1\n        [ perf record: Woken up 2 times to write data ]\n        [ perf record: Captured and wrote 0.385 MB perf.data (~16807 samples) ]\n\n        $ perf evlist --group\n        {ref-cycles,cycles}\n\n     With this example, default perf report will show you each event\n     separately.\n\n     You can use --group option to enable event group view:\n\n        $ perf report --group\n        ...\n        # group: {ref-cycles,cycles}\n        # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n        # Samples: 7K of event \u0027anon group { ref-cycles, cycles }\u0027\n        # Event count (approx.): 6876107743\n        #\n        #         Overhead  Command      Shared Object                      Symbol\n        # ................  .......  .................  ..........................\n            99.84%  99.76%  noploop  noploop            [.] main\n             0.07%   0.00%  noploop  ld-2.15.so         [.] strcmp\n             0.03%   0.00%  noploop  [kernel.kallsyms]  [k] timerqueue_del\n             0.03%   0.03%  noploop  [kernel.kallsyms]  [k] sched_clock_cpu\n             0.02%   0.00%  noploop  [kernel.kallsyms]  [k] account_user_time\n             0.01%   0.00%  noploop  [kernel.kallsyms]  [k] __alloc_pages_nodemask\n             0.00%   0.00%  noploop  [kernel.kallsyms]  [k] native_write_msr_safe\n             0.00%   0.11%  noploop  [kernel.kallsyms]  [k] _raw_spin_lock\n             0.00%   0.06%  noploop  [kernel.kallsyms]  [k] find_get_page\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] rcu_check_callbacks\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] __current_kernel_time\n\n     As you can see the Overhead column now contains both of ref-cycles\n     and cycles and header line shows group information also - \u0027anon\n     group { ref-cycles, cycles }\u0027.  The output is sorted by period of\n     group leader first.\n\n   - Initial GTK+ annotate browser, from Namhyung Kim.\n\n   - Add option for runtime switching perf data file in perf report,\n     just press \u0027s\u0027 and a menu with the valid files found in the current\n     directory will be presented, from Feng Tang.\n\n   - Add support to display whole group data for raw columns, from Jiri\n     Olsa.\n\n   - Add per processor socket count aggregation in perf stat, from\n     Stephane Eranian.\n\n   - Add interval printing in \u0027perf stat\u0027, from Stephane Eranian.\n\n   - \u0027perf test\u0027 improvements\n\n   - Add support for wildcards in tracepoint system name, from Jiri\n     Olsa.\n\n   - Add anonymous huge page recognition, from Joshua Zhu.\n\n   - perf build-id cache now can show DSOs present in a perf.data file\n     that are not in the cache, to integrate with build-id servers being\n     put in place by organizations such as Fedora.\n\n   - perf top now shares more of the evsel config/creation routines with\n     \u0027record\u0027, paving the way for further integration like \u0027top\u0027\n     snapshots, etc.\n\n   - perf top now supports DWARF callchains.\n\n   - Fix mmap limitations on 32-bit, fix from David Miller.\n\n   - \u0027perf bench numa mem\u0027 NUMA performance measurement suite\n\n   - ... and lots of fixes, performance improvements, cleanups and other\n     improvements I failed to list - see the shortlog and git log for\n     details.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (270 commits)\n  perf/x86/amd: Enable northbridge performance counters on AMD family 15h\n  perf/hwbp: Fix cleanup in case of kzalloc failure\n  perf tools: Fix build with bison 2.3 and older.\n  perf tools: Limit unwind support to x86 archs\n  perf annotate: Make it to be able to skip unannotatable symbols\n  perf gtk/annotate: Fail early if it can\u0027t annotate\n  perf gtk/annotate: Show source lines with gray color\n  perf gtk/annotate: Support multiple event annotation\n  perf ui/gtk: Implement basic GTK2 annotation browser\n  perf annotate: Fix warning message on a missing vmlinux\n  perf buildid-cache: Add --update option\n  uprobes/perf: Avoid uprobe_apply() whenever possible\n  uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE\n  uprobes/perf: Teach trace_uprobe/perf code to pre-filter\n  uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event\u0027s\n  uprobes: Introduce uprobe_apply()\n  perf: Introduce hw_perf_event-\u003etp_target and -\u003etp_list\n  uprobes/perf: Always increment trace_uprobe-\u003enhit\n  uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe\n  uprobes/tracing: Introduce is_trace_uprobe_enabled()\n  ...\n"
    },
    {
      "commit": "b7133a9a103655cda254987a3c0975fd9d8c443f",
      "tree": "85422ad8c32f1782a2ed3b87b7264b1b3953c105",
      "parents": [
        "e84cf5d0fd53badf3a93c790e280cc92a69ed999",
        "36a5df85e9a3c218b73f6cf80098016ca3f0410d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:47:58 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:47:58 2013 -0800"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq core changes from Ingo Molnar:\n \"The biggest changes are the IRQ-work and printk changes from Frederic\n  Weisbecker, which prepare the code for \u0027full dynticks\u0027 (the ability to\n  stop or slow down the periodic tick arbitrarily, not just in idle time\n  as today):\n\n   - Don\u0027t stop tick with irq works pending.  This fix is generally\n     useful and concerns archs that can\u0027t raise self IPIs.\n\n   - Flush irq works before CPU offlining.\n\n   - Introduce \"lazy\" irq works that can wait for the next tick to be\n     executed, unless it\u0027s stopped.\n\n   - Implement klogd wake up using irq work.  This removes the ad-hoc\n     printk_tick()/printk_needs_cpu() hooks and make it working even in\n     dynticks mode.\n\n   - Cleanups and fixes.\"\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  genirq: Export enable/disable_percpu_irq()\n  arch Kconfig: Remove references to IRQ_PER_CPU\n  irq_work: Remove return value from the irq_work_queue() function\n  genirq: Avoid deadlock in spurious handling\n  printk: Wake up klogd using irq_work\n  irq_work: Make self-IPIs optable\n  irq_work: Warn if there\u0027s still work on cpu_down\n  irq_work: Flush work on CPU_DYING\n  irq_work: Don\u0027t stop the tick with pending works\n  nohz: Add API to check tick state\n  irq_work: Remove CONFIG_HAVE_IRQ_WORK\n  irq_work: Fix racy check on work pending flag\n  irq_work: Fix racy IRQ_WORK_BUSY flag setting\n"
    },
    {
      "commit": "e84cf5d0fd53badf3a93c790e280cc92a69ed999",
      "tree": "abc4d04bc31e5682794d1ea90c38cfeb4d5c9b97",
      "parents": [
        "19f949f52599ba7c3f67a5897ac6be14bfcb1200",
        "ac0e32024b8f40987b3db7d2defdc6b5153ba354"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:45:20 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:45:20 2013 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU changes from Ingo Molnar:\n \"SRCU changes:\n\n   - These include debugging aids, updates that move towards the goal of\n     permitting srcu_read_lock() and srcu_read_unlock() to be used from\n     idle and offline CPUs, and a few small fixes.\n\n  Changes to rcutorture and to RCU documentation:\n\n   - Posted to LKML at https://lkml.org/lkml/2013/1/26/188\n\n  Enhancements to uniprocessor handling in tiny RCU:\n\n   - Posted to LKML at https://lkml.org/lkml/2013/1/27/2\n\n  Tag RCU callbacks with grace-period number to simplify callback\n  advancement:\n\n   - Posted to LKML at https://lkml.org/lkml/2013/1/26/203\n\n  Miscellaneous fixes:\n\n   - Posted to LKML at https://lkml.org/lkml/2013/1/26/204\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  srcu: use ACCESS_ONCE() to access sp-\u003ecompleted in srcu_read_lock()\n  srcu: Update synchronize_srcu_expedited()\u0027s comments\n  srcu: Update synchronize_srcu()\u0027s comments\n  srcu: Remove checks preventing idle CPUs from calling srcu_read_lock()\n  srcu: Remove checks preventing offline CPUs from calling srcu_read_lock()\n  srcu: Simple cleanup for cleanup_srcu_struct()\n  srcu: Add might_sleep() annotation to synchronize_srcu()\n  srcu: Simplify __srcu_read_unlock() via this_cpu_dec()\n  rcu: Allow rcutorture to be built at low optimization levels\n  rcu: Make rcutorture\u0027s shuffler task shuffle recently added tasks\n  rcu: Allow TREE_PREEMPT_RCU on UP systems\n  rcu: Provide RCU CPU stall warnings for tiny RCU\n  context_tracking: Add comments on interface and internals\n  rcu: Remove obsolete Kconfig option from comment\n  rcu: Remove unused code originally used for context tracking\n  rcu: Consolidate debugging Kconfig options\n  rcu: Correct \u0027optimized\u0027 to \u0027optimize\u0027 in header comment\n  rcu: Trace callback acceleration\n  rcu: Tag callback lists with corresponding grace-period number\n  rcutorture: Don\u0027t compare ptr with 0\n  ...\n"
    },
    {
      "commit": "cdc4e86b58a95005ef500916b4a8e91a0037a822",
      "tree": "208e5eaf42c25fae3dfe5d086687c2a2fa30418b",
      "parents": [
        "993db4b45fd99949d8f6e004a7744b523dca473a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 15 23:47:07 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 19 08:05:53 2013 +0100"
      },
      "message": "cputime: Remove irqsave from seqlock readers\n\nThe reader side code has no requirement to disable interrupts while\nsampling data. The sequence counter is enough to ensure consistency.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "36a5df85e9a3c218b73f6cf80098016ca3f0410d",
      "tree": "83c8d0189615193b2d6111a48ec79097d1661f54",
      "parents": [
        "077931446b85e7858bf9dc0927cd116669b965d2"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Fri Feb 01 15:04:26 2013 -0500"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 18 21:42:25 2013 +0100"
      },
      "message": "genirq: Export enable/disable_percpu_irq()\n\nThese functions are used by the tilegx onchip network driver, and it\u0027s\nuseful to be able to load that driver as a module.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nLink: http://lkml.kernel.org/r/201302012043.r11KhNZF024371@farm-0021.internal.tilera.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e6c42c295e071dd74a66b5a9fcf4f44049888ed8",
      "tree": "7d417f64b7fa04511b4006eb4907ef41b7e401ed",
      "parents": [
        "9f4646d28362bc424b8a4c7d09ea1c2f1759371a"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Fri Feb 15 11:08:11 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 15 11:41:56 2013 +0100"
      },
      "message": "posix-cpu-timers: Fix nanosleep task_struct leak\n\nThe trinity fuzzer triggered a task_struct reference leak via\nclock_nanosleep with CPU_TIMERs. do_cpu_nanosleep() calls\nposic_cpu_timer_create(), but misses a corresponding\nposix_cpu_timer_del() which leads to the task_struct reference leak.\n\nReported-and-tested-by: Tommi Rantala \u003ctt.rantala@gmail.com\u003e\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/20130215100810.GF4392@redhat.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "02e176af92f3e2e9ec3a48792036566af2dcd534",
      "tree": "9d4dd00367eeb909edf4c1a30e2e8178efb9dc5a",
      "parents": [
        "85df3b3769222894e9692b383c7af124b7721086"
      ],
      "author": {
        "name": "Daniel Baluta",
        "email": "dbaluta@ixiacom.com",
        "time": "Wed Feb 06 23:29:20 2013 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 14 17:06:39 2013 -0300"
      },
      "message": "perf/hwbp: Fix cleanup in case of kzalloc failure\n\nObviously this is a typo and could result in memory leaks if kzalloc\nfails on a given cpu.\n\nSigned-off-by: Daniel Baluta \u003cdbaluta@ixiacom.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1360186160-7566-1-git-send-email-dbaluta@ixiacom.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "9f4646d28362bc424b8a4c7d09ea1c2f1759371a",
      "tree": "0ff9dc36f1ef598736725f3eb30e164128d39774",
      "parents": [
        "86c8ead593305915729a7b67f738832764fb4ba7",
        "84e345e4e209cbe796c88fa2ad1732d7121ec100"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 14 19:46:10 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 14 19:46:10 2013 +0100"
      },
      "message": "Merge branch \u0027fortglx/3.9/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n"
    },
    {
      "commit": "14e568e78f6f80ca1e27256641ddf524c7dbdc51",
      "tree": "1f75f09c7f8adfa6dd55ef9bd0b547fcaf700f45",
      "parents": [
        "860a0ffaa3e1a9cf0ebb5f43d6a2a2ce67463e93"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 31 12:11:14 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 14 15:29:38 2013 +0100"
      },
      "message": "stop_machine: Use smpboot threads\n\nUse the smpboot thread infrastructure. Mark the stopper thread\nselfparking and park it after it has finished the take_cpu_down()\nwork.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Arjan van de Veen \u003carjan@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Richard Weinberger \u003crw@linutronix.de\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130131120741.686315164@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "860a0ffaa3e1a9cf0ebb5f43d6a2a2ce67463e93",
      "tree": "004c5b928e59605276609459d92db21bb41204e3",
      "parents": [
        "7d7e499f7333f68b7e7f67d14b9c1480913b4afb"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 31 12:11:13 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 14 15:29:37 2013 +0100"
      },
      "message": "stop_machine: Store task reference in a separate per cpu variable\n\nTo allow the stopper thread being managed by the smpboot thread\ninfrastructure separate out the task storage from the stopper data\nstructure.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Arjan van de Veen \u003carjan@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Richard Weinberger \u003crw@linutronix.de\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130131120741.626690384@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7d7e499f7333f68b7e7f67d14b9c1480913b4afb",
      "tree": "6924ef4eb2a08d7129dc1620d1a557e484df3680",
      "parents": [
        "211b0cdc7dc574e5e756bdf1cc2f4a16b7f6e07e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 31 12:11:12 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Feb 14 15:29:37 2013 +0100"
      },
      "message": "smpboot: Allow selfparking per cpu threads\n\nThe stop machine threads are still killed when a cpu goes offline. The\nreason is that the thread is used to bring the cpu down, so it can\u0027t\nbe parked along with the other per cpu threads.\n\nAllow a per cpu thread to be excluded from automatic parking, so it\ncan park itself once it\u0027s done\n\nAdd a create callback function as well.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Arjan van de Veen \u003carjan@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Richard Weinberger \u003crw@linutronix.de\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130131120741.553993267@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6e6668845fe593414a938b7726d6359b5570ac5a",
      "tree": "9cd88fc22e8f5eb8250fbd27466b526f57f8a3d4",
      "parents": [
        "4ba902b5741859a04fdb90d675b9a87721a3fd59"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 12 13:46:23 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 12 14:34:00 2013 -0800"
      },
      "message": "kernel/pid.c: reenable interrupts when alloc_pid() fails because init has exited\n\nWe\u0027re forgetting to reenable local interrupts on an error path.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nReported-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86c8ead593305915729a7b67f738832764fb4ba7",
      "tree": "eb33b75076c2b50dc8ae8ec0e240de876d31cd45",
      "parents": [
        "b22affe0aef429d657bc6505aacb1c569340ddd2",
        "5d1d9a29bc0772abee765f09513779a2ef0ebbfd"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 12 20:22:56 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 12 20:22:56 2013 +0100"
      },
      "message": "Merge branch \u0027timers/for-arm\u0027 into timers/core\n"
    },
    {
      "commit": "5d1d9a29bc0772abee765f09513779a2ef0ebbfd",
      "tree": "7905268873812518cf4f6196f2100e5224733f22",
      "parents": [
        "12ad10004645d38356b14d1fbba379c523a61916"
      ],
      "author": {
        "name": "Mark Rutland",
        "email": "mark.rutland@arm.com",
        "time": "Fri Feb 08 15:24:07 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 12 20:22:28 2013 +0100"
      },
      "message": "clockevents: Fix generic broadcast for FEAT_C3STOP\n\nCommit 12ad100046: \"clockevents: Add generic timer broadcast function\"\nmade tick_device_uses_broadcast set up the generic broadcast function\nfor dummy devices (where !tick_device_is_functional(dev)), but neglected\nto set up the broadcast function for devices that stop in low power\nstates (with the CLOCK_EVT_FEAT_C3STOP flag).\n\nWhen these devices enter low power states they will not have the generic\nbroadcast function assigned, and will bring down the system when an\nattempt is made to broadcast to them.\n\nThis patch ensures that the broadcast function is also assigned for\ndevices which require broadcast in low power states.\n\nReported-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Rutland \u003cmark.rutland@arm.com\u003e\nTested-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nCc: nico@linaro.org\nCc: Marc.Zyngier@arm.com\nCc: Will.Deacon@arm.com\nCc: santosh.shilimkar@ti.com\nCc: john.stultz@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "84e345e4e209cbe796c88fa2ad1732d7121ec100",
      "tree": "f73f35d0e72a6c6f3e4b3ef430608aca3a5e8d54",
      "parents": [
        "6f16eebe1ff82176339a0439c98ebec9768b0ee2"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Fri Feb 08 17:59:53 2013 -0500"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Feb 08 15:07:05 2013 -0800"
      },
      "message": "time, Fix setting of hardware clock in NTP code\n\nAt init time, if the system time is \"warped\" forward in warp_clock()\nit will differ from the hardware clock by sys_tz.tz_minuteswest.  This time\ndifference is not taken into account when ntp updates the hardware clock,\nand this causes the system time to jump forward by this offset every reboot.\n\nThe kernel must take this offset into account when writing the system time\nto the hardware clock in the ntp code.  This patch adds\npersistent_clock_is_local which indicates that an offset has been applied\nin warp_clock() and accounts for the \"warp\" before writing the hardware\nclock.\n\nx86 does not have this problem as rtc writes are software limited to a\n+/-15 minute window relative to the current rtc time.  Other arches, such\nas powerpc, however do a full synchronization of the system time to the\nrtc and will see this problem.\n\n[v2]: generated against tip/timers/core\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "b2fe8ba674e8acbb9e8e63510b802c6d054d88a3",
      "tree": "1bd1defbfe3f285dfa7c77f94bc5523ac4a82679",
      "parents": [
        "f42d24a1d20d2e72d1e5d48930f18b138dfad117"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Feb 04 19:05:43 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:08 2013 +0100"
      },
      "message": "uprobes/perf: Avoid uprobe_apply() whenever possible\n\nuprobe_perf_open/close call the costly uprobe_apply() every time,\nwe can avoid it if:\n\n\t- \"nr_systemwide !\u003d 0\" is not changed.\n\n\t- There is another process/thread with the same -\u003emm.\n\n\t- copy_proccess() does inherit_event(). dup_mmap() preserves the\n\t  inserted breakpoints.\n\n\t- event-\u003eattr.enable_on_exec \u003d\u003d T, we can rely on uprobe_mmap()\n\t  called by exec/mmap paths.\n\n\t- tp_target is exiting. Only _close() checks PF_EXITING, I don\u0027t\n\t  think TRACE_REG_PERF_OPEN can hit the dying task too often.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "f42d24a1d20d2e72d1e5d48930f18b138dfad117",
      "tree": "10696fc2f0a21d60a7fb1581efecd172435f0408",
      "parents": [
        "31ba334836c0ac0039084859f14a5b96858493dc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Feb 04 17:48:34 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:07 2013 +0100"
      },
      "message": "uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE\n\nChange uprobe_trace_func() and uprobe_perf_func() to return \"int\". Change\nuprobe_dispatcher() to return \"trace_ret | perf_ret\" although this is not\nneeded, currently TP_FLAG_TRACE/TP_FLAG_PROFILE are mutually exclusive.\n\nThe only functional change is that uprobe_perf_func() checks the filtering\ntoo and returns UPROBE_HANDLER_REMOVE if nobody wants to trace current.\n\nTesting:\n\n\t# perf probe -x /lib/libc.so.6 syscall\n\n\t# perf record -e probe_libc:syscall -i perl -e \u0027fork; syscall -1 for 1..10; wait\u0027\n\n\t# perf report --show-total-period\n\t\t100.00%            10     perl  libc-2.8.so    [.] syscall\n\nBefore this patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t20\n\nA child process doesn\u0027t have a counter, but still it hits this breakoint\n\"copied\" by dup_mmap().\n\nAfter the patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t11\n\nThe child process hits this int3 only once and does unapply_uprobe().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "31ba334836c0ac0039084859f14a5b96858493dc",
      "tree": "a6f8d72d58f165717481aae43fcabe25b326dce3",
      "parents": [
        "736288ba5016e255869c26296014eeff649971c2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Feb 04 17:11:58 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:07 2013 +0100"
      },
      "message": "uprobes/perf: Teach trace_uprobe/perf code to pre-filter\n\nFinally implement uprobe_perf_filter() which checks -\u003enr_systemwide or\n-\u003eperf_events to figure out whether we need to insert the breakpoint.\n\nuprobe_perf_open/close are changed to do uprobe_apply(true/false) when\nthe new perf event comes or goes away.\n\nNote that currently this is very suboptimal:\n\n\t- uprobe_register() called by TRACE_REG_PERF_REGISTER becomes a\n\t  heavy nop, consumer-\u003efilter() always returns F at this stage.\n\n\t  As it was already discussed we need uprobe_register_only() to\n\t  avoid the costly register_for_each_vma() when possible.\n\n\t- uprobe_apply() is oftenly overkill. Unless \"nr_systemwide !\u003d 0\"\n\t  changes we need uprobe_apply_mm(), unapply_uprobe() is almost\n\t  what we need.\n\n\t- uprobe_apply() can be simply avoided sometimes, see the next\n\t  changes.\n\nTesting:\n\n\t# perf probe -x /lib/libc.so.6 syscall\n\n\t# perl -e \u0027syscall -1 while 1\u0027 \u0026\n\t[1] 530\n\n\t# perf record -e probe_libc:syscall perl -e \u0027syscall -1 for 1..10; sleep 1\u0027\n\n\t# perf report --show-total-period\n\t\t100.00%            10     perl  libc-2.8.so    [.] syscall\n\nBefore this patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t79291\n\nA huge -\u003enrhit \u003d\u003d 79291 reflects the fact that the background process\n530 constantly hits this breakpoint too, even if doesn\u0027t contribute to\nthe output.\n\nAfter the patch:\n\n\t# cat /sys/kernel/debug/tracing/uprobe_profile\n\t\t/lib/libc.so.6 syscall\t\t\t\t10\n\nThis shows that only the target process was punished by int3.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "736288ba5016e255869c26296014eeff649971c2",
      "tree": "235ab829ec63136e19d97a817489484f88ad3da8",
      "parents": [
        "bdf8647c44766590ed02f9a84a450a796558b753"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Feb 03 20:58:35 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:06 2013 +0100"
      },
      "message": "uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event\u0027s\n\nIntroduce \"struct trace_uprobe_filter\" which records the \"active\"\nperf_event\u0027s attached to ftrace_event_call. For the start we simply\nuse list_head, we can optimize this later if needed. For example, we\ndo not really need to record an event with -\u003eparent !\u003d NULL, we can\nrely on parent-\u003echild_list. And we can certainly do some optimizations\nfor the case when 2 events have the same -\u003etp_target or tp_target-\u003emm.\n\nChange trace_uprobe_register() to process TRACE_REG_PERF_OPEN/CLOSE\nand add/del this perf_event to the list.\n\nWe can probably avoid any locking, but lets start with the \"obvioulsy\ncorrect\" trace_uprobe_filter-\u003erwlock which protects everything.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "bdf8647c44766590ed02f9a84a450a796558b753",
      "tree": "fb3510335d4c1ce67e109df2f80eb26c67d8b589",
      "parents": [
        "f22c1bb6b4706be3502b378cb14564449b15f983"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Feb 03 19:21:12 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:04 2013 +0100"
      },
      "message": "uprobes: Introduce uprobe_apply()\n\nCurrently it is not possible to change the filtering constraints after\nuprobe_register(), so a consumer can not, say, start to trace a task/mm\nwhich was previously filtered out, or remove the no longer needed bp\u0027s.\n\nIntroduce uprobe_apply() which simply does register_for_each_vma() again\nto consult uprobe_consumer-\u003efilter() and install/remove the breakpoints.\nThe only complication is that register_for_each_vma() can no longer\nassume that uprobe-\u003econsumers should be consulter if is_register \u003d\u003d T,\nso we change it to accept \"struct uprobe_consumer *new\" instead.\n\nUnlike uprobe_register(), uprobe_apply(true) doesn\u0027t do \"unregister\" if\nregister_for_each_vma() fails, it is up to caller to handle the error.\n\nNote: we probably need to cleanup the current interface, it is strange\nthat uprobe_apply/unregister need inode/offset. We should either change\nuprobe_register() to return \"struct uprobe *\", or add a private -\u003euprobe\nmember in uprobe_consumer. And in the long term uprobe_apply() should\ntake a single argument, uprobe or consumer, even \"bool add\" should go\naway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "f22c1bb6b4706be3502b378cb14564449b15f983",
      "tree": "ac7d09e3d42f4ab77cac56b9cb7fba2d4bcabf06",
      "parents": [
        "1b47aefd9b6bd439a4be43c47acd22987ac22db8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Feb 02 16:27:52 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:02 2013 +0100"
      },
      "message": "perf: Introduce hw_perf_event-\u003etp_target and -\u003etp_list\n\nsys_perf_event_open()-\u003eperf_init_event(event) is called before\nfind_get_context(event), this means that event-\u003ectx \u003d\u003d NULL when\nclass-\u003ereg(TRACE_REG_PERF_REGISTER/OPEN) is called and thus it\ncan\u0027t know if this event is per-task or system-wide.\n\nThis patch adds hw_perf_event-\u003etp_target for PERF_TYPE_TRACEPOINT,\nthis is analogous to PERF_TYPE_BREAKPOINT/bp_target we already have.\nThe patch also moves -\u003ebp_target up so that it can overlap with the\nnew member, this can help the compiler to generate the better code.\n\ntrace_uprobe_register() will use it for prefiltering to avoid the\nunnecessary breakpoints in mm\u0027s we do not want to trace.\n\n-\u003etp_target doesn\u0027t have its own reference, but we can rely on the\nfact that either sys_perf_event_open() holds a reference, or it is\nequal to event-\u003ectx-\u003etask. So this pointer is always valid until\nfree_event().\n\nAlso add the \"struct list_head tp_list\" into this union. It is not\nstrictly necessary, but it can simplify the next changes and we can\nadd it for free.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "1b47aefd9b6bd439a4be43c47acd22987ac22db8",
      "tree": "a3d0a40ce94f7e57d4375a77a0c74c0001b4bb67",
      "parents": [
        "a932b7381f81235530c3d0acbd3ba2c7537d78e5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 31 19:55:27 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:34 2013 +0100"
      },
      "message": "uprobes/perf: Always increment trace_uprobe-\u003enhit\n\nMove tu-\u003enhit++ from uprobe_trace_func() to uprobe_dispatcher().\n\n-\u003enhit counts how many time we hit the breakpoint inserted by this\nuprobe, we do not want to loose this info if uprobe was enabled by\nsys_perf_event_open().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a932b7381f81235530c3d0acbd3ba2c7537d78e5",
      "tree": "01fb4bbdd21cb67c63b6302ffbbbda22fdcbebcd",
      "parents": [
        "b64b007797c1e6d6b745c93c296ba1d5f4d72d86"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 31 19:47:23 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:33 2013 +0100"
      },
      "message": "uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe\n\ntrace_uprobe-\u003econsumer and \"struct uprobe_trace_consumer\" add the\nunnecessary indirection and complicate the code for no reason.\n\nThis patch simply embeds uprobe_consumer into \"struct trace_uprobe\",\nall other changes only fix the compilation errors.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "b64b007797c1e6d6b745c93c296ba1d5f4d72d86",
      "tree": "b2cfd860f68b421484d7992f354d62b8e6b7f1ce",
      "parents": [
        "7e4e28c53963e6cfa94d8109bb8f5233c5659048"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 31 19:15:30 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:30 2013 +0100"
      },
      "message": "uprobes/tracing: Introduce is_trace_uprobe_enabled()\n\nprobe_event_enable/disable() check tu-\u003econsumer !\u003d NULL to avoid the\nwrong uprobe_register/unregister().\n\nWe are going to kill this pointer and \"struct uprobe_trace_consumer\",\nso we add the new helper, is_trace_uprobe_enabled(), which can rely\non TP_FLAG_TRACE/TP_FLAG_PROFILE instead.\n\nNote: the current logic doesn\u0027t look optimal, it is not clear why\nTP_FLAG_TRACE/TP_FLAG_PROFILE are mutually exclusive, we will probably\nchange this later.\n\nAlso kill the unused TP_FLAG_UPROBE.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7e4e28c53963e6cfa94d8109bb8f5233c5659048",
      "tree": "5405bc0552ef0f2d8c67bb9ef6b391f5a7a504b3",
      "parents": [
        "4161824f18ff4f56f46595a4016c7315dd0d24f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jan 28 17:08:47 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:24:14 2013 +0100"
      },
      "message": "uprobes/tracing: Ensure inode !\u003d NULL in create_trace_uprobe()\n\nprobe_event_enable/disable() check tu-\u003einode !\u003d NULL at the start.\nThis is ugly, if igrab() can fail create_trace_uprobe() should not\nsucceed and \"postpone\" the failure.\n\nAnd S_ISREG(inode-\u003ei_mode) check added by d24d7dbf is not safe.\n\nNote: alloc_uprobe() should probably check igrab() !\u003d NULL as well.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4161824f18ff4f56f46595a4016c7315dd0d24f1",
      "tree": "0543311b70f8855f967fb41c3d7c3bf61c0c8a09",
      "parents": [
        "84d7ed799fd6c1366547d88ddb8188c65de3b94f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jan 27 18:36:24 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:10:19 2013 +0100"
      },
      "message": "uprobes/tracing: Fully initialize uprobe_trace_consumer before uprobe_register()\n\nprobe_event_enable() does uprobe_register() and only after that sets\nutc-\u003etu and tu-\u003econsumer/flags. This can race with uprobe_dispatcher()\nwhich can miss these assignments or see them out of order. Nothing\nreally bad can happen, but this doesn\u0027t look clean/safe.\n\nAnd this does not allow to use uprobe_consumer-\u003efilter() we are going\nto add, it is called by uprobe_register() and it needs utc-\u003etu.\n\nChange this code to initialize everything before uprobe_register(), and\nreset tu-\u003econsumer/flags if it fails. We can\u0027t race with event_disable(),\nthe caller holds event_mutex, and if we could the code would be wrong\nanyway.\n\nIn fact I think uprobe_trace_consumer should die, it buys nothing but\ncomplicates the code. We can simply add uprobe_consumer into trace_uprobe.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "84d7ed799fd6c1366547d88ddb8188c65de3b94f",
      "tree": "a40db2f5e04c02d087a37c53182335fc46803ea3",
      "parents": [
        "e8440c1458ba571bc3fac8a6beb53ff604199f5b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jan 27 18:20:45 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:10:17 2013 +0100"
      },
      "message": "uprobes/tracing: Fix dentry/mount leak in create_trace_uprobe()\n\ncreate_trace_uprobe() does kern_path() to find -\u003ed_inode, but forgets\nto do path_put(). We can do this right after igrab().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "e8440c1458ba571bc3fac8a6beb53ff604199f5b",
      "tree": "59abbd23435cd341250a028b4fa06826b7133fbe",
      "parents": [
        "af4355e91f15812df8608925738c91be57c580dd"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "jistone@redhat.com",
        "time": "Sun Jan 13 19:03:34 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:13 2013 +0100"
      },
      "message": "uprobes: Add exports for module use\n\nThe original pull message for uprobes (commit 654443e2) noted:\n\n  This tree includes uprobes support in \u0027perf probe\u0027 - but SystemTap\n  (and other tools) can take advantage of user probe points as well.\n\nIn order to actually be usable in module-based tools like SystemTap, the\ninterface needs to be exported.  This patch first adds the obvious\nexports for uprobe_register and uprobe_unregister.  Then it also adds\none for task_user_regset_view, which is necessary to get the correct\nstate of userspace registers.\n\nSigned-off-by: Josh Stone \u003cjistone@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "af4355e91f15812df8608925738c91be57c580dd",
      "tree": "d50a8fb2a2240f00e8d72a804de237552d7f1b36",
      "parents": [
        "608e7427c0a06de0d70374a9fd7defc8eb228b7e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:37:11 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:13 2013 +0100"
      },
      "message": "uprobes: Kill the bogus IS_ERR_VALUE(xol_vaddr) check\n\nutask-\u003exol_vaddr is either zero or valid, remove the bogus\nIS_ERR_VALUE() check in xol_free_insn_slot().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "608e7427c0a06de0d70374a9fd7defc8eb228b7e",
      "tree": "fa9d008fc34cd270613b63bbd9fd724c563daa44",
      "parents": [
        "aba51024e7159c93914557caaa2b8cda26331091"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:20:42 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Do not allocate current-\u003eutask unnecessary\n\nhandle_swbp() does get_utask() before can_skip_sstep() for no reason,\nwe do not need -\u003eutask if can_skip_sstep() succeeds.\n\nMove get_utask() to pre_ssout() who actually starts to use it. Move\nthe initialization of utask-\u003eactive_uprobe/state as well. This way\nthe whole initialization is consolidated in pre_ssout().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\n"
    },
    {
      "commit": "aba51024e7159c93914557caaa2b8cda26331091",
      "tree": "9883f94fdefa1347040be590b336e809ba6d3300",
      "parents": [
        "a6cb3f6d51253e9cf21a38b17c025018117809d7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:12:48 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Fix utask-\u003exol_vaddr leak in pre_ssout()\n\npre_ssout() should do xol_free_insn_slot() if arch_uprobe_pre_xol()\nfails, otherwise nobody will free the allocated slot.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a6cb3f6d51253e9cf21a38b17c025018117809d7",
      "tree": "f0ffafefd93cb97f550b0149b14e56a68c778576",
      "parents": [
        "5a2df662aafdabffb2cf3adb780a5adf66dfb3bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:00:06 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Do not play with utask in xol_get_insn_slot()\n\npre_ssout()-\u003exol_get_insn_slot() path is confusing and buggy. This patch\ncleanups the code, the next one fixes the bug.\n\nChange xol_get_insn_slot() to only allocate the slot and do nothing more,\nmove the initialization of utask-\u003exol_vaddr/vaddr into pre_ssout().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5a2df662aafdabffb2cf3adb780a5adf66dfb3bc",
      "tree": "758f73ec4d1a89c1e7ab416503732c59fd7839ee",
      "parents": [
        "9b545df809644912552360054c7bbe8b8a9e01fa"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 17:03:32 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Turn add_utask() into get_utask()\n\nRename add_utask() into get_utask() and change it to allocate on\ndemand to simplify the caller. Like get_xol_area() it will have\nmore users.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9b545df809644912552360054c7bbe8b8a9e01fa",
      "tree": "ca558fdf71d30ec0bc5ef2f821b06b45b13ff5b0",
      "parents": [
        "c8a82538001e1a68f4a319d5a75de90d1f284731"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 16:39:49 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Fold xol_alloc_area() into get_xol_area()\n\nCurrently only xol_get_insn_slot() does get_xol_area() + xol_alloc_area(),\nbut this will have more users and we do not want to copy-and-paste this\ncode. This patch simply moves xol_alloc_area() into get_xol_area() to\nsimplify the current and future code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c8a82538001e1a68f4a319d5a75de90d1f284731",
      "tree": "8f6ad569a44b3fb9179442fd6b9d07d42ec28229",
      "parents": [
        "74e59dfc6b19e3472a7c16ad57bc831e6e647895"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Dec 30 17:40:39 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Move alloc_page() from xol_add_vma() to xol_alloc_area()\n\nMove alloc_page() from xol_add_vma() to xol_alloc_area() to cleanup\nthe code. This separates the memory allocations and consolidates the\n-EALREADY cleanups and the error handling.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "74e59dfc6b19e3472a7c16ad57bc831e6e647895",
      "tree": "5047f177b6c604f83d4b9f62614acf93a08d34bd",
      "parents": [
        "cf31ec3f7fece93f3fce3ee5964e27857141ea47"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Dec 30 15:54:08 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Change handle_swbp() to expose bp_vaddr to handler_chain()\n\nChange handle_swbp() to set regs-\u003eip \u003d bp_vaddr in advance, this is\nwhat consumer-\u003ehandler() needs but uprobe_get_swbp_addr() is not\nexported.\n\nThis also simplifies the code and makes it more consistent across\nthe supported architectures. handle_swbp() becomes the only caller\nof uprobe_get_swbp_addr().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\n"
    },
    {
      "commit": "da1816b1caeccdff04531e763bb35d7caa3ed19f",
      "tree": "bbf3b1eda3f969a5115770f0aa1081feafd871cb",
      "parents": [
        "8a7f2fa0dea3b019500961b86d765e6fdd4bffb2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Dec 29 17:49:11 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Teach handler_chain() to filter out the probed task\n\nCurrrently the are 2 problems with pre-filtering:\n\n1. It is not possible to add/remove a task (mm) after uprobe_register()\n\n2. A forked child inherits all breakpoints and uprobe_consumer can not\n   control this.\n\nThis patch does the first step to improve the filtering. handler_chain()\nremoves the breakpoints installed by this uprobe from current-\u003emm if all\nhandlers return UPROBE_HANDLER_REMOVE.\n\nNote that handler_chain() relies on -\u003eregister_rwsem to avoid the race\nwith uprobe_register/unregister which can add/del a consumer, or even\nremove and then insert the new uprobe at the same address.\n\nPerhaps we will add uprobe_apply_mm(uprobe, mm, is_register) and teach\ncopy_mm() to do filter(UPROBE_FILTER_FORK), but I think this change makes\nsense anyway.\n\nNote: instead of checking the retcode from uc-\u003ehandler, we could add\nuc-\u003efilter(UPROBE_FILTER_BPHIT). But I think this is not optimal to\ncall 2 hooks in a row. This buys nothing, and if handler/filter do\nsomething nontrivial they will probably do the same work twice.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8a7f2fa0dea3b019500961b86d765e6fdd4bffb2",
      "tree": "c6c467e02da75a9e92f8541cf8889dbd0e2fe5fb",
      "parents": [
        "806a98bdf2a862fef0fc880399d677b35ba525ff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Dec 28 17:58:38 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:10 2013 +0100"
      },
      "message": "uprobes: Reintroduce uprobe_consumer-\u003efilter()\n\nFinally add uprobe_consumer-\u003efilter() and change consumer_filter()\nto actually call this method.\n\nNote that -\u003efilter() accepts mm_struct, not task_struct. Because:\n\n\t1. We do not have for_each_mm_user(mm, task).\n\n\t2. Even if we implement for_each_mm_user(), -\u003efilter() can\n\t   use it itself.\n\n\t3. It is not clear who will actually need this interface to\n\t   do the \"nontrivial\" filtering.\n\nAnother argument is \"enum uprobe_filter_ctx\", consumer-\u003efilter() can\nuse it to figure out why/where it was called. For example, perhaps\nwe can add UPROBE_FILTER_PRE_REGISTER used by build_map_info() to\nquickly \"nack\" the unwanted mm\u0027s. In this case consumer should know\nthat it is called under -\u003ei_mmap_mutex.\n\nSee the previous discussion at http://marc.info/?t\u003d135214229700002\nPerhaps we should pass more arguments, vma/vaddr?\n\nNote: this patch obviously can\u0027t help to filter out the child created\nby fork(), this will be addressed later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "806a98bdf2a862fef0fc880399d677b35ba525ff",
      "tree": "5b322a48c4d22d15e8d1a6c8a6a7e28d77ce62a7",
      "parents": [
        "66d06dffa5ef6f3544997440af63a91ef36a2171"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Dec 27 18:21:11 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:10 2013 +0100"
      },
      "message": "uprobes: Rationalize the usage of filter_chain()\n\nfilter_chain() was added into install_breakpoint/remove_breakpoint to\nsimplify the initial changes but this is sub-optimal.\n\nThis patch shifts the callsite to the callers, register_for_each_vma()\nand uprobe_mmap(). This way:\n\n- It will be easier to add the new arguments. This is the main reason,\n  we can do more optimizations later.\n\n- register_for_each_vma(is_register \u003d\u003e true) can be optimized, we only\n  need to consult the new consumer. The previous consumers were already\n  asked when they called uprobe_register().\n\nThis patch also moves the MMF_HAS_UPROBES check from remove_breakpoint(),\nthis allows to avoid the potentionally costly filter_chain(). Note that\nregister_for_each_vma(is_register \u003d\u003e false) doesn\u0027t really need to take\n-\u003econsumer_rwsem, but I don\u0027t think it makes sense to optimize this and\nintroduce filter_chain_lockless().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "66d06dffa5ef6f3544997440af63a91ef36a2171",
      "tree": "a95c81e492b5c714caa7f24f48fdb20fe0a33024",
      "parents": [
        "06b7bcd8cbd7eb1af331e437ec3d8f5182ae1b7e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Nov 25 22:48:37 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:10 2013 +0100"
      },
      "message": "uprobes: Kill uprobes_mutex[], separate alloc_uprobe() and __uprobe_register()\n\nuprobe_register() and uprobe_unregister() are the only users of\nmutex_lock(uprobes_hash(inode)), and the only reason why we can\u0027t\nsimply remove it is that we need to ensure that delete_uprobe() is\nnot possible after alloc_uprobe() and before consumer_add().\n\nIOW, we need to ensure that when we take uprobe-\u003eregister_rwsem\nthis uprobe is still valid and we didn\u0027t race with _unregister()\nwhich called delete_uprobe() in between.\n\nWith this patch uprobe_register() simply checks uprobe_is_active()\nand retries if it hits this very unlikely race. uprobes_mutex[] is\nno longer needed and can be removed.\n\nThere is another reason for this change, prepare_uprobe() should be\nfolded into alloc_uprobe() and we do not want to hold the extra locks\naround read_mapping_page/etc.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "06b7bcd8cbd7eb1af331e437ec3d8f5182ae1b7e",
      "tree": "ad2fc6a39d2c5ecfa45f4cd13fd0140839894b52",
      "parents": [
        "441f1eb7db8babe2b6b4bc805f023739dbb70e33"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Nov 25 22:01:42 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:09 2013 +0100"
      },
      "message": "uprobes: Introduce uprobe_is_active()\n\nThe lifetime of uprobe-\u003erb_node and uprobe-\u003einode is not refcounted,\ndelete_uprobe() is called when we detect that uprobe has no consumers,\nand it would be deadly wrong to do this twice.\n\nChange delete_uprobe() to WARN() if it was already called. We use\nRB_CLEAR_NODE() to mark uprobe \"inactive\", then RB_EMPTY_NODE() can\nbe used to detect this case.\n\nRB_EMPTY_NODE() is not used directly, we add the trivial helper for\nthe next change.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "441f1eb7db8babe2b6b4bc805f023739dbb70e33",
      "tree": "4c57b4553ce1b325c677d3e7204a2444fe577a99",
      "parents": [
        "d4d3ccc6d1eb74bd315d49a3829c5ad6c48d21b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Nov 25 19:54:29 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:08 2013 +0100"
      },
      "message": "uprobes: Kill uprobe_events, use RB_EMPTY_ROOT() instead\n\nuprobe_events counts the number of uprobes in uprobes_tree but\nit is used as a boolean. We can use RB_EMPTY_ROOT() instead.\n\nProbably no_uprobe_events() added by this patch can have more\ncallers, say, mmf_recalc_uprobes().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d4d3ccc6d1eb74bd315d49a3829c5ad6c48d21b0",
      "tree": "e8ccc45b9b9f8c72aaea150bf93d4d56cf9dc8d4",
      "parents": [
        "bb929284be40cbbdb347690742557d708fd504a9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 18:51:34 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:08 2013 +0100"
      },
      "message": "uprobes: Kill uprobe-\u003ecopy_mutex\n\nNow that -\u003eregister_rwsem is safe under -\u003emmap_sem we can kill\n-\u003ecopy_mutex and abuse down_write(\u0026uprobe-\u003econsumer_rwsem).\n\nThis makes prepare_uprobe() even more ugly, but we should kill\nit anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bb929284be40cbbdb347690742557d708fd504a9",
      "tree": "6f86aba2f415508fdccb88804bc03bdae3a0e160",
      "parents": [
        "1ff6fee5e62c57d5923b805bb4206acb7953f16e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 18:27:08 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:06 2013 +0100"
      },
      "message": "uprobes: Kill UPROBE_RUN_HANDLER flag\n\nSimply remove UPROBE_RUN_HANDLER and the corresponding code.\n\nIt can only help if uprobe has a single consumer, and in fact\nit is no longer needed after handler_chain() was changed to use\n-\u003eregister_rwsem, we simply can not race with uprobe_register().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1ff6fee5e62c57d5923b805bb4206acb7953f16e",
      "tree": "1b573238a506824e34d19b7ae5cba604d00f7b5c",
      "parents": [
        "e591c8d78e49e6206935cf31c4d2b603bbb29166"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 18:15:46 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:05 2013 +0100"
      },
      "message": "uprobes: Change filter_chain() to iterate -\u003econsumers list\n\nNow that it safe to use -\u003econsumer_rwsem under -\u003emmap_sem we can\nalmost finish the implementation of filter_chain(). It still lacks\nthe actual uc-\u003efilter(...) call but othewrwise it is ready, just\nit pretends that -\u003efilter() always returns true.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "e591c8d78e49e6206935cf31c4d2b603bbb29166",
      "tree": "fd454634604829933828e06849550dfbcfc37542",
      "parents": [
        "9a98e03cc145c994da824dac7602334f50feb670"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 17:29:40 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:03 2013 +0100"
      },
      "message": "uprobes: Introduce uprobe-\u003eregister_rwsem\n\nIntroduce uprobe-\u003eregister_rwsem. It is taken for writing around\n__uprobe_register/unregister.\n\nChange handler_chain() to use this sem rather than consumer_rwsem.\n\nThe main reason for this change is that we have the nasty problem\nwith mmap_sem/consumer_rwsem dependency. filter_chain() needs to\nprotect uprobe-\u003econsumers like handler_chain(), but they can not\nuse the same lock. filter_chain() can be called under -\u003emmap_sem\n(currently this is always true), but we want to allow -\u003ehandler()\nto play with the probed task\u0027s memory, and this needs -\u003emmap_sem.\n\nAlternatively we could use srcu, but synchronize_srcu() is very\nslow and -\u003eregister_rwsem allows us to do more. In particular, we\ncan teach handler_chain() to do remove_breakpoint() if this bp is\n\"nacked\" by all consumers, we know that we can\u0027t race with the\nnew consumer which does uprobe_register().\n\nSee also the next patches. uprobes_mutex[] is almost ready to die.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a98e03cc145c994da824dac7602334f50feb670",
      "tree": "66ab8762b473ea81531aa17395e9678beae22f61",
      "parents": [
        "04aab9b2006bbdeff78dc162f206fdfebeca97d9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Nov 23 20:15:17 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:03 2013 +0100"
      },
      "message": "uprobes: _register() should always do register_for_each_vma(true)\n\nTo support the filtering uprobe_register() should do\nregister_for_each_vma(true) every time the new consumer comes,\nwe need to install the previously nacked breakpoints.\n\nNote:\n\t- uprobes_mutex[] should die, what it actually protects is\n\t  alloc_uprobe().\n\n\t- UPROBE_RUN_HANDLER should die too, obviously it can\u0027t work\n\t  unless uprobe has a single consumer. The consumer should\n\t  serialize with _register/_unregister itself. Or this flag\n\t  should live in uprobe_consumer-\u003estate.\n\n\t- Perhaps we can do some optimizations later. For example, if\n\t  filter_chain() never returns false uprobe can record this\n\t  fact and avoid the unnecessary register_for_each_vma().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "04aab9b2006bbdeff78dc162f206fdfebeca97d9",
      "tree": "380a170734c6d850077e56848df0528f410247be",
      "parents": [
        "63633cbf82840d972248f11d2122b261d0d4779a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Nov 23 19:43:50 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:03 2013 +0100"
      },
      "message": "uprobes: _unregister() should always do register_for_each_vma(false)\n\nuprobe_unregister() removes the breakpoints only if the last consumer\ngoes away. To support the filtering it should do this every time, we\nwant to remove the breakpoints which nobody else want to keep.\n\nNote: given that filter_chain() is not actually implemented, this patch\nitself doesn\u0027t change the behaviour yet, register_for_each_vma(false)\nis a heavy \"nop\" unless there are no more consumers.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "63633cbf82840d972248f11d2122b261d0d4779a",
      "tree": "e596a5f686ed4ac79ab95455622648bc0321a406",
      "parents": [
        "fe20d71f25400cccc8bffef865f79250be7dbc81"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Nov 22 18:30:15 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:02 2013 +0100"
      },
      "message": "uprobes: Introduce filter_chain()\n\nAdd the new helper filter_chain(). Currently it is only placeholder,\nthe comment explains what is should do. We will change it later to\nconsult every consumer to decide whether we need to install the swbp.\nUntil then it works as if any consumer returns true, this matches the\ncurrent behavior.\n\nChange install_breakpoint() to call filter_chain() instead of checking\nuprobe-\u003econsumers !\u003d NULL. We obviously need this, and this equally\ncloses the race with _unregister().\n\nChange remove_breakpoint() to call this helper too. Currently this is\npointless because remove_breakpoint() is only called when the last\nconsumer goes away, but we will change this.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fe20d71f25400cccc8bffef865f79250be7dbc81",
      "tree": "97b5f757780ebf67359867c9493c4860b0cb4477",
      "parents": [
        "f0744af7d0fde190674064c54e2ff60b34ac71fe"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 17:32:30 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:02 2013 +0100"
      },
      "message": "uprobes: Kill uprobe_consumer-\u003efilter()\n\nuprobe_consumer-\u003efilter() is pointless in its current form, kill it.\n\nWe will add it back, but with the different signature/semantics. Perhaps\nwe will even re-introduce the callsite in handler_chain(), but not to\njust skip uc-\u003ehandler().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f0744af7d0fde190674064c54e2ff60b34ac71fe",
      "tree": "1fbe365e02f6d11c1a8837689578ef9b0874f0fa",
      "parents": [
        "bbc33d05930f870ea049eae5ed980f8b827d0813"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 18:01:43 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:01 2013 +0100"
      },
      "message": "uprobes: Kill the pointless inode/uc checks in register/unregister\n\nregister/unregister verifies that inode/uc !\u003d NULL. For what?\nThis really looks like \"hide the potential problem\", the caller\nshould pass the valid data.\n\nregister() also checks uc-\u003enext \u003d\u003d NULL, probably to prevent the\ndouble-register but the caller can do other stupid/wrong things.\nIf we do this check, then we should document that uc-\u003enext should\nbe cleared before register() and add BUG_ON().\n\nAlso add the small comment about the i_size_read() check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bbc33d05930f870ea049eae5ed980f8b827d0813",
      "tree": "d954de9e4f6319bb3774721698144f3639e95dbf",
      "parents": [
        "661e591525ffbb0439270bf2a4d165c04f87543d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 16:55:38 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:46:59 2013 +0100"
      },
      "message": "uprobes: Move __set_bit(UPROBE_SKIP_SSTEP) into alloc_uprobe()\n\nCosmetic. __set_bit(UPROBE_SKIP_SSTEP) is the part of initialization,\nit is not clear why it is set in insert_uprobe().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "63a3f603413ffe82ad775f2d62a5afff87fd94a0",
      "tree": "fc348b136c1e3e5bb78d931a5ca9156eaa3ebb4a",
      "parents": [
        "ffee0de411fd4f74f3b788892eeb075abbf26c52"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Feb 07 17:14:08 2013 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Feb 07 17:14:08 2013 -0800"
      },
      "message": "timeconst.pl: Eliminate Perl warning\n\ndefined(@array) is deprecated in Perl and gives off a warning.\nRestructure the code to remove that warning.\n\n[ hpa: it would be interesting to revert to the timeconst.bc script.\n  It appears that the failures reported by akpm during testing of\n  that script was due to a known broken version of make, not a problem\n  with bc.  The Makefile rules could probably be restructured to avoid\n  the make bug, or it is probably old enough that it doesn\u0027t matter. ]\n\nReported-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "7a6b55e7108b3476d13ee9501ec69dbe1605d774",
      "tree": "9712b0a5f7c3b5d90f2625af369774cdb1334e6f",
      "parents": [
        "49271ca60645d64197b28c0835fed39f74b1a2d7"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 29 16:46:09 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 07 15:19:36 2013 -0800"
      },
      "message": "srcu: use ACCESS_ONCE() to access sp-\u003ecompleted in srcu_read_lock()\n\nThe old SRCU implementation loads sp-\u003ecompleted within an\nRCU-sched section, courtesy of preempt_disable().  This was required\ndue to the use of synchronize_sched() in the old implemenation\u0027s\nsynchronize_srcu().  However, the new implementation does not rely\non synchronize_sched(), so it in turn does not require the load of\nsp-\u003ecompleted and the -\u003ec[] counter to be in a single preempt-disabled\nregion of code.  This commit therefore moves the sp-\u003ecompleted access\noutside of the preempt-disabled region and applies ACCESS_ONCE().\n\nThe resulting code is almost as the same as before, but it removes the\nnow-misleading rcu_dereference_index_check() call.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "49271ca60645d64197b28c0835fed39f74b1a2d7",
      "tree": "361a1243a600d76ab94b44c7a9dd1d9dcc97c6b2",
      "parents": [
        "34a64b6bb64b5cf193932e2b4394c5284732e008"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 29 16:46:08 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 07 15:17:45 2013 -0800"
      },
      "message": "srcu: Update synchronize_srcu_expedited()\u0027s comments\n\nBecause synchronize_srcu_expedited() no longer uses\nsynchronize_rcu_sched_expedited(), synchronize_srcu_expedited() no longer\nindirectly acquires any CPU-hotplug-related locks.  This commit therefore\nupdates the comments accordingly.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "34a64b6bb64b5cf193932e2b4394c5284732e008",
      "tree": "9a83d6cb769c4c21364f0ba0161ebd76ed03b512",
      "parents": [
        "511a0868bed6694512348fc177cdfaf3fd97d0bb"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 29 16:46:07 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 07 15:17:01 2013 -0800"
      },
      "message": "srcu: Update synchronize_srcu()\u0027s comments\n\nThe core of SRCU is changed, but synchronize_srcu()\u0027s comments describe\nthe old algorithm.  This commit therefore updates them to match the\nnew algorithm.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ab4d2986e44c589aa1b647d7da5e21c2707babea",
      "tree": "e5400a89ca0f137125be973016c6391a701a790c",
      "parents": [
        "6e6f1b307e23201fb3e7aaf16322e80355d2a3d5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 29 16:46:04 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 07 15:10:10 2013 -0800"
      },
      "message": "srcu: Simple cleanup for cleanup_srcu_struct()\n\nPack six lines of code into two lines.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6e6f1b307e23201fb3e7aaf16322e80355d2a3d5",
      "tree": "1664a448ebf4d45c0aadf6fe186644ee5d8ebdce",
      "parents": [
        "5a41344a3d83ef2c08e40bfce1efa5795def9b82"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 29 16:46:03 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 07 15:08:19 2013 -0800"
      },
      "message": "srcu: Add might_sleep() annotation to synchronize_srcu()\n\nAlthough synchronize_srcu() can sleep, it will not sleep if the fast\npath succeeds, which means that illegal use of synchronize_rcu()\nmight go unnoticed.  This commit therefore adds might_sleep(), which\nunconditionally catches illegal use of synchronize_rcu() from atomic\ncontext.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5a41344a3d83ef2c08e40bfce1efa5795def9b82",
      "tree": "123d0fa065a35bb7de384edb5e753ec28beee7b0",
      "parents": [
        "0351096eb0584ba927a00a37e18be7af135250c3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 29 16:46:02 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 07 15:06:25 2013 -0800"
      },
      "message": "srcu: Simplify __srcu_read_unlock() via this_cpu_dec()\n\nThis commit replaces disabling of preemption and decrement of a per-CPU\nvariable with this_cpu_dec(), which avoids preemption disabling on x86\nand shortens the code on all platforms.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8bd75c77b7c6a3954140dd2e20346aef3efe4a35",
      "tree": "10e0d451a58aeb6c8f48b871a848276bf3a8a359",
      "parents": [
        "ce0dbbbb30aee6a835511d5be446462388ba9eee"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:47:07 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:51:08 2013 +0100"
      },
      "message": "sched/rt: Move rt specific bits into new header file\n\nMove rt scheduler definitions out of include/linux/sched.h into\nnew file include/linux/sched/rt.h\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094707.7b9f825f@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ce0dbbbb30aee6a835511d5be446462388ba9eee",
      "tree": "c3d4d6f64a0fe7eec9283f4413d111a8d37d7053",
      "parents": [
        "cf4aebc292fac7f34f8345664320e9d4a42ca76c"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:47:04 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:51:07 2013 +0100"
      },
      "message": "sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n\nAdd a /proc/sys/kernel scheduler knob named\nsched_rr_timeslice_ms that allows global changing of the\nSCHED_RR timeslice value. User visable value is in milliseconds\nbut is stored as jiffies.  Setting to 0 (zero) resets to the\ndefault (currently 100ms).\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094704.13751796@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "cf4aebc292fac7f34f8345664320e9d4a42ca76c",
      "tree": "6eceb9bb2d8382c4499366a8fee060688aad6107",
      "parents": [
        "b2c77a57e4a0a7877e357dead7ee8acc19944f3e"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:46:59 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:50:54 2013 +0100"
      },
      "message": "sched: Move sched.h sysctl bits into separate header\n\nMove the sysctl-related bits from include/linux/sched.h into\na new file: include/linux/sched/sysctl.h. Then update source\nfiles requiring access to those bits by including the new\nheader file.\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094659.06dced96@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0351096eb0584ba927a00a37e18be7af135250c3",
      "tree": "d8bf1d9fecc77ee75c92e1b58734add93d0aae71",
      "parents": [
        "9228b5f24325a3863a4819300b471278ff14b48f",
        "e4aa0da39b6a69f3442ebc33500c21176c5eb560"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Feb 06 12:43:04 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Feb 06 12:43:04 2013 +0100"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu\n\nPull RCU build fixlet from Paul E. McKenney.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b2c77a57e4a0a7877e357dead7ee8acc19944f3e",
      "tree": "fa192b5a058711299c2a8ce2621df6c9bd8f3a99",
      "parents": [
        "c3c186403c6abd32e719f005f0af950155a9e54d",
        "6a61671bb2f3a1bd12cd17b8fca811a624782632"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 13:10:33 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 13:10:33 2013 +0100"
      },
      "message": "Merge tag \u0027full-dynticks-cputime-for-mingo\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/core\n\nPull full-dynticks (user-space execution is undisturbed and\nreceives no timer IRQs) preparation changes that convert the\ncputime accounting code to be full-dynticks ready,\nfrom Frederic Weisbecker:\n\n \"This implements the cputime accounting on full dynticks CPUs.\n\n  Typical cputime stats infrastructure relies on the timer tick and\n  its periodic polling on the CPU to account the amount of time\n  spent by the CPUs and the tasks per high level domains such as\n  userspace, kernelspace, guest, ...\n\n  Now we are preparing to implement full dynticks capability on\n  Linux for Real Time and HPC users who want full CPU isolation.\n  This feature requires a cputime accounting that doesn\u0027t depend\n  on the timer tick.\n\n  To implement it, this new cputime infrastructure plugs into\n  kernel/user/guest boundaries to take snapshots of cputime and\n  flush these to the stats when needed. This performs pretty\n  much like CONFIG_VIRT_CPU_ACCOUNTING except that context location\n  and cputime snaphots are synchronized between write and read\n  side such that the latter can safely retrieve the pending tickless\n  cputime of a task and add it to its latest cputime snapshot to\n  return the correct result to the user.\"\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c3c186403c6abd32e719f005f0af950155a9e54d",
      "tree": "76b0b2bc308c24d0e8b3729993de548fdf4a42aa",
      "parents": [
        "e0a79f529d5ba2507486d498b25da40911d95cf6"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Feb 05 14:37:51 2013 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 12:59:29 2013 +0100"
      },
      "message": "sched: Fix signedness bug in yield_to()\n\nIn 7b270f6099 \"sched: Bail out of yield_to when source and\ntarget runqueue has one task\" we changed this to store -ESRCH so\nit needs to be signed.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: kbuild@01.org\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/20130205113751.GA20521@elgon.mountain\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b22affe0aef429d657bc6505aacb1c569340ddd2",
      "tree": "6cdb5271ab0f4d02ccca8130fb0c0de8f61fe37a",
      "parents": [
        "90889a635a9b5488624bccce3ff6b2eec68c007b"
      ],
      "author": {
        "name": "Leonid Shatz",
        "email": "leonid.shatz@ravellosystems.com",
        "time": "Mon Feb 04 14:33:37 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 05 11:52:41 2013 +0100"
      },
      "message": "hrtimer: Prevent hrtimer_enqueue_reprogram race\n\nhrtimer_enqueue_reprogram contains a race which could result in\ntimer.base switch during unlock/lock sequence.\n\nhrtimer_enqueue_reprogram is releasing the lock protecting the timer\nbase for calling raise_softirq_irqsoff() due to a lock ordering issue\nversus rq-\u003elock.\n\nIf during that time another CPU calls __hrtimer_start_range_ns() on\nthe same hrtimer, the timer base might switch, before the current CPU\ncan lock base-\u003elock again and therefor the unlock_timer_base() call\nwill unlock the wrong lock.\n\n[ tglx: Added comment and massaged changelog ]\n\nSigned-off-by: Leonid Shatz \u003cleonid.shatz@ravellosystems.com\u003e\nSigned-off-by: Izik Eidus \u003cizik.eidus@ravellosystems.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/1359981217-389-1-git-send-email-izik.eidus@ravellosystems.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "077931446b85e7858bf9dc0927cd116669b965d2",
      "tree": "02fbdf4a42b30b841a61aca399bd0ac6a5c308e6",
      "parents": [
        "f7c819c020db9796ae3a662b82a310617f92b15b",
        "74876a98a87a115254b3a66a14b27320b7f0acaa"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Feb 05 00:48:46 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Feb 05 00:48:46 2013 +0100"
      },
      "message": "Merge branch \u0027nohz/printk-v8\u0027 into irq/core\n\nConflicts:\n\tkernel/irq_work.c\n\nAdd support for printk in full dynticks CPU.\n\n* Don\u0027t stop tick with irq works pending. This\nfix is generally useful and concerns archs that\ncan\u0027t raise self IPIs.\n\n* Flush irq works before CPU offlining.\n\n* Introduce \"lazy\" irq works that can wait for the\nnext tick to be executed, unless it\u0027s stopped.\n\n* Implement klogd wake up using irq work. This\nremoves the ad-hoc printk_tick()/printk_needs_cpu()\nhooks and make it working even in dynticks mode.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "2a6f79e8c1c7d04686fc7298fd625a7bdc9453d3",
      "tree": "0fd3d6709bc7275b4ad17bae5bc457fe73e4b1f1",
      "parents": [
        "51c1abb95fe110560f6f6fd25dd9265f861c1e7a",
        "cff3c124a7e82ca0ea1d6864b27ef18c403c0773"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 05 07:58:24 2013 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 05 07:58:24 2013 +1100"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar:\n \"Three small fixlets\"\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched/debug: Fix format string for 32-bit platforms\n  sched: Fix warning in kernel/sched/fair.c\n  sched/rt: Use root_domain of rt_rq not current processor\n"
    },
    {
      "commit": "51c1abb95fe110560f6f6fd25dd9265f861c1e7a",
      "tree": "a2f15af20300bf0983ee1490c2f77ba0d982fd14",
      "parents": [
        "5dc31b576746de76dc86ed46fa3e4ec5f5ae504f",
        "0231bb5336758426b44ccd798ccd3c5419c95d58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 05 07:57:09 2013 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 05 07:57:09 2013 +1100"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"Three fixlets and two small (and low risk) hw-enablement changes\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf: Fix event group context move\n  x86/perf: Add IvyBridge EP support\n  perf/x86: Fix P6 driver section warning\n  arch/x86/tools/insn_sanity.c: Identify source of messages\n  perf/x86: Enable Intel Lincroft/Penwell/Cloverview Atom support\n"
    },
    {
      "commit": "5dc31b576746de76dc86ed46fa3e4ec5f5ae504f",
      "tree": "45163f4aca7f060e829983b70f7ccc896323c764",
      "parents": [
        "d92dd35920d51e1664f902be48e622307098d0d9",
        "d36b7b9643faca8aab8cee8d824f75c800b337ac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 05 07:56:07 2013 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 05 07:56:07 2013 +1100"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull two small RCU fixlets from Ingo Molnar.\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  rcu: Make rcu_nocb_poll an early_param instead of module_param\n  rcu: Prevent soft-lockup complaints about no-CBs CPUs\n"
    },
    {
      "commit": "e4aa0da39b6a69f3442ebc33500c21176c5eb560",
      "tree": "0acc73d7aa64e1f825c515346622f0d5eb04126a",
      "parents": [
        "40393f525fe698e2b639cf1851ef0a40e7e158a8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 04 13:36:13 2013 -0500"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 04 12:18:20 2013 -0800"
      },
      "message": "rcu: Allow rcutorture to be built at low optimization levels\n\nThe uses of trace_clock_local() are dead code when CONFIG_RCU_TRACE\u003dn,\nbut some compilers might nevertheless generate code calling this function.\nThis commit therefore ensures that trace_clock_local() is invoked only\nwhen CONFIG_RCU_TRACE\u003dy.\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e0a79f529d5ba2507486d498b25da40911d95cf6",
      "tree": "469947cd4407877ba69aa474cdfed0f2bda61d92",
      "parents": [
        "60334caf37dc7c59120b21faa625534a6fffead0"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "bitbucket@online.de",
        "time": "Mon Jan 28 12:19:25 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 20:07:24 2013 +0100"
      },
      "message": "sched: Fix select_idle_sibling() bouncing cow syndrome\n\nIf the previous CPU is cache affine and idle, select it.\n\nThe current implementation simply traverses the sd_llc domain,\ntaking the first idle CPU encountered, which walks buddy pairs\nhand in hand over the package, inflicting excruciating pain.\n\n1 tbench pair (worst case) in a 10 core + SMT package:\n\n  pre   15.22 MB/sec 1 procs\n  post 252.01 MB/sec 1 procs\n\nSigned-off-by: Mike Galbraith \u003cbitbucket@online.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1359371965.5783.127.camel@marge.simpson.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9228b5f24325a3863a4819300b471278ff14b48f",
      "tree": "7108d5a0e1d0a717d80a7f77e45d29255321b2e6",
      "parents": [
        "88b62b915b0b7e25870eb0604ed9a92ba4bfc9f7",
        "40393f525fe698e2b639cf1851ef0a40e7e158a8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 19:06:34 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 19:06:34 2013 +0100"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu\n\nPull RCU updates from Paul E. McKenney:\n\n1.\tChanges to rcutorture and to RCU documentation. Posted to LKML at\n        https://lkml.org/lkml/2013/1/26/188.\n\n2.\tEnhancements to uniprocessor handling in tiny RCU. Posted to LKML\n        at https://lkml.org/lkml/2013/1/27/2.\n\n3.\tTag RCU callbacks with grace-period number to simplify callback\n        advancement. Posted to LKML at https://lkml.org/lkml/2013/1/26/203.\n\n4.\tMiscellaneous fixes. Posted to LKML at https://lkml.org/lkml/2013/1/26/204.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c02cf5f8ed6137e2b3b2f10e0fca336e06e09ba4",
      "tree": "808036e5a89ace73ea2a92719529df6c6321977b",
      "parents": [
        "786133f6e8ff94aaa78cd6b7844d04c227098327"
      ],
      "author": {
        "name": "anish kumar",
        "email": "anish198519851985@gmail.com",
        "time": "Sun Feb 03 22:08:23 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 11:50:59 2013 +0100"
      },
      "message": "irq_work: Remove return value from the irq_work_queue() function\n\nAs no one is using the return value of irq_work_queue(),\nso it is better to just make it void.\n\nSigned-off-by: anish kumar \u003canish198519851985@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[ Fix stale comments, remove now unnecessary __irq_work_queue() intermediate function ]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1359925703-24304-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "90889a635a9b5488624bccce3ff6b2eec68c007b",
      "tree": "8ddde1e04060bd65ca2aafb09b38066cb7d69b4d",
      "parents": [
        "a9037430c6c784165a940a90bcd29f886834c8e7",
        "6f16eebe1ff82176339a0439c98ebec9768b0ee2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 04 11:03:03 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 04 11:03:03 2013 +0100"
      },
      "message": "Merge branch \u0027fortglx/3.9/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n\nTrivial conflict in arch/x86/Kconfig\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "60334caf37dc7c59120b21faa625534a6fffead0",
      "tree": "be8e95b454f5e24334a9b8e280ea4fe25f330d61",
      "parents": [
        "fc79e240be5aa379dd36a62158be5a5ee0e4aec7"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Thu Jan 31 18:56:17 2013 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 19:54:58 2013 +0100"
      },
      "message": "sched/rt: Further simplify pick_rt_task()\n\nFunction next_prio() has been removed and pull_rt_task() is the\nonly user of pick_next_highest_task_rt() at the moment.\n\npull_rt_task is not interested in p-\u003enr_cpus_allowed, its only\ninterest is the fact that cpu is allowed to execute p. If\nnr_cpus_allowed \u003d\u003d 1, cpu !\u003d task_cpu(p) and cpu is allowed then\nit means that task p is in the middle of the migration\ntechniques; the task waits until it is moved by migration\nthread. So, lets pull it earlier.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: linux-rt-users \u003clinux-rt-users@vger.kernel.org\u003e\nLink: http://lkml.kernel.org/r/70871359644177@web16d.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0231bb5336758426b44ccd798ccd3c5419c95d58",
      "tree": "a2b584263ace5acfda61830fb57591d49fdad34c",
      "parents": [
        "923d8697e24847000490c187de1aeaca622611a3"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Feb 01 11:23:45 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 12:01:29 2013 +0100"
      },
      "message": "perf: Fix event group context move\n\nWhen we have group with mixed events (hw/sw) we want to end up\nwith group leader being in hw context. So if group leader is\ninitialy sw event, we move all the events under hw context.\n\nThe move is done for each event by removing it from its context\nand adding it back into proper one. As a part of the removal the\nevent is automatically disabled, which is not what we want at\nthis stage of creating groups.\n\nThe fix is to initialize event state after removal from sw\ncontext.\n\nThis fix resulted from the following discussion:\n\n  http://thread.gmane.org/gmane.linux.kernel.perf.user/1144\n\nReported-by: Andreas Hollmann \u003chollmann@in.tum.de\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Vince Weaver \u003cvince@deater.net\u003e\nLink: http://lkml.kernel.org/r/1359714225-4231-1-git-send-email-jolsa@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f7355a5e7c722452e2cd80d6b83acb2f4423c4a2",
      "tree": "2ee172a5607de2baf25b8e9b99acd181a34676a6",
      "parents": [
        "9c4c5fd9e6207f04dbf59c5a9699fded144542e6",
        "d840f718d28715a9833c1a8f46c2493ff3fd219b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 11:14:06 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 11:14:06 2013 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n\nPull tracing updated from Steve Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d840f718d28715a9833c1a8f46c2493ff3fd219b",
      "tree": "6fb0115db3dabd5ce79563fb1412c98edc24088e",
      "parents": [
        "c1043fcda1b9e8e5144cfdaee7be262c50dbdead"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 01 18:38:47 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 01 18:38:47 2013 -0500"
      },
      "message": "tracing: Init current_trace to nop_trace and remove NULL checks\n\nOn early boot up, when the ftrace ring buffer is initialized, the\nstatic variable current_trace is initialized to \u0026nop_trace.\nBefore this initialization, current_trace is NULL and will never\nbecome NULL again. It is always reassigned to a ftrace tracer.\n\nSeveral places check if current_trace is NULL before it uses\nit, and this check is frivolous, because at the point in time\nwhen the checks are made the only way current_trace could be\nNULL is if ftrace failed its allocations at boot up, and the\npaths to these locations would probably not be possible.\n\nBy initializing current_trace to \u0026nop_trace where it is declared,\ncurrent_trace will never be NULL, and we can remove all these\nchecks of current_trace being NULL which never needed to be\nchecked in the first place.\n\nCc: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "12ad10004645d38356b14d1fbba379c523a61916",
      "tree": "fe8b798176191c681c6b2fa1c81aa55dc98568dc",
      "parents": [
        "12572dbb53638c6e454ef831c8fee7de3df24389"
      ],
      "author": {
        "name": "Mark Rutland",
        "email": "mark.rutland@arm.com",
        "time": "Mon Jan 14 17:05:22 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 31 22:15:36 2013 +0100"
      },
      "message": "clockevents: Add generic timer broadcast function\n\nCurrently, the timer broadcast mechanism is defined by a function\npointer on struct clock_event_device. As the fundamental mechanism for\nbroadcast is architecture-specific, this means that clock_event_device\ndrivers cannot be shared across multiple architectures.\n\nThis patch adds an (optional) architecture-specific function for timer\ntick broadcast, allowing drivers which may require broadcast\nfunctionality to be shared across multiple architectures.\n\nSigned-off-by: Mark Rutland \u003cmark.rutland@arm.com\u003e\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nCc: nico@linaro.org\nCc: Will.Deacon@arm.com\nCc: Marc.Zyngier@arm.com\nCc: john.stultz@linaro.org\nLink: http://lkml.kernel.org/r/1358183124-28461-3-git-send-email-mark.rutland@arm.com\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "12572dbb53638c6e454ef831c8fee7de3df24389",
      "tree": "dac15b3d75adb3a33f3868b70a6dcf0b63c55b91",
      "parents": [
        "04c2eee5b9dfcb13f3cd07a5537fb8c785f2751a"
      ],
      "author": {
        "name": "Mark Rutland",
        "email": "mark.rutland@arm.com",
        "time": "Mon Jan 14 17:05:21 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 31 22:15:35 2013 +0100"
      },
      "message": "clockevents: Add generic timer broadcast receiver\n\nCurrently the broadcast mechanism used for timers is abstracted by a\nfunction pointer on struct clock_event_device. As the fundamental\nmechanism for broadcast is architecture-specific, this ties each\nclock_event_device driver to a single architecture, even where the\ndriver is otherwise generic.\n\nThis patch adds a standard path for the receipt of timer broadcasts, so\ndrivers and/or architecture backends need not manage redundant lists of\ntimers for the purpose of routing broadcast timer ticks.\n\n[tglx: Made the implementation depend on the config switch as well ]\n\nSigned-off-by: Mark Rutland \u003cmark.rutland@arm.com\u003e\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nCc: nico@linaro.org\nCc: Will.Deacon@arm.com\nCc: Marc.Zyngier@arm.com\nCc: john.stultz@linaro.org\nLink: http://lkml.kernel.org/r/1358183124-28461-2-git-send-email-mark.rutland@arm.com\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "fc79e240be5aa379dd36a62158be5a5ee0e4aec7",
      "tree": "84e29ffa57509f586aff6a31ed0b0461f830fdaa",
      "parents": [
        "62188451f0d63add7ad0cd2a1ae269d600c1663d"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Wed Jan 30 16:50:36 2013 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 31 10:31:13 2013 +0100"
      },
      "message": "sched/rt: Do not account zero delta_exec in update_curr_rt()\n\nThere are several places of consecutive calls of\ndequeue_task_rt() and put_prev_task_rt() in the scheduler.\nFor example, function rt_mutex_setprio() does it.\n\nThe both calls lead to update_curr_rt(), the second of it\nreceives zeroed delta_exec. The only effective action in this\ncase is call of sched_rt_avg_update(), which can change\nrq-\u003eage_stamp and rq-\u003ert_avg. But it is possible in case of\n\"\"floating\"\" rq-\u003eclock. This fact is not reasonable to be\naccounted. Another actions do nothing.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: linux-rt-users \u003clinux-rt-users@vger.kernel.org\u003e\nLink: http://lkml.kernel.org/r/931541359550236@web1g.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bdb0ae6a767ef2622eb282e06fc225e855341653",
      "tree": "34441e77a137fa349c48472bce2e12efceb18b21",
      "parents": [
        "0fe94b9e56da7ebffad4422415bdc2854934a389",
        "e0094244e41c4d0c7ad69920681972fc45d8ce34"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 17:08:43 2013 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 17:08:43 2013 +1100"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 fixes from Peter Anvin:\n \"This is a collection of miscellaneous fixes, the most important one is\n  the fix for the Samsung laptop bricking issue (auto-blacklisting the\n  samsung-laptop driver); the efi_enabled() changes you see below are\n  prerequisites for that fix.\n\n  The other issues fixed are booting on OLPC XO-1.5, an UV fix, NMI\n  debugging, and requiring CAP_SYS_RAWIO for MSR references, just as\n  with I/O port references.\"\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  samsung-laptop: Disable on EFI hardware\n  efi: Make \u0027efi_enabled\u0027 a function to query EFI facilities\n  smp: Fix SMP function call empty cpu mask race\n  x86/msr: Add capabilities check\n  x86/dma-debug: Bump PREALLOC_DMA_DEBUG_ENTRIES\n  x86/olpc: Fix olpc-xo1-sci.c build errors\n  arch/x86/platform/uv: Fix incorrect tlb flush all issue\n  x86-64: Fix unwind annotations in recent NMI changes\n  x86-32: Start out cr0 clean, disable paging before modifying cr3/4\n"
    },
    {
      "commit": "ff0d05bf73620eb7dc8aee7423e992ef87870bdf",
      "tree": "c2a874bdaf2dc6487dae7be17790745ce29a8b9b",
      "parents": [
        "2e51b231a8d716ea5aacde0bd95ac789cea195b0"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Thu Jan 31 14:27:03 2013 +1100"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Thu Jan 31 15:46:56 2013 +1100"
      },
      "message": "Revert \"console: implement lockdep support for console_lock\"\n\nThis reverts commit daee779718a319ff9f83e1ba3339334ac650bb22.\n\nI\u0027ll requeue this after the console locking fixes, so lockdep\nis useful again for people until fbcon is fixed.\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "debdd57f5145f3c6a4b3f8d0126abd1a2def7fc6",
      "tree": "8dca457fbccaf115c48fdb9fb6ee6a9469b8b6de",
      "parents": [
        "2fd196ec1eab2623096e7fc7e6f3976160392bce"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Wed Dec 26 11:53:00 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:02:06 2013 -0500"
      },
      "message": "tracing: Make a snapshot feature available from userspace\n\nFtrace has a snapshot feature available from kernel space and\nlatency tracers (e.g. irqsoff) are using it. This patch enables\nuser applictions to take a snapshot via debugfs.\n\nAdd \"snapshot\" debugfs file in \"tracing\" directory.\n\n  snapshot:\n    This is used to take a snapshot and to read the output of the\n    snapshot.\n\n     # echo 1 \u003e snapshot\n\n    This will allocate the spare buffer for snapshot (if it is\n    not allocated), and take a snapshot.\n\n     # cat snapshot\n\n    This will show contents of the snapshot.\n\n     # echo 0 \u003e snapshot\n\n    This will free the snapshot if it is allocated.\n\n    Any other positive values will clear the snapshot contents if\n    the snapshot is allocated, or return EINVAL if it is not allocated.\n\nLink: http://lkml.kernel.org/r/20121226025300.3252.86850.stgit@liselsia\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\n[\n   Fixed irqsoff selftest and also a conflict with a change\n   that fixes the update_max_tr.\n]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2fd196ec1eab2623096e7fc7e6f3976160392bce",
      "tree": "1994d70de20c1a1bc296e02d352142414484355b",
      "parents": [
        "5e67b51e3fb22ad43faf9589e9019ad9c6a00413"
      ],
      "author": {
        "name": "Hiraku Toyooka",
        "email": "hiraku.toyooka.gu@hitachi.com",
        "time": "Wed Dec 26 11:52:52 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:02:05 2013 -0500"
      },
      "message": "tracing: Replace static old_tracer check of tracer name\n\nCurrently the trace buffer read functions use a static variable\n\"old_tracer\" for detecting if the current tracer changes. This\nwas suitable for a single trace file (\"trace\"), but to add a\nsnapshot feature that will use the same function for its file,\na check against a static variable is not sufficient.\n\nTo use the output functions for two different files, instead of\nstoring the current tracer in a static variable, as the trace\niterator descriptor contains a pointer to the original current\ntracer\u0027s name, that pointer can now be used to check if the\ncurrent tracer has changed between different reads of the trace\nfile.\n\nLink: http://lkml.kernel.org/r/20121226025252.3252.9276.stgit@liselsia\n\nSigned-off-by: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e67b51e3fb22ad43faf9589e9019ad9c6a00413",
      "tree": "31e55312ca60e9efa447abdeaeb6ca1546a14673",
      "parents": [
        "ad964704ba9326d027fc10fd0099b7c880e50172"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Thu Dec 27 11:49:45 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:02:05 2013 -0500"
      },
      "message": "tracing: Use sched_clock_cpu for trace_clock_global\n\nFor systems with an unstable sched_clock, all cpu_clock() does is enable/\ndisable local irq during the call to sched_clock_cpu().  And for stable\nsystems they are same.\n\ntrace_clock_global() already disables interrupts, so it can call\nsched_clock_cpu() directly.\n\nLink: http://lkml.kernel.org/r/1356576585-28782-2-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ad964704ba9326d027fc10fd0099b7c880e50172",
      "tree": "e08884c0f383e5b954233c323df67a3d726b6537",
      "parents": [
        "03274a3ffb449632970fdd35da72ea41cf8474da"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 17:45:49 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jan 30 11:01:53 2013 -0500"
      },
      "message": "ring-buffer: Add stats field for amount read from trace ring buffer\n\nAdd a stat about the number of events read from the ring buffer:\n\n #  cat /debug/tracing/per_cpu/cpu0/stats\nentries: 39869\noverrun: 870512\ncommit overrun: 0\nbytes: 1449912\noldest event ts:  6561.368690\nnow ts:  6565.246426\ndropped events: 0\nread events: 112    \u003c-- Added\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6f16eebe1ff82176339a0439c98ebec9768b0ee2",
      "tree": "8d818d7299f205ebde374f753ac384b5d0ac1835",
      "parents": [
        "e90c83f757fffdacec8b3c5eee5617dcc038338f"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Jan 25 17:08:12 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jan 29 14:40:12 2013 -0800"
      },
      "message": "timekeeping: Switch HAS_PERSISTENT_CLOCK to ALWAYS_USE_PERSISTENT_CLOCK\n\nJason pointed out the HAS_PERSISTENT_CLOCK name isn\u0027t\nquite accurate for the config, as some systems may have\nthe persistent_clock in some cases, but not always.\n\nSo change the config name to the more clear\nALWAYS_USE_PERSISTENT_CLOCK.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "03274a3ffb449632970fdd35da72ea41cf8474da",
      "tree": "3359969bc4c56d9dc7e642985efc0f4d5c440e00",
      "parents": [
        "38dbe0b137bfe6ea92be495017885c0785179a02"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 17:30:31 2013 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 29 17:30:31 2013 -0500"
      },
      "message": "tracing/fgraph: Adjust fgraph depth before calling trace return callback\n\nWhile debugging the virtual cputime with the function graph tracer\nwith a max_depth of 1 (most common use of the max_depth so far),\nI found that I was missing kernel execution because of a race condition.\n\nThe code for the return side of the function has a slight race:\n\n\tftrace_pop_return_trace(\u0026trace, \u0026ret, frame_pointer);\n\ttrace.rettime \u003d trace_clock_local();\n\tftrace_graph_return(\u0026trace);\n\tbarrier();\n\tcurrent-\u003ecurr_ret_stack--;\n\nThe ftrace_pop_return_trace() initializes the trace structure for\nthe callback. The ftrace_graph_return() uses the trace structure\nfor its own use as that structure is on the stack and is local\nto this function. Then the curr_ret_stack is decremented which\nis what the trace.depth is set to.\n\nIf an interrupt comes in after the ftrace_graph_return() but\nbefore the curr_ret_stack, then the called function will get\na depth of 2. If max_depth is set to 1 this function will be\nignored.\n\nThe problem is that the trace has already been called, and the\ntimestamp for that trace will not reflect the time the function\nwas about to re-enter userspace. Calls to the interrupt will not\nbe traced because the max_depth has prevented this.\n\nTo solve this issue, the ftrace_graph_return() can safely be\nmoved after the current-\u003ecurr_ret_stack has been updated.\nThis way the timestamp for the return callback will reflect\nthe actual time.\n\nIf an interrupt comes in after the curr_ret_stack update and\nftrace_graph_return(), it will be traced. It may look a little\nconfusing to see it within the other function, but at least\nit will not be lost.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "38dbe0b137bfe6ea92be495017885c0785179a02"
}
