1. 27 2月, 2009 10 次提交
    • S
      tracing: use pointer error returns for __tracing_open · 85a2f9b4
      Steven Rostedt 提交于
      Impact: fix compile warning and clean up
      
      When I first wrote __tracing_open, instead of passing the error
      code via the ERR_PTR macros, I lazily used a separate parameter
      to hold the return for errors.
      
      When Frederic Weisbecker updated that function, he used the Linux
      kernel ERR_PTR for the returns. This caused the parameter return
      to possibly not be initialized on error. gcc correctly pointed this
      out with a warning.
      
      This patch converts the entire function to use the Linux kernel
      ERR_PTR macro methods.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      85a2f9b4
    • S
      tracing: add protection around open use of current_tracer · d8e83d26
      Steven Rostedt 提交于
      Impact: fix to possible race conditions
      
      There's some uses of current_tracer that is not protected by the
      trace_types_lock. There is a small chance that a sysadmin changes
      the tracer while the current_tracer is being referenced.
      
      If the race is hit, it is unlikely to cause any harm since the
      tracers are constant and are not freed. But some strang side
      effects may occur.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      d8e83d26
    • S
      tracing: add tracer dependent options to options directory · 577b785f
      Steven Rostedt 提交于
      This patch adds the tracer dependent options dynamically to the
      options directory when the tracer is activated. These options are
      removed when the tracer is deactivated.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      577b785f
    • S
      tracing: add options directory and core option files · a8259075
      Steven Rostedt 提交于
      This patch creates an options directory in the debugfs, that contains
      the available tracing options. These files contain 1 or 0, where 1
      is the option is enabled and 0 it is disabled.
      
      Simply echoing in 1 will enable the option and 0 will disable it.
      This patch only contains the core options, not the tracer options.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      a8259075
    • I
      Merge branch 'sched/clock' into tracing/ftrace · 5d0859ce
      Ingo Molnar 提交于
      Conflicts:
      	kernel/sched_clock.c
      5d0859ce
    • I
      x86: set X86_FEATURE_TSC_RELIABLE · 83ce4009
      Ingo Molnar 提交于
      If the TSC is constant and non-stop, also set it reliable.
      
      (We will turn this off in DMI quirks for multi-chassis systems)
      
      The performance number on a 16-way Nehalem system running
      32 tasks that context-switch between each other is significant:
      
         sched_clock_stable=0		sched_clock_stable=1
         ....................         ....................
         22.456925 million/sec        24.306972 million/sec   [+8.2%]
      
      lmbench's "lat_ctx -s 0 2" goes from 0.63 microseconds to
      0.59 microseconds - a 6.7% increase in context-switching
      performance.
      
      Perfstat of 1 million pipe context switches between two tasks:
      
       Performance counter stats for './pipe-test-1m':
      
             [before]           [after]
         ............      ............
         37621.421089      36436.848378    task clock ticks     (msecs)
      
                    0                 0    CPU migrations       (events)
              2000274           2000189    context switches     (events)
                  194               193    pagefaults           (events)
           8433799643        8171016416    CPU cycles           (events) -3.21%
           8370133368        8180999694    instructions         (events) -2.31%
              4158565           3895941    cache references     (events) -6.74%
                44312             46264    cache misses         (events)
      
          2349.287976       2279.362465    wall-time            (msecs)  -3.06%
      
      The speedup comes straight from the reduction in the instruction
      count. sched_clock_cpu() got simpler and the whole workload thus
      executes faster.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      83ce4009
    • I
      sched: allow architectures to specify sched_clock_stable · b342501c
      Ingo Molnar 提交于
      Allow CONFIG_HAVE_UNSTABLE_SCHED_CLOCK architectures to still specify
      that their sched_clock() implementation is reliable.
      
      This will be used by x86 to switch on a faster sched_clock_cpu()
      implementation on certain CPU types.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b342501c
    • I
      tracing: implement trace_clock_*() APIs · 14131f2f
      Ingo Molnar 提交于
      Impact: implement new tracing timestamp APIs
      
      Add three trace clock variants, with differing scalability/precision
      tradeoffs:
      
       -   local: CPU-local trace clock
       -  medium: scalable global clock with some jitter
       -  global: globally monotonic, serialized clock
      
      Make the ring-buffer use the local trace clock internally.
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      14131f2f
    • I
      sched: sched_clock() improvement: use in_nmi() · 6409c4da
      Ingo Molnar 提交于
      make sure we dont execute more complex sched_clock() code in NMI context.
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6409c4da
    • J
      tracing, genirq: add irq enter and exit trace events · af39241b
      Jason Baron 提交于
      Impact: add new tracepoints
      
      Add them to the generic IRQ code, that way every architecture
      gets these new tracepoints, not just x86.
      
      Using Steve's new 'TRACE_FORMAT', I can get function graph
      trace as follows using the original two IRQ tracepoints:
      
       3)               |    handle_IRQ_event() {
       3)               |    /* (irq_handler_entry) irq=28 handler=eth0 */
       3)               |    e1000_intr_msi() {
       3)   2.460 us    |      __napi_schedule();
       3)   9.416 us    |    }
       3)               |    /* (irq_handler_exit) irq=28 handler=eth0 return=handled */
       3) + 22.935 us   |  }
      Signed-off-by: NJason Baron <jbaron@redhat.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: NMasami Hiramatsu <mhiramat@redhat.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Mathieu Desnoyers <compudj@krystal.dyndns.org>
      Cc: "Frank Ch. Eigler" <fche@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      af39241b
  2. 26 2月, 2009 5 次提交
  3. 25 2月, 2009 23 次提交
  4. 24 2月, 2009 2 次提交
    • S
      firedtv: massive refactoring · 15490795
      Stefan Richter 提交于
      Combination of the following changes:
      
      Mon, 23 Feb 2009 14:21:10 +0100 (CET)
      firedtv: reinstate debug logging option
      
          Henrik Kurelid tells me that FCP debug logging (which I removed during
          cleanups) is still useful when working on driver issues together with
          end users.  So bring it back in an updated form with only 60% of the
          original code footprint.
      
          Logging can be enabled with
          # echo -1 > /sys/module/firedtv/parameters/debug
      
          1 instead of -1 enables only FCP header logging,
          2 instead of -1 enables only hexdumps of the entire FCP frames.
          0 switches logging off again.
      
      Fri, 20 Feb 2009 20:54:27 +0100 (CET)
      firedtv: build fix for INPUT=m and DVB_FIREDTV=y
      
      Thu, 19 Feb 2009 20:40:39 +0100
      firedtv: use msecs_to_jiffies
      
          Pointed out by Mauro Carvalho Chehab.
      
      Sun Feb 15 20:50:46 CET 2009
      firedtv: some more housekeeping
      
          Fix an old checkpatch warning and a new compiler warning.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: rename a file once more
      
          At the moment, about a third of avc.c is specific to FireDTVs rather
          than generic AV/C code.  Rename it to firedtv-avc.c.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: more compact channels backing store
      
          Replace struct firedtv_channel { bool active; int pid; } channel[16];
          by unsigned long channel_active; u16 channel_pid[16];.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: some simplifications
      
          c->active was unnecessarily cleared twice.
      
          Also, by marking the channel inactive before the for loop,
          the loop becomes identical with fdtv_channel_collect().
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: remove a bogus loop
      
          This loop is unnecessary because
            - only active channel[].pid's will be sent to the device,
            - when a channel is activated, its pid is set to dvbdmxfeed->pid.
      
          Perhaps the original code was there because it was initially not fully
          covered by the fdtv->demux_mutex.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: fix mutex protection
      
          fdtv_start_feed() accessed the channel list unsafely.
          Fully serialize it with itself and fdtv_stop_feed().
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: fix missing braces
      
          Original code was:
                  ...
                  case DMX_TS_PES_OTHER:
                          //Dirty fix to keep firesat->channel pid-list up to date
                          for(k=0;k<16;k++){
                                  if(firesat->channel[k].active == 0)
                                          firesat->channel[k].pid =
                                                  dvbdmxfeed->pid;
                                          break;
                          }
                          channel = firesat_channel_allocate(firesat);
                          break;
                  default:
                  ...
      
          Looks bogus in several respects. For now let's just add braces to the if
          because that seems to be what the author meant.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: allow build without input subsystem
      
          !CONFIG_INPUT is very unlikely on systems on which firedtv is of
          interest.  But we can easily support it.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: replace EXTRA_CFLAGS by ccflags
      
          The former are deprecated.
          The latter can depend on Kconfig variables.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: concentrate ieee1394 dependencies
      
          Move the entire interface with drivers/ieee1394 to firedtv-1394.c.
          Move 1394-independent module initialization code to firedtv-dvb.c.
      
          This prepares interfacing with drivers/firewire.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: amend Kconfig menu prompt
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: remove kernel version compatibility macro
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: combine header files
      
          avc.h and firedtv-*.h are small and currently not shared with other
          drivers, hence concatenate them all into firedtv.h.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: misc style touch-ups
      
          Standardize on lower-case hexadecimal constants.  Adjust whitespace.
          Omit unnecessary pointer type casts and an unnecessary list head
          initialization.  Use dev_printk.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc, ci: remove unused constants
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: remove bitfields from read descriptor response operands
      
          Don't use bitfields in struct types of on-the-wire data.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: remove bitfields from DSD command operands
      
          Don't use bitfields in struct types of on-the-wire data.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: header file cleanup
      
          Remove unused constants and declarations.
          Move privately used constants into .c files.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: remove bitfields from FCP frame types
      
          Don't use bitfields in struct types of on-the-wire data.
      
          Also move many privately used constants from avc.h to avc.c
          and remove some unused constants.
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: avc: fix offset in avc_tuner_get_ts
      
          The parentheses were wrong.  It didn't matter though because this code
          only writes a 0 into an area which is already initialized to 0.
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: avc: reduce stack usage, remove two typedefs
      
          It is safe to share a memory buffer for command frame and response frame
          because the response data come in after the command frame was last used.
      
          Even less stack would be required if only the actual required frame size
          instead of the entire FCP register size was allocated.
      
          Also, rename the defined types AVCCmdFrm and AVCRspFrm to
          struct avc_command_frame and struct avc_response_frame.
          TODO:  Remove the bitfields in these types.
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: cmp: move code to avc
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: iso: move code to firedtv-1394
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: iso: remove unnecessary struct type definitions
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: iso: style changes and fixlets
      
          Add cleanup after failure in setup_iso_channel.
          Replace printk() by dv_err().
          Decrease indentation level in rawiso_activity_cb().
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      15490795
    • R
      firedtv: rename files, variables, functions from firesat to firedtv · a70f81c1
      Rambaldi 提交于
      Combination of the following changes:
      
      Sat, 17 Jan 2009 14:47:34 +0100
      firedtv: rename variables and functions from firesat to firedtv
      Signed-off-by: NRambaldi <Rambaldi@xs4all.nl>
      
          Additional changes by Stefan Richter:
      
          Renamed struct firedtv *firedtv to struct firedtv *fdtv and
          firedtv_foo_bar() to fdtv_foo_bar() for brevity.
      
      Sat, 17 Jan 2009 13:07:44 +0100
      firedtv: rename files from firesat to firedtv
      Signed-off-by: NRambaldi <Rambaldi@xs4all.nl>
      
          Additional changes by Stefan Richter:
      
          Name the directory "firewire" instead of "firedtv".
          Standardize on "-" instead of "_" in file names, because that's what
          drivers/firewire/ and drivers/media/dvb/dvb-usb/ use too.
          Build fix.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      a70f81c1