)]}'
{
  "log": [
    {
      "commit": "2e80a82a49c4c7eca4e35734380f28298ba5db19",
      "tree": "c60fe1cc6696c893a2c6c5891981bf8e81d9ab90",
      "parents": [
        "9f58a205c62d0dad1df38d076324a89b1a0f1d65"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 17 23:17:36 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 16 11:36:43 2010 +0100"
      },
      "message": "perf: Dynamic pmu types\n\nExtend the perf_pmu_register() interface to allow for named and\ndynamic pmu types.\n\nBecause we need to support the existing static types we cannot use\ndynamic types for everything, hence provide a type argument.\n\nIf we want to enumerate the PMUs they need a name, provide one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101117222056.259707703@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3c502e7a0255d82621ff25d60cc816624830497e",
      "tree": "1f30638f22ef9ed748fac1f73cb18169efe49ae7",
      "parents": [
        "6c0aca288e726405b01dacb12cac556454d34b2a"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Nov 04 17:33:01 2010 -0500"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 12 14:51:55 2010 +0100"
      },
      "message": "perf,hw_breakpoint: Initialize hardware api earlier\n\nWhen using early debugging, the kernel does not initialize the\nhw_breakpoint API early enough and causes the late initialization of\nthe kernel debugger to fail. The boot arguments are:\n\n    earlyprintk\u003dvga ekgdboc\u003dkbd kgdbwait\n\nThen simply type \"go\" at the kdb prompt and boot. The kernel will\nlater emit the message:\n\n    kgdb: Could not allocate hwbreakpoints\n\nAnd at that point the kernel debugger will cease to work correctly.\n\nThe solution is to initialize the hw_breakpoint at the same time that\nall the other perf call backs are initialized instead of using a\ncore_initcall() initialization which happens well after the kernel\ndebugger can make use of hardware breakpoints.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4CD3396D.1090308@windriver.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "d580ff8699e8811a9af37e9de4dea375401bdeec",
      "tree": "f2789d8a8628b856ad902c0bfbb1899e6cc67697",
      "parents": [
        "c6be5a5cb62592d9d661899a2aa78236eb00ffa5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:43:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:55 2010 +0200"
      },
      "message": "perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n\nhw_breakpoint creation needs to account stuff per-task to ensure there\nis always sufficient hardware resources to back these things due to\nptrace.\n\nWith the perf per pmu context changes the event initialization no\nlonger has access to the event context, for the simple reason that we\nneed to first find the pmu (result of initialization) before we can\nfind the context.\n\nThis makes hw_breakpoints unhappy, because it can no longer do per\ntask accounting, cure this by frobbing a task pointer in the event::hw\nbits for now...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20101014203625.391543667@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38a81da2205f94e8a2a834b51a6b99c91fc7c2e8",
      "tree": "5227c665f37d1c472608a44aaad0a04be68befb2",
      "parents": [
        "2ebd4ffb6d0cb877787b1e42be8485820158857e"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Sep 13 13:01:20 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:44:00 2010 +0200"
      },
      "message": "perf events: Clean up pid passing\n\nThe kernel perf event creation path shouldn\u0027t use find_task_by_vpid()\nbecause a vpid exists in a specific namespace. find_task_by_vpid() uses\ncurrent\u0027s pid namespace which isn\u0027t always the correct namespace to use\nfor the vpid in all the places perf_event_create_kernel_counter() (and\nthus find_get_context()) is called.\n\nThe goal is to clean up pid namespace handling and prevent bugs like:\n\n\thttps://bugzilla.kernel.org/show_bug.cgi?id\u003d17281\n\nInstead of using pids switch find_get_context() to use task struct\npointers directly. The syscall is responsible for resolving the pid to\na task struct. This moves the pid namespace resolution into the syscall\nmuch like every other syscall that takes pid parameters.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robin Green \u003cgreenrd@greenrd.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003ca134e5e392ab0204961fd1a62c84a222bf5874a9.1284407763.git.matthltc@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d958077d007d98125766d11e82da2fd6497b91d6",
      "tree": "c71106f6308a16bd50fc3f58338025c7848e5ec1",
      "parents": [
        "64a48d90149bb7007275fac13eaa4cb8d8ce12ea"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Sep 13 13:01:18 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:43:59 2010 +0200"
      },
      "message": "hw breakpoints: Fix pid namespace bug\n\nHardware breakpoints can\u0027t be registered within pid namespaces\nbecause tsk-\u003epid is passed rather than the pid in the current\nnamespace.\n\n(See https://bugzilla.kernel.org/show_bug.cgi?id\u003d17281 )\n\nThis is a quick fix demonstrating the problem but is not the\nbest method of solving the problem since passing pids internally\nis not the best way to avoid pid namespace bugs. Subsequent patches\nwill show a better solution.\n\nMuch thanks to Frederic Weisbecker \u003cfweisbec@gmail.com\u003e for doing the\nbulk of the work finding this bug.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robin Green \u003cgreenrd@greenrd.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003cf63454af09fb1915717251570423eb9ddd338340.1284407762.git.matthltc@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "89a1e18731959e9953fae15ddc1a983eb15a4f19",
      "tree": "5a52e77acb23f47254c94e23eb6ed35a422fce1d",
      "parents": [
        "8dc85d547285668e509f86c177bcd4ea055bcaaf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 07 17:34:50 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:34 2010 +0200"
      },
      "message": "perf: Provide a separate task context for swevents\n\nSince software events are always schedulable, mixing them up with\nhardware events (who are not) can lead to funny scheduling oddities.\n\nGiving them their own context solves this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4eaf7f14675cb512d69f0c928055e73d0c6d252",
      "tree": "e8a0f631fc28d4bd9becd2e9e2c71743c64ee3ec",
      "parents": [
        "fa407f35e0298d841e4088f95a7f9cf6e725c6d5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 16 14:37:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:30 2010 +0200"
      },
      "message": "perf: Rework the PMU methods\n\nReplace pmu::{enable,disable,start,stop,unthrottle} with\npmu::{add,del,start,stop}, all of which take a flags argument.\n\nThe new interface extends the capability to stop a counter while\nkeeping it scheduled on the PMU. We replace the throttled state with\nthe generic stopped state.\n\nThis also allows us to efficiently stop/start counters over certain\ncode paths (like IRQ handlers).\n\nIt also allows scheduling a counter without it starting, allowing for\na generic frozen state (useful for rotating stopped counters).\n\nThe stopped state is implemented in two different ways, depending on\nhow the architecture implemented the throttled state:\n\n 1) We disable the counter:\n    a) the pmu has per-counter enable bits, we flip that\n    b) we program a NOP event, preserving the counter state\n\n 2) We store the counter state and ignore all read/overflow events\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0a873ebbf87bf38bf70b5e39a7cadc96099fa13",
      "tree": "63ab672b847aed295f99b9b2a3bbcfd5d3d35bd9",
      "parents": [
        "51b0fe39549a04858001922919ab355dee9bdfcf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 11 13:35:08 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:28 2010 +0200"
      },
      "message": "perf: Register PMU implementations\n\nSimple registration interface for struct pmu, this provides the\ninfrastructure for removing all the weak functions.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "45a73372efe4a63f44aa2e1125d4a777c2fdc8d8",
      "tree": "d8fbdb1447ec7caac75c73101cf941ba90ed9ced",
      "parents": [
        "c882e0feb937af4e5b991cbd1c81536f37053e86"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jun 23 23:00:37 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jun 24 23:33:40 2010 +0200"
      },
      "message": "hw_breakpoints: Fix per task breakpoint tracking\n\nFreeing a perf event can happen in several ways. A task\ncalls perf_event_exit_task() right before exiting. This helper\nwill detach all the events from the task context and queue their\nremoval through free_event() if they are child tasks. The task\nalso loses its context reference there.\n\nReleasing the breakpoint slot from the constraint table is made\nfrom free_event() that calls release_bp_slot(). We count the number\nof breakpoints this task is running by looking at the task\u0027s\nperf_event_ctxp and iterating through its attached events.\nBut at this time, the reference to this context has been cleaned up\nalready.\n\nSo looking at the event-\u003ectx instead of task-\u003eperf_event_ctxp\nto count the remaining breakpoints should solve the problem.\nAt least it would for child breakpoints, but not for parent ones.\nIf the parent exits before the child, it will remove all its\nevents from the context but free_event() will be called later,\non fd release time. And checking the number of breakpoints the\ntask has attached to its context at this time is unreliable as all\nevents have been removed from the context.\n\nTo solve this, we keep track of the list of per task breakpoints.\nOn top of it, we maintain our array of numbers of breakpoints used\nby the tasks. We use the context address as a task id.\n\nSo, instead of looking at the number of events attached to a context,\nwe walk through our list of per task breakpoints and count the number\nof breakpoints that use the same ctx than the one to be reserved or\nreleased from the constraint table, and update the count on top of this\nresult.\n\nIn the meantime it solves a bad refcounting, it also solves a warning,\nreported by Paul.\n\nBadness at /home/paulus/kernel/perf/kernel/hw_breakpoint.c:114\nNIP: c0000000000cb470 LR: c0000000000cb46c CTR: c00000000032d9b8\nREGS: c000000118e7b570 TRAP: 0700   Not tainted  (2.6.35-rc3-perf-00008-g76b0f13\n)\nMSR: 9000000000029032 \u003cEE,ME,CE,IR,DR\u003e  CR: 44004424  XER: 000fffff\nTASK \u003d c0000001187dcad0[3143] \u0027perf\u0027 THREAD: c000000118e78000 CPU: 1\nGPR00: c0000000000cb46c c000000118e7b7f0 c0000000009866a0 0000000000000020\nGPR04: 0000000000000000 000000000000001d 0000000000000000 0000000000000001\nGPR08: c0000000009bed68 c00000000086dff8 c000000000a5bf10 0000000000000001\nGPR12: 0000000024004422 c00000000ffff200 0000000000000000 0000000000000000\nGPR16: 0000000000000000 0000000000000000 0000000000000018 00000000101150f4\nGPR20: 0000000010206b40 0000000000000000 0000000000000000 00000000101150f4\nGPR24: c0000001199090c0 0000000000000001 0000000000000000 0000000000000001\nGPR28: 0000000000000000 0000000000000000 c0000000008ec290 0000000000000000\nNIP [c0000000000cb470] .task_bp_pinned+0x5c/0x12c\nLR [c0000000000cb46c] .task_bp_pinned+0x58/0x12c\nCall Trace:\n[c000000118e7b7f0] [c0000000000cb46c] .task_bp_pinned+0x58/0x12c (unreliable)\n[c000000118e7b8a0] [c0000000000cb584] .toggle_bp_task_slot+0x44/0xe4\n[c000000118e7b940] [c0000000000cb6c8] .toggle_bp_slot+0xa4/0x164\n[c000000118e7b9f0] [c0000000000cbafc] .release_bp_slot+0x44/0x6c\n[c000000118e7ba80] [c0000000000c4178] .bp_perf_event_destroy+0x10/0x24\n[c000000118e7bb00] [c0000000000c4aec] .free_event+0x180/0x1bc\n[c000000118e7bbc0] [c0000000000c54c4] .perf_event_release_kernel+0x14c/0x170\n\nReported-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f7136c5150c29846d7a1d09109449d96b2f63445",
      "tree": "7e961ac7d78ee8322d136f7a6d4da03a6ad2cda7",
      "parents": [
        "0016a4cf5582415849fafbf9f019dd9530824789"
      ],
      "author": {
        "name": "K.Prasad",
        "email": "prasad@linux.vnet.ibm.com",
        "time": "Tue Jun 15 11:34:34 2010 +0530"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jun 22 19:40:50 2010 +1000"
      },
      "message": "hw_breakpoints: Allow arch-specific cleanup before breakpoint unregistration\n\nCertain architectures (such as PowerPC) have a need to clean up data\nstructures before a breakpoint is unregistered.  This introduces an\narch-specific hook in release_bp_slot() along with a weak definition\nin the form of a stub function.\n\nSigned-off-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "777d0411cd1e384115985dac5ccd42031e3eee2b",
      "tree": "a42183583624899287cbf9c657163ce8ff97a32d",
      "parents": [
        "0806ebd974590ab24ab357d5d87db744e56bfe13"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 03 15:39:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 04 08:39:36 2010 +0200"
      },
      "message": "hw_breakpoints: Fix percpu build failure\n\nFix this build error:\n\n   kernel/hw_breakpoint.c:58:1: error: pasting \"__pcpu_scope_\" and \"*\" does not give a valid preprocessing token\n\nIt happens if CONFIG_DEBUG_FORCE_WEAK_PER_CPU, because we concatenate\nsometing with the name and we have the \"*\" in the name.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nLKML-Reference: \u003c20100503133942.GA5497@nowhere\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "feef47d0cb530e8419dfa0b48141b538b89b1b1a",
      "tree": "ad40b07e8b240eca134770120b5c644ec0062ce2",
      "parents": [
        "f93a20541134fa767e8dc4eb32e956d30b9f6b92"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Apr 23 05:59:55 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 01 04:32:14 2010 +0200"
      },
      "message": "hw-breakpoints: Get the number of available registers on boot dynamically\n\nThe breakpoint generic layer assumes that archs always know in advance\nthe static number of address registers available to host breakpoints\nthrough the HBP_NUM macro.\n\nHowever this is not true for every archs. For example Arm needs to get\nthis information dynamically to handle the compatiblity between\ndifferent versions.\n\nTo solve this, this patch proposes to drop the static HBP_NUM macro\nand let the arch provide the number of available slots through a\nnew hw_breakpoint_slots() function. For archs that have\nCONFIG_HAVE_MIXED_BREAKPOINTS_REGS selected, it will be called once\nas the number of registers fits for instruction and data breakpoints\ntogether.\nFor the others it will be called first to get the number of\ninstruction breakpoint registers and another time to get the\ndata breakpoint registers, the targeted type is given as a\nparameter of hw_breakpoint_slots().\n\nReported-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f93a20541134fa767e8dc4eb32e956d30b9f6b92",
      "tree": "da262316510683286dcaf1dbc2e4dddc5ac44ba3",
      "parents": [
        "0102752e4c9e0655b39734550d4c35327954f7f9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 13 00:32:30 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 01 04:32:12 2010 +0200"
      },
      "message": "hw-breakpoints: Handle breakpoint weight in allocation constraints\n\nDepending on their nature and on what an arch supports, breakpoints\nmay consume more than one address register. For example a simple\nabsolute address match usually only requires one address register.\nBut an address range match may consume two registers.\n\nCurrently our slot allocation constraints, that tend to reflect the\nlimited arch\u0027s resources, always consider that a breakpoint consumes\none slot.\n\nThen provide a way for archs to tell us the weight of a breakpoint\nthrough a new hw_breakpoint_weight() helper. This weight will be\ncomputed against the generic allocation constraints instead of\na constant value.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0102752e4c9e0655b39734550d4c35327954f7f9",
      "tree": "04c23f88e57c8e804d144434c60b91879e83648d",
      "parents": [
        "b2812d031dea86926e9c10f7714af33ac2f6b43d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 11 18:55:56 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 01 04:32:11 2010 +0200"
      },
      "message": "hw-breakpoints: Separate constraint space for data and instruction breakpoints\n\nThere are two outstanding fashions for archs to implement hardware\nbreakpoints.\n\nThe first is to separate breakpoint address pattern definition\nspace between data and instruction breakpoints. We then have\ntypically distinct instruction address breakpoint registers\nand data address breakpoint registers, delivered with\nseparate control registers for data and instruction breakpoints\nas well. This is the case of PowerPc and ARM for example.\n\nThe second consists in having merged breakpoint address space\ndefinition between data and instruction breakpoint. Address\nregisters can host either instruction or data address and\nthe access mode for the breakpoint is defined in a control\nregister. This is the case of x86 and Super H.\n\nThis patch adds a new CONFIG_HAVE_MIXED_BREAKPOINTS_REGS config\nthat archs can select if they belong to the second case. Those\nwill have their slot allocation merged for instructions and\ndata breakpoints.\n\nThe others will have a separate slot tracking between data and\ninstruction breakpoints.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b2812d031dea86926e9c10f7714af33ac2f6b43d",
      "tree": "a48b18b49fa064e89b7b03e057e46e5a294a8053",
      "parents": [
        "87e9b2024659c614a876ce359a57e98a47b5ef37"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 18 18:11:53 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 01 04:32:10 2010 +0200"
      },
      "message": "hw-breakpoints: Change/Enforce some breakpoints policies\n\nThe current policies of breakpoints in x86 and SH are the following:\n\n- task bound breakpoints can only break on userspace addresses\n- cpu wide breakpoints can only break on kernel addresses\n\nThe former rule prevents ptrace breakpoints to be set to trigger on\nkernel addresses, which is good. But as a side effect, we can\u0027t\nbreakpoint on kernel addresses for task bound breakpoints.\n\nThe latter rule simply makes no sense, there is no reason why we\ncan\u0027t set breakpoints on userspace while performing cpu bound\nprofiles.\n\nWe want the following new policies:\n\n- task bound breakpoint can set userspace address breakpoints, with\nno particular privilege required.\n- task bound breakpoints can set kernelspace address breakpoints but\nmust be privileged to do that.\n- cpu bound breakpoints can do what they want as they are privileged\nalready.\n\nTo implement these new policies, this patch checks if we are dealing\nwith a kernel address breakpoint, if so and if the exclude_kernel\nparameter is set, we tell the user that the breakpoint is invalid,\nwhich makes a good generic ptrace protection.\nIf we don\u0027t have exclude_kernel, ensure the user has the right\nprivileges as kernel breakpoints are quite sensitive (risk of\ntrap recursion attacks and global performance impacts).\n\n[ Paul Mundt: keep addr space check for sh signal delivery and fix\n  double function declaration]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "87e9b2024659c614a876ce359a57e98a47b5ef37",
      "tree": "5a9449e181d59e2142e5424fe68bea225597476a",
      "parents": [
        "73266fc1df2f94cf72b3beba3eee3b88ed0b0664"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Apr 17 18:11:59 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 01 04:32:09 2010 +0200"
      },
      "message": "hw-breakpoints: Check disabled breakpoints again\n\nWe stopped checking disabled breakpoints because we weren\u0027t\nallowing breakpoints on NULL addresses. And gdb tends to set\nNULL addresses on inactive breakpoints.\n\nBut refusing NULL addresses was actually a regression that has\nbeen fixed now. There is no reason anymore to not validate\ninactive breakpoint settings.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f16d4e0c9a4b20d9f0db365587b96d6001efd7d",
      "tree": "fa25dcf285b26f1fac2bf267d0d1cd2c4eba90b8",
      "parents": [
        "1e259e0a9982078896f3404240096cbea01daca4",
        "6630125419ef37ff8781713c5e9d416f2a4ba357"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 11:47:50 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 11:47:52 2010 +0100"
      },
      "message": "Merge branch \u0027perf/core\u0027 into perf/urgent\n\nMerge reason: Switch from pre-merge topical split to the post-merge urgent track\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e259e0a9982078896f3404240096cbea01daca4",
      "tree": "c298759ae0957b014788f8c79197c90928e69623",
      "parents": [
        "388c3aab5d4f1b0bbfe2d5f47e7cd681866bc573"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Feb 28 20:51:15 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Feb 28 20:51:15 2010 +0100"
      },
      "message": "hw-breakpoints: Remove stub unthrottle callback\n\nWe support event unthrottling in breakpoint events. It means\nthat if we have more than sysctl_perf_event_sample_rate/HZ,\nperf will throttle, ignoring subsequent events until the next\ntick.\n\nSo if ptrace exceeds this max rate, it will omit events, which\nbreaks the ptrace determinism that is supposed to report every\ntriggered breakpoints. This is likely to happen if we set\nsysctl_perf_event_sample_rate to 1.\n\nThis patch removes support for unthrottling in breakpoint\nevents to break throttling and restore ptrace determinism.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: 2.6.33.x \u003cstable@kernel.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "44ee63587dce85593c22497140db16f4e5027860",
      "tree": "0b3d45f9755080f1c7362a8a2eb69e326b0e2f85",
      "parents": [
        "018cbffe6819f6f8db20a0a3acd9bab9bfd667e4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 17 10:50:50 2010 +0900"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Feb 27 16:23:39 2010 +0100"
      },
      "message": "percpu: Add __percpu sparse annotations to hw_breakpoint\n\nAdd __percpu sparse annotations to hw_breakpoint.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nIn kernel/hw_breakpoint.c, per_cpu(nr_task_bp_pinned, cpu)\u0027s will\ntrigger spurious noderef related warnings from sparse.  Changing it to\n\u0026per_cpu(nr_task_bp_pinned[0], cpu) will work around the problem but\ndeemed to ugly by the maintainer.  Leave it alone until better\nsolution can be found.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c4B7B4B7A.9050902@kernel.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "cd757645fbdc34a8343c04bb0e74e06fccc2cb10",
      "tree": "b06a5b92674731846b4d22aa53c99d6099b304b7",
      "parents": [
        "c80d292f137275a1ed88e6ed515ecb457051f1a4"
      ],
      "author": {
        "name": "Mahesh Salgaonkar",
        "email": "mahesh@linux.vnet.ibm.com",
        "time": "Sat Jan 30 10:25:18 2010 +0530"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Feb 04 01:07:12 2010 +0100"
      },
      "message": "perf: Make bp_len type to u64 generic across the arch\n\nChange \u0027bp_len\u0027 type to __u64 to make it work across archs as\nthe s390 architecture watch point length can be upto 2^64.\n\nreference:\n\thttp://lkml.org/lkml/2010/1/25/212\n\nThis is an ABI change that is not backward compatible with\nthe previous hardware breakpoint info layout integrated in this\ndevelopment cycle, a rebuilt of perf tools is necessary for\nversions based on 2.6.33-rc1 - 2.6.33-rc6 to work with a\nkernel based on this patch.\n\nSigned-off-by: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: \"K. Prasad\" \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin \u003cschwidefsky@de.ibm.com\u003e\nLKML-Reference: \u003c20100130045518.GA20776@in.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "5352ae638e2d7d5c9b2e4d528676bbf2af6fd6f3",
      "tree": "95bab4d28f7c91bc5b7e79b3e1c879dfe96c52b9",
      "parents": [
        "cc0967490c1c3824bc5b75718b6ca8a51d9f2617"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Jan 28 17:04:43 2010 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 30 08:42:21 2010 +0100"
      },
      "message": "perf, hw_breakpoint, kgdb: Do not take mutex for kernel debugger\n\nThis patch fixes the regression in functionality where the\nkernel debugger and the perf API do not nicely share hw\nbreakpoint reservations.\n\nThe kernel debugger cannot use any mutex_lock() calls because it\ncan start the kernel running from an invalid context.\n\nA mutex free version of the reservation API needed to get\ncreated for the kernel debugger to safely update hw breakpoint\nreservations.\n\nThe possibility for a breakpoint reservation to be concurrently\nprocessed at the time that kgdb interrupts the system is\nimprobable. Should this corner case occur the end user is\nwarned, and the kernel debugger will prohibit updating the\nhardware breakpoint reservations.\n\nAny time the kernel debugger reserves a hardware breakpoint it\nwill be a system wide reservation.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: kgdb-bugreport@lists.sourceforge.net\nCc: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: torvalds@linux-foundation.org\nLKML-Reference: \u003c1264719883-7285-3-git-send-email-jason.wessel@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b23ff0e9330e4b11e18af984d50573598e10e7f9",
      "tree": "e170892469ddbcb2ee249271e52264f961c58476",
      "parents": [
        "7f5102ca4b8a8e598dbfa154322ea684bc98da96"
      ],
      "author": {
        "name": "Mahesh Salgaonkar",
        "email": "mahesh@linux.vnet.ibm.com",
        "time": "Thu Jan 21 18:25:16 2010 +0530"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 28 14:15:51 2010 +0100"
      },
      "message": "hw_breakpoints: Release the bp slot if arch_validate_hwbkpt_settings() fails.\n\nOn a given architecture, when hardware breakpoint registration fails\ndue to un-supported access type (read/write/execute), we lose the bp\nslot since register_perf_hw_breakpoint() does not release the bp slot\non failure.\nHence, any subsequent hardware breakpoint registration starts failing\nwith \u0027no space left on device\u0027 error.\n\nThis patch introduces error handling in register_perf_hw_breakpoint()\nfunction and releases bp slot on error.\n\nSigned-off-by: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nLKML-Reference: \u003c20100121125516.GA32521@in.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "b21c07040304b8716e38a4a0e4ab60f386357e61",
      "tree": "eb2cf03ec35b9a5090c0adaab659a766e02c3b10",
      "parents": [
        "4e58fb7305449cf8c5a86dd97dfc1812221be77c",
        "fb7ae981cb9fe8665b9da97e8734745e030c151d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 31 11:52:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 31 11:52:01 2009 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix sign fields in ftrace_define_fields_##call()\n  tracing/syscalls: Fix typo in SYSCALL_DEFINE0\n  tracing/kprobe: Show sign of fields in trace_kprobe format files\n  ksym_tracer: Remove trace_stat\n  ksym_tracer: Fix race when incrementing count\n  ksym_tracer: Fix to allow writing newline to ksym_trace_filter\n  ksym_tracer: Fix to make the tracer work\n  tracing: Kconfig spelling fixes and cleanups\n  tracing: Fix setting tracer specific options\n  Documentation: Update ftrace-design.txt\n  Documentation: Update tracepoint-analysis.txt\n  Documentation: Update mmiotrace.txt\n"
    },
    {
      "commit": "88f7a890d74137ab0d126a5d65679cd620f1a289",
      "tree": "93f6a908ae6eca32dd7b06be5a0cfb856c7877ac",
      "parents": [
        "40892367bc893f3abf6f5ca8ac2ed1c98ba26a77"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 30 14:22:22 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 30 07:50:47 2009 +0100"
      },
      "message": "ksym_tracer: Fix to make the tracer work\n\nksym tracer doesn\u0027t work:\n\n # echo tasklist_lock:rw- \u003e ksym_trace_filter\n -bash: echo: write error: No such device\n\nIt\u0027s because we pass to perf_event_create_kernel_counter()\na cpu number which is not present.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B3AF19E.1010201@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e625cce1b73fb38b74e5387226534f7bcbfc36fe",
      "tree": "cfdecc4326845d0601d1447aad334e78d92d3316",
      "parents": [
        "ecb49d1a639acbacfc3771cae5ec07bed5df3847"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 18:02:06 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:34 2009 +0100"
      },
      "message": "perf_event: Convert to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44234adcdce38f83c56e05f808ce656175b4beeb",
      "tree": "caff2ca7bbf4bf7c0b12652caf739bcc6db5f4d3",
      "parents": [
        "c937fe20cb6d9e24c6ad5f9f0c64d64c78411057"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 09 09:25:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 09:48:20 2009 +0100"
      },
      "message": "hw-breakpoints: Modify breakpoints without unregistering them\n\nCurrently, when ptrace needs to modify a breakpoint, like disabling\nit, changing its address, type or len, it calls\nmodify_user_hw_breakpoint(). This latter will perform the heavy and\nracy task of unregistering the old breakpoint and registering a new\none.\n\nThis is racy as someone else might steal the reserved breakpoint\nslot under us, which is undesired as the breakpoint is only\nsupposed to be modified, sometimes in the middle of a debugging\nworkflow. We don\u0027t want our slot to be stolen in the middle.\n\nSo instead of unregistering/registering the breakpoint, just\ndisable it while we modify its breakpoint fields and re-enable it\nafter if necessary.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1260347148-5519-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ab8886326a1b9a3a8d164d8174e3c20703a03a2",
      "tree": "dab951be5106d9e4350916af6a9281045e6b2f80",
      "parents": [
        "2ff6cfd70720780234fdfea636218c2a62b31287"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Dec 08 18:25:15 2009 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 08 09:34:43 2009 +0100"
      },
      "message": "perf: hw_breakpoints: Fix percpu namespace clash\n\nToday\u0027s linux-next build failed with:\n\n  kernel/hw_breakpoint.c:86: error: \u0027task_bp_pinned\u0027 redeclared as different kind of symbol\n  ...\n\nCaused by commit dd17c8f72993f9461e9c19250e3f155d6d99df22 (\"percpu:\nremove per_cpu__ prefix\") from the percpu tree interacting with\ncommit 56053170ea2a2c0dc17420e9b94aa3ca51d80408 (\"hw-breakpoints:\nFix task-bound breakpoint slot allocation\") from the tip tree.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20091208182515.bb6dda4a.sfr@canb.auug.org.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "56053170ea2a2c0dc17420e9b94aa3ca51d80408",
      "tree": "af54e4816e53a8bd0fb5852236c381ce53fadcf6",
      "parents": [
        "ed872d09effd54aa8ecb4ceedbc4dbab9592f337"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Dec 07 06:46:48 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Dec 07 07:05:28 2009 +0100"
      },
      "message": "hw-breakpoints: Fix task-bound breakpoint slot allocation\n\nWhatever the context nature of a breakpoint, we always perform the\nfollowing constraint checks before allocating it a slot:\n\n- Check the number of pinned breakpoint bound the concerned cpus\n- Check the max number of task-bound breakpoints that are belonging\n  to a task.\n- Add both and see if we have a reamining slot for the new breakpoint\n\nThis is the right thing to do when we are about to register a cpu-only\nbound breakpoint. But not if we are dealing with a task bound\nbreakpoint. What we want in this case is:\n\n- Check the number of pinned breakpoint bound the concerned cpus\n- Check the number of breakpoints that already belong to the task\n  in which the breakpoint to register is bound to.\n- Add both\n\nThis fixes a regression that makes the \"firefox -g\" command fail to\nregister breakpoints once we deal with a secondary thread.\n\nReported-by: Walt \u003cw41ter@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b326e9560a28fc3e950637ef51847ed8f05c1335",
      "tree": "0804c8c4f28d4ae152d5e9205ce5a958f0d26b79",
      "parents": [
        "2f0993e0fb663c49e4d1e02654f6203246be4817"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 05 09:44:31 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 06 08:27:18 2009 +0100"
      },
      "message": "hw-breakpoints: Use overflow handler instead of the event callback\n\nstruct perf_event::event callback was called when a breakpoint\ntriggers. But this is a rather opaque callback, pretty\ntied-only to the breakpoint API and not really integrated into perf\nas it triggers even when we don\u0027t overflow.\n\nWe prefer to use overflow_handler() as it fits into the perf events\nrules, being called only when we overflow.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"K. Prasad\" \u003cprasad@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2f0993e0fb663c49e4d1e02654f6203246be4817",
      "tree": "90d34048d453c25364b8ea41e6c2028a8621bd39",
      "parents": [
        "9cef30815b0f5b76e94a58d7674fcbf824d95579"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 05 07:06:10 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 06 08:27:17 2009 +0100"
      },
      "message": "hw-breakpoints: Drop callback and task parameters from modify helper\n\nDrop the callback and task parameters from modify_user_hw_breakpoint().\nFor now we have no user that need to modify a breakpoint to the point\nof changing its handler or its task context.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \"K. Prasad\" \u003cprasad@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "dd1853c3f493f6d22d9e5390b192a07b73d2ac0a",
      "tree": "af87226bcdc254ce2ab656530263e61f6552322b",
      "parents": [
        "5fa10b28e57f94a90535cfeafe89dcee9f47d540"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 27 04:55:54 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 27 06:22:59 2009 +0100"
      },
      "message": "hw-breakpoints: Use struct perf_event_attr to define kernel breakpoints\n\nKernel breakpoints are created using functions in which we pass\nbreakpoint parameters as individual variables: address, length\nand type.\n\nAlthough it fits well for x86, this just does not scale across\narchitectures that may support this api later as these may have\nmore or different needs. Pass in a perf_event_attr structure\ninstead because it is meant to evolve as much as possible into\na generic hardware breakpoint parameter structure.\n\nReported-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1259294154-5197-2-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fa10b28e57f94a90535cfeafe89dcee9f47d540",
      "tree": "951cf12a3b5b3a37546b4f6dd2994bebdac19dc0",
      "parents": [
        "b2e74a265ded1a185f762ebaab967e9e0d008dd8"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 27 04:55:53 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 27 06:22:58 2009 +0100"
      },
      "message": "hw-breakpoints: Use struct perf_event_attr to define user breakpoints\n\nIn-kernel user breakpoints are created using functions in which\nwe pass breakpoint parameters as individual variables: address,\nlength and type.\n\nAlthough it fits well for x86, this just does not scale across\narchictectures that may support this api later as these may have\nmore or different needs. Pass in a perf_event_attr structure\ninstead because it is meant to evolve as much as possible into\na generic hardware breakpoint parameter structure.\n\nReported-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1259294154-5197-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "11e6635763bdc0e24b39a38876574660755acffc",
      "tree": "9020eb9a4a527803e42b5770ca7a2e81b29fe425",
      "parents": [
        "2c31b7958fd21df9fa04e5c36cda0f063ac70b27"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 25 23:01:50 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 09:34:04 2009 +0100"
      },
      "message": "kernel/hw_breakpoint.c: Fix local/global shadowing\n\nIf the new percpu tree is combined with the perf events tree\nthe following new warning triggers:\n\n kernel/hw_breakpoint.c: In function \u0027toggle_bp_task_slot\u0027:\n kernel/hw_breakpoint.c:151: warning: \u0027task_bp_pinned\u0027 is used uninitialized in this function\n\nBecause it\u0027s not valid anymore to define a local variable\nand a percpu variable (even if it\u0027s file scope local) with\nthe same name.\n\nRename the local variable to resolve this.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c200911260701.nAQ71owx016356@imap1.linux-foundation.org\u003e\n[ v2: added changelog ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "605bfaee9078cd0b01d83402315389839ee4bb5c",
      "tree": "35c3af269b37347b689b3b212fc99d4ae9f719e5",
      "parents": [
        "c6567f642e20bcc79abed030f44be5b0d6da2ded"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 26 05:35:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 09:29:21 2009 +0100"
      },
      "message": "hw-breakpoints: Simplify error handling in breakpoint creation requests\n\nThis simplifies the error handling when we create a breakpoint.\nWe don\u0027t need to check the NULL return value corner case anymore\nsince we have improved perf_event_create_kernel_counter() to\nalways return an error code in the failure case.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1259210142-5714-3-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fdf6bc95229821e3d9405eba28925b76e92b74d0",
      "tree": "be414077495ac0ef3b71abd163dc35d0e96b1318",
      "parents": [
        "e6db4876575f3fdd5b1df2cbff826df95ab9af6a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 23 15:42:33 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 18:18:30 2009 +0100"
      },
      "message": "hw-breakpoints: Check the breakpoint params from perf tools\n\nPerf tools create perf events as disabled in the beginning.\nBreakpoints are then considered like ptrace temporary\nbreakpoints, only meant to reserve a breakpoint slot until we\nget all the necessary informations from the user.\n\nIn this case, we don\u0027t check the address that is breakpointed as\nit is NULL in the ptrace case.\n\nBut perf tools don\u0027t have the same purpose, events are created\ndisabled to wait for all events to be created before enabling\nall of them. We want to check the breakpoint parameters in this\ncase.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1258987355-8751-2-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ba6909b719a5ccc0c8100d2895bb7ff557b2eeae",
      "tree": "b5658e01b10693a29a6e4b4fcf3a164b089a0ac2",
      "parents": [
        "acd1d7c1f8f3d848a3c5327dc09f8c1efb971678"
      ],
      "author": {
        "name": "K.Prasad",
        "email": "prasad@linux.vnet.ibm.com",
        "time": "Mon Nov 23 21:17:13 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 18:18:29 2009 +0100"
      },
      "message": "hw-breakpoint: Attribute authorship of hw-breakpoint related files\n\nAttribute authorship to developers of hw-breakpoint related\nfiles.\n\nSigned-off-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20091123154713.GA5593@in.ibm.com\u003e\n[ v2: moved it to latest -tip ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3a75542d329ce4e1c66b293cefeb4429a2af043",
      "tree": "1b9398078ce51278f01752efc57a0040d2a16163",
      "parents": [
        "28889bf9e2db29747d58cd47a92d727f927c3aee"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 22 05:21:34 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 09:03:43 2009 +0100"
      },
      "message": "hw-breakpoints: Remove x86 specific headers from core file\n\nRemove asm/processor.h and asm/debugreg.h as these headers are\nnot used anymore in the hw-breakpoints core file.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1258863695-10464-3-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f60d24d2ad04977b0bd9e3eb35dba2d2fa569af9",
      "tree": "b9335a41bce33a05985634a382a5adcf837dec43",
      "parents": [
        "9f6b3c2c30cfbb1166ce7e74a8f9fd93ae19d2de"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 10 10:17:07 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 10 11:23:29 2009 +0100"
      },
      "message": "hw-breakpoints: Fix broken hw-breakpoint sample module\n\nThe hw-breakpoint sample module has been broken during the\nhw-breakpoint internals refactoring. Propagate the changes\nto it.\n\nReported-by: \"K. Prasad\" \u003cprasad@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "ba1c813a6b9a0ef14d7112daf51270eff326f037",
      "tree": "353bc9fc05714961b182200ea0fc27aaa03097aa",
      "parents": [
        "24f1e32c60c45c89a997c73395b69c8af6f0a84e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Sep 10 09:26:21 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 08 16:20:47 2009 +0100"
      },
      "message": "hw-breakpoints: Arbitrate access to pmu following registers constraints\n\nAllow or refuse to build a counter using the breakpoints pmu following\ngiven constraints.\n\nWe keep track of the pmu users by using three per cpu variables:\n\n- nr_cpu_bp_pinned stores the number of pinned cpu breakpoints counters\n  in the given cpu\n\n- nr_bp_flexible stores the number of non-pinned breakpoints counters\n  in the given cpu.\n\n- task_bp_pinned stores the number of pinned task breakpoints in a cpu\n\nThe latter is not a simple counter but gathers the number of tasks that\nhave n pinned breakpoints.\nConsidering HBP_NUM the number of available breakpoint address\nregisters:\n   task_bp_pinned[0] is the number of tasks having 1 breakpoint\n   task_bp_pinned[1] is the number of tasks having 2 breakpoints\n   [...]\n   task_bp_pinned[HBP_NUM - 1] is the number of tasks having the\n   maximum number of registers (HBP_NUM).\n\nWhen a breakpoint counter is created and wants an access to the pmu,\nwe evaluate the following constraints:\n\n\u003d\u003d Non-pinned counter \u003d\u003d\n\n- If attached to a single cpu, check:\n\n    (per_cpu(nr_bp_flexible, cpu) || (per_cpu(nr_cpu_bp_pinned, cpu)\n         + max(per_cpu(task_bp_pinned, cpu)))) \u003c HBP_NUM\n\n       -\u003e If there are already non-pinned counters in this cpu, it\n          means there is already a free slot for them.\n          Otherwise, we check that the maximum number of per task\n          breakpoints (for this cpu) plus the number of per cpu\n          breakpoint (for this cpu) doesn\u0027t cover every registers.\n\n- If attached to every cpus, check:\n\n    (per_cpu(nr_bp_flexible, *) || (max(per_cpu(nr_cpu_bp_pinned, *))\n           + max(per_cpu(task_bp_pinned, *)))) \u003c HBP_NUM\n\n       -\u003e This is roughly the same, except we check the number of per\n          cpu bp for every cpu and we keep the max one. Same for the\n          per tasks breakpoints.\n\n\u003d\u003d Pinned counter \u003d\u003d\n\n- If attached to a single cpu, check:\n\n       ((per_cpu(nr_bp_flexible, cpu) \u003e 1)\n            + per_cpu(nr_cpu_bp_pinned, cpu)\n            + max(per_cpu(task_bp_pinned, cpu))) \u003c HBP_NUM\n\n       -\u003e Same checks as before. But now the nr_bp_flexible, if any,\n          must keep one register at least (or flexible breakpoints will\n          never be be fed).\n\n- If attached to every cpus, check:\n\n      ((per_cpu(nr_bp_flexible, *) \u003e 1)\n           + max(per_cpu(nr_cpu_bp_pinned, *))\n           + max(per_cpu(task_bp_pinned, *))) \u003c HBP_NUM\n\nChanges in v2:\n\n- Counter -\u003e event rename\n\nChanges in v5:\n\n- Fix unreleased non-pinned task-bound-only counters. We only released\n  it in the first cpu. (Thanks to Paul Mackerras for reporting that)\n\nChanges in v6:\n\n- Currently, events scheduling are done in this order: cpu context\n  pinned + cpu context non-pinned + task context pinned + task context\n  non-pinned events. Then our current constraints are right theoretically\n  but not in practice, because non-pinned counters may be scheduled\n  before we can apply every possible pinned counters. So consider\n  non-pinned counters as pinned for now.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "24f1e32c60c45c89a997c73395b69c8af6f0a84e",
      "tree": "4f30f16e18cb4abbcf96b3b331e6a3f01bfa26e6",
      "parents": [
        "2da3e160cb3d226d87b907fab26850d838ed8d7c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 09 19:22:48 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 08 15:34:42 2009 +0100"
      },
      "message": "hw-breakpoints: Rewrite the hw-breakpoints layer on top of perf events\n\nThis patch rebase the implementation of the breakpoints API on top of\nperf events instances.\n\nEach breakpoints are now perf events that handle the\nregister scheduling, thread/cpu attachment, etc..\n\nThe new layering is now made as follows:\n\n       ptrace       kgdb      ftrace   perf syscall\n          \\          |          /         /\n           \\         |         /         /\n                                        /\n            Core breakpoint API        /\n                                      /\n                     |               /\n                     |              /\n\n              Breakpoints perf events\n\n                     |\n                     |\n\n               Breakpoints PMU ---- Debug Register constraints handling\n                                    (Part of core breakpoint API)\n                     |\n                     |\n\n             Hardware debug registers\n\nReasons of this rewrite:\n\n- Use the centralized/optimized pmu registers scheduling,\n  implying an easier arch integration\n- More powerful register handling: perf attributes (pinned/flexible\n  events, exclusive/non-exclusive, tunable period, etc...)\n\nImpact:\n\n- New perf ABI: the hardware breakpoints counters\n- Ptrace breakpoints setting remains tricky and still needs some per\n  thread breakpoints references.\n\nTodo (in the order):\n\n- Support breakpoints perf counter events for perf tools (ie: implement\n  perf_bpcounter_event())\n- Support from perf tools\n\nChanges in v2:\n\n- Follow the perf \"event \" rename\n- The ptrace regression have been fixed (ptrace breakpoint perf events\n  weren\u0027t released when a task ended)\n- Drop the struct hw_breakpoint and store generic fields in\n  perf_event_attr.\n- Separate core and arch specific headers, drop\n  asm-generic/hw_breakpoint.h and create linux/hw_breakpoint.h\n- Use new generic len/type for breakpoint\n- Handle off case: when breakpoints api is not supported by an arch\n\nChanges in v3:\n\n- Fix broken CONFIG_KVM, we need to propagate the breakpoint api\n  changes to kvm when we exit the guest and restore the bp registers\n  to the host.\n\nChanges in v4:\n\n- Drop the hw_breakpoint_restore() stub as it is only used by KVM\n- EXPORT_SYMBOL_GPL hw_breakpoint_restore() as KVM can be built as a\n  module\n- Restore the breakpoints unconditionally on kvm guest exit:\n  TIF_DEBUG_THREAD doesn\u0027t anymore cover every cases of running\n  breakpoints and vcpu-\u003earch.switch_db_regs might not always be\n  set when the guest used debug registers.\n  (Waiting for a reliable optimization)\n\nChanges in v5:\n\n- Split-up the asm-generic/hw-breakpoint.h moving to\n  linux/hw_breakpoint.h into a separate patch\n- Optimize the breakpoints restoring while switching from kvm guest\n  to host. We only want to restore the state if we have active\n  breakpoints to the host, otherwise we don\u0027t care about messed-up\n  address registers.\n- Add asm/hw_breakpoint.h to Kbuild\n- Fix bad breakpoint type in trace_selftest.c\n\nChanges in v6:\n\n- Fix wrong header inclusion in trace.h (triggered a build\n  error with CONFIG_FTRACE_SELFTEST\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "62a038d34db26771756cf3689e36de638bedd2c4",
      "tree": "4b435b34474a889d8a5c82b687e981d9e09abc91",
      "parents": [
        "b332828c39326b1dca617f387dd15d12e81cd5f0"
      ],
      "author": {
        "name": "K.Prasad",
        "email": "prasad@linux.vnet.ibm.com",
        "time": "Mon Jun 01 23:43:33 2009 +0530"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 02 22:46:58 2009 +0200"
      },
      "message": "hw-breakpoints: introducing generic hardware breakpoint handler interfaces\n\nThis patch introduces the generic Hardware Breakpoint interfaces for both user\nand kernel space requests.\nThis core Api handles the hardware breakpoints through new helpers. It\nhandles the user-space breakpoints and kernel breakpoints in front of\narch implementation.\n\nOne can choose kernel wide breakpoints using the following helpers\nand passing them a generic struct hw_breakpoint:\n\n- register_kernel_hw_breakpoint()\n- unregister_kernel_hw_breakpoint()\n- modify_kernel_hw_breakpoint()\n\nOn the other side, you can choose per task breakpoints.\n\n- register_user_hw_breakpoint()\n- unregister_user_hw_breakpoint()\n- modify_user_hw_breakpoint()\n\n[ fweisbec@gmail.com: fix conflict against perfcounter ]\n\nOriginal-patch-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nReviewed-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    }
  ]
}
