1. 28 Nov, 2009 8 commits
    • Ingo Molnar's avatar
      perf scripting: Fix build · cf72344d
      Ingo Molnar authored
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      cf72344d
    • Tom Zanussi's avatar
      perf trace: Add a scripts/perl/bin for perf trace shell scripts · 1ae4a971
      Tom Zanussi authored
      To capture the relevant events for a given Perl script and to
      avoid having to continually remember and type in long
      command-lines, add a scripts/perl/bin directory containing two
      simple shell scripts for each Perl script, one for recording and
      one for processing/display. For example, to record perf data for
      the rw-by-pid.pl script, run scripts/perl/bin/rw-by-pid-record
      and to actually run the script and display the output run
      scripts/perl/bin/rw-by-pid-report.
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-8-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1ae4a971
    • Tom Zanussi's avatar
      perf trace: Add Documentation for perf trace Perl support · 89fbf0b8
      Tom Zanussi authored
      Adds perf-trace-perl Documentation and a link to it from the
      perf-trace page.
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-7-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      89fbf0b8
    • Tom Zanussi's avatar
      perf trace: Add interface to access perf data from Perl handlers · d1b93772
      Tom Zanussi authored
      The Perl scripting support for perf trace allows most of a trace
      event's data to be accessed directly as handler arguments, but
      not all of it e.g. the less common fields aren't passed in.  To
      give scripts access to the other fields and/or any other data or
      metadata in the main perf executable that might be useful, a way
      to access the C data in perf from Perl is needed; this patch
      uses the Perl XS facility to do it for the common_xxx event
      fields not passed to handler functions.
      
      Context.pm exports three functions to Perl scripts that access
      fields for the current event by calling back into perf:
      common_pc(), common_flags() and common_lock_depth().  Support
      for common_flags() field values was added to Core.pm and a
      script used to sanity check these and other basic scripting
      features, check-perf-trace.pl, was also added.
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-6-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d1b93772
    • Tom Zanussi's avatar
      perf trace: Add perf trace scripting support modules for Perl · bcefe12e
      Tom Zanussi authored
      Add Perf-Trace-Util Perl module and some scripts that use it.
      Core.pm contains Perl code to define and access flag and
      symbolic fields. Util.pm contains general-purpose utility
      functions.
      
      Also adds some makefile bits to install them in
      libexec/perf-core/scripts/perl (or wherever perfexec_instdir
      points).
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-5-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      bcefe12e
    • Tom Zanussi's avatar
      perf trace: Add Perl scripting support · 16c632de
      Tom Zanussi authored
      Implement trace_scripting_ops to make Perl a supported perf
      trace scripting language.
      
      Additionally adds code that allows Perl trace scripts to access
      the 'flag' and 'symbolic' (__print_flags(), __print_symbolic())
      field information parsed from the trace format files.
      
      Also adds the Perl implementation of the generate_script()
      trace_scripting_op, which creates a ready-to-run perf trace Perl
      script based on existing trace data.  Scripts generated by this
      implementation print out all the fields for each event mentioned
      in perf.data (and will detect and generate the proper scripting
      code for 'flag' and 'symbolic' fields), and will additionally
      generate handlers for the special 'trace_unhandled',
      'trace_begin' and 'trace_end' handlers.  Script authors can
      simply remove the printing code to implement their own custom
      event handling.
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-4-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      16c632de
    • Tom Zanussi's avatar
      perf trace: Add flag/symbolic format_flags · eb9a42ca
      Tom Zanussi authored
      It's useful to know whether a field is a flag or symbolic field
      for e.g. when generating scripts - it allows us to translate
      those fields specially rather than literally as plain numeric
      values.
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-3-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      eb9a42ca
    • Tom Zanussi's avatar
      perf trace: Add scripting ops · 956ffd02
      Tom Zanussi authored
      Adds an interface, scripting_ops, that when implemented for a
      particular scripting language enables built-in support for trace
      stream processing using that language.
      
      The interface is designed to enable full-fledged language
      interpreters to be embedded inside the perf executable and
      thereby make the full capabilities of the supported languages
      available for trace processing.
      
      See below for details on the interface.
      
      This patch also adds a couple command-line options to 'perf
      trace':
      
      The -s option option is used to specify the script to be run.
      Script names that can be used with -s take the form:
      
      [language spec:]scriptname[.ext]
      
      Scripting languages register a set of 'language specs' that can
      be used to specify scripts for the registered languages.  The
      specs can be used either as prefixes or extensions.
      
      If [language spec:] is used, the script is taken as a script of
      the matching language regardless of any extension it might have.
       If [language spec:] is not used, [.ext] is used to look up the
      language it corresponds to.  Language specs are case
      insensitive.
      
      e.g. Perl scripts can be specified in the following ways:
      
      Perl:scriptname
      pl:scriptname.py # extension ignored
      PL:scriptname
      scriptname.pl
      scriptname.perl
      
      The -g [language spec] option gives users an easy starting point
      for writing scripts in the specified language.  Scripting
      support for a particular language can implement a
      generate_script() scripting op that outputs an empty (or
      near-empty) set of handlers for all the events contained in a
      given perf.data trace file - this option gives users a direct
      way to access that.
      
      Adding support for a scripting language
      ---------------------------------------
      
      The main thing that needs to be done do add support for a new
      language is to implement the scripting_ops interface:
      
      It consists of the following four functions:
      
          start_script()
          stop_script()
          process_event()
          generate_script()
      
      start_script() is called before any events are processed, and is
      meant to give the scripting language support an opportunity to
      set things up to receive events e.g. create and initialize an
      instance of a language interpreter.
      
      stop_script() is called after all events are processed, and is
      meant to give the scripting language support an opportunity to
      clean up e.g. destroy the interpreter instance, etc.
      
      process_event() is called once for each event and takes as its
      main parameter a pointer to the binary trace event record to be
      processed. The implementation is responsible for picking out the
      binary fields from the event record and sending them to the
      script handler function associated with that event e.g. a
      function derived from the event name it's meant to handle e.g.
      'sched::sched_switch()'.  The 'format' information for trace
      events can be used to parse the binary data and map it into a
      form usable by a given scripting language; see the Perl
      implemention in subsequent patches for one possible way to
      leverage the existing trace format parsing code in perf and map
      that info into specific scripting language types.
      
      generate_script() should generate a ready-to-run script for the
      current set of events in the trace, preferably with bodies that
      print out every field for each event.  Again, look at the Perl
      implementation for clues as to how that can be done.  This is an
      optional, but very useful op.
      
      Support for a given language should also add a language-specific
      setup function and call it from setup_scripting().  The
      language-specific setup function associates the the scripting
      ops for that language with one or more 'language specifiers'
      (see below) using script_spec_register().  When a script name is
      specified on the command line, the scripting ops associated with
      the specified language are used to instantiate and use the
      appropriate interpreter to process the trace stream.
      
      In general, it should be relatively easy to add support for a
      new language, especially if the language implementation supports
      an interface allowing an interpreter to be 'embedded' inside
      another program (in this case the containing program will be
      'perf trace'). If so, it should be relatively straightforward to
      translate trace events into invocations of user-defined script
      functions where e.g. the function name corresponds to the event
      type and the function parameters correspond to the event fields.
       The event and field type information exported by the event
      tracing infrastructure (via the event 'format' files) should be
      enough to parse and send any piece of trace data to the user
      script.  The easiest way to see how this can be done would be to
      look at the Perl implementation contained in
      perf/util/trace-event-perl.c/.h.
      
      There are a couple of other things that aren't covered by the
      scripting_ops or setup interface and are technically optional,
      but should be implemented if possible.  One of these is support
      for 'flag' and 'symbolic' fields e.g. being able to use more
      human-readable values such as 'GFP_KERNEL' or
      HI/BLOCK_IOPOLL/TASKLET in place of raw flag values.  See the
      Perl implementation to see how this can be done. The other thing
      is support for 'calling back' into the perf executable to access
      e.g. uncommon fields not passed by default into handler
      functions, or any metadata the implementation might want to make
      available to users via the language interface.  Again, see the
      Perl implementation for examples.
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Cc: fweisbec@gmail.com
      Cc: rostedt@goodmis.org
      Cc: anton@samba.org
      Cc: hch@infradead.org
      LKML-Reference: <1259133352-23685-2-git-send-email-tzanussi@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      956ffd02
  2. 27 Nov, 2009 18 commits
  3. 26 Nov, 2009 14 commits
    • Stephane Eranian's avatar
      perf_events: Fix read() bogus counts when in error state · b2e74a26
      Stephane Eranian authored
      When a pinned group cannot be scheduled it goes into error state.
      
      Normally a group cannot go out of error state without being
      explicitly re-enabled or disabled. There was a bug in per-thread
      mode, whereby upon termination of the thread, the group would
      transition from error to off leading to bogus counts and timing
      information returned by read().
      
      Fix it by clearing the error state.
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: perfmon2-devel@lists.sourceforge.net
      LKML-Reference: <4b0eb9ce.0508d00a.573b.ffffeab6@mx.google.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b2e74a26
    • Ingo Molnar's avatar
      tracing: Fix kmem event exports · 4d795fb1
      Ingo Molnar authored
      Commit 53d0422c ("tracing: Convert some kmem events to DEFINE_EVENT")
      moved the kmem tracepoint creation from util.c to page_alloc.c,
      but forgot to move the exports.
      
      Move them back.
      
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      LKML-Reference: <4B0E286A.2000405@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4d795fb1
    • Masami Hiramatsu's avatar
      tracepoint: Add signal loss events · ba005e1f
      Masami Hiramatsu authored
      Add signal_overflow_fail and signal_lose_info tracepoints
      for signal-lost events.
      
      Changes in v3:
       - Add docbook style comments
      
      Changes in v2:
       - Use siginfo string macro
      Suggested-by: default avatarRoland McGrath <roland@redhat.com>
      Reviewed-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: systemtap <systemtap@sources.redhat.com>
      Cc: DLE <dle-develop@lists.sourceforge.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      LKML-Reference: <20091124215658.30449.9934.stgit@dhcp-100-2-132.bos.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ba005e1f
    • Masami Hiramatsu's avatar
      tracepoint: Add signal deliver event · f9d4257e
      Masami Hiramatsu authored
      Add a tracepoint where a process gets a signal. This tracepoint
      shows signal-number, sa-handler and sa-flag.
      
      Changes in v3:
       - Add docbook style comments
      
      Changes in v2:
       - Add siginfo argument
       - Fix comment
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
      Reviewed-by: default avatarJason Baron <jbaron@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: systemtap <systemtap@sources.redhat.com>
      Cc: DLE <dle-develop@lists.sourceforge.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      LKML-Reference: <20091124215651.30449.20926.stgit@dhcp-100-2-132.bos.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f9d4257e
    • Masami Hiramatsu's avatar
      tracepoint: Move signal sending tracepoint to events/signal.h · d1eb650f
      Masami Hiramatsu authored
      Move signal sending event to events/signal.h. This patch also
      renames sched_signal_send event to signal_generate.
      
      Changes in v4:
       - Fix a typo of task_struct pointer.
      
      Changes in v3:
       - Add docbook style comments
      
      Changes in v2:
       - Add siginfo argument
       - Add siginfo storing macro
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
      Reviewed-by: default avatarJason Baron <jbaron@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: systemtap <systemtap@sources.redhat.com>
      Cc: DLE <dle-develop@lists.sourceforge.net>
      Cc: Oleg Nesterov <oleg@redhat.com>
      LKML-Reference: <20091124215645.30449.60208.stgit@dhcp-100-2-132.bos.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d1eb650f
    • Frederic Weisbecker's avatar
      hw-breakpoints: Fix unused function in off-case · 80bbf6b6
      Frederic Weisbecker authored
      bp_perf_event_destroy() is unused in its off-case version, let's
      remove it to fix the following warning reported by Stephen
      Rothwell in linux-next:
      
        kernel/perf_event.c:4306: warning: 'bp_perf_event_destroy' defined but not used
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1259180453-5813-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      80bbf6b6
    • Andrew Morton's avatar
      kernel/hw_breakpoint.c: Fix local/global shadowing · 11e66357
      Andrew Morton authored
      If the new percpu tree is combined with the perf events tree
      the following new warning triggers:
      
       kernel/hw_breakpoint.c: In function 'toggle_bp_task_slot':
       kernel/hw_breakpoint.c:151: warning: 'task_bp_pinned' is used uninitialized in this function
      
      Because it's not valid anymore to define a local variable
      and a percpu variable (even if it's file scope local) with
      the same name.
      
      Rename the local variable to resolve this.
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: K.Prasad <prasad@linux.vnet.ibm.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <200911260701.nAQ71owx016356@imap1.linux-foundation.org>
      [ v2: added changelog ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      11e66357
    • Frederic Weisbecker's avatar
      x86/hw-breakpoints: Don't lose GE flag while disabling a breakpoint · 2c31b795
      Frederic Weisbecker authored
      When we schedule out a breakpoint from the cpu, we also
      incidentally remove the "Global exact breakpoint" flag from the
      breakpoint control register. It makes us losing the fine grained
      precision about the origin of the instructions that may trigger
      breakpoint exceptions for the other breakpoints running in this
      cpu.
      Reported-by: default avatarPrasad <prasad@linux.vnet.ibm.com>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1259211878-6013-1-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2c31b795
    • Frederic Weisbecker's avatar
      hw-breakpoints: Simplify error handling in breakpoint creation requests · 605bfaee
      Frederic Weisbecker authored
      This simplifies the error handling when we create a breakpoint.
      We don't need to check the NULL return value corner case anymore
      since we have improved perf_event_create_kernel_counter() to
      always return an error code in the failure case.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1259210142-5714-3-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      605bfaee
    • Frederic Weisbecker's avatar
      hw-breakpoints: Improve in-kernel event creation error granularity · c6567f64
      Frederic Weisbecker authored
      In fail case, perf_event_create_kernel_counter() returns NULL
      instead of an error, which doesn't help us to inform the user
      about the origin of the problem from the outer most callers.
      Often we can just return -EINVAL, which doesn't help anyone when
      it's eventually about a memory allocation failure.
      
      Then, this patch makes perf_event_create_kernel_counter() always
      return a detailed error code.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1259210142-5714-2-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c6567f64
    • Frederic Weisbecker's avatar
      ksym_tracer: Fix breakpoint removal after modification · d99be40a
      Frederic Weisbecker authored
      The error path of a breakpoint modification is broken in
      the ksym tracer. A modified breakpoint hlist node is immediately
      released after its removal. Also we leak a breakpoint in this
      case.
      
      Fix the path.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1259210142-5714-1-git-send-regression-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d99be40a
    • Li Zefan's avatar
      tracing: Restore original format of sched events · 470dda74
      Li Zefan authored
      The original format for sched_stat_iowait and sched_stat_sleep:
      
        $ cat events/sched/sched_stat_iowait/format
        ...
        print fmt: "comm=%s pid=%d delay=%Lu [ns]", ...
        $ cat events/sched/sched_stat_sleep/format
        ...
        print fmt: "comm=%s pid=%d delay=%Lu [ns]", ...
      
      But commit commit 75ec29ab
      ("tracing: Convert some sched trace events to DEFINE_EVENT and
      _PRINT") broke the format:
      
        $ cat events/sched/sched_stat_iowait/format
        print fmt: "task: %s:%d iowait: %Lu [ns]", ...
        $ cat events/sched/sched_stat_sleep/format
        print fmt: "task: %s:%d sleep: %Lu [ns]", ...
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E2951.9050800@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      470dda74
    • Li Zefan's avatar
      tracing: Convert some ext4 events to DEFINE_TRACE · b5eb34c3
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
       294695    6104     340  301139   49853 fs/ext4/ext4.o.old
       289983    6104     324  296411   485db fs/ext4/ext4.o
      
      5 events are convertd:
      
        ext4__write_begin: ext4_write_begin, ext4_da_write_begin
        ext4__write_end: ext4_{ordered, writeback, journalled}_write_end
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E2938.2040708@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b5eb34c3
    • Li Zefan's avatar
      tracing: Convert some jbd2 events to DEFINE_EVENT · 071688f3
      Li Zefan authored
      Use DECLARE_EVENT_CLASS to remove duplicate code:
      
         text    data     bss     dec     hex filename
        34903    1693     448   37044    90b4 fs/jbd2/journal.o.old
        31931    1693     416   34040    84f8 fs/jbd2/journal.o
      
      Four events are converted:
      
        jbd2_commit: jbd2_start_commit,
                     jbd2_commit_{locking, flushing, logging}
      
      No change in functionality.
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4B0E290F.7030909@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      071688f3