1. 23 3月, 2009 1 次提交
  2. 18 3月, 2009 3 次提交
  3. 15 3月, 2009 1 次提交
  4. 14 3月, 2009 1 次提交
  5. 13 3月, 2009 8 次提交
  6. 12 3月, 2009 2 次提交
  7. 11 3月, 2009 6 次提交
  8. 10 3月, 2009 10 次提交
    • V
      [SCSI] fcoe: Out of order tx frames was causing several check condition SCSI status · c826a314
      Vasu Dev 提交于
      frames followed by these errors in log.
      
      	[sdp] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
      	[sdp] Sense Key : Aborted Command [current]
      	[sdp] Add. Sense: Data phase error
      
      This was causing some test apps to exit due to write failure under heavy
      load.
      
      This was due to a race around adding and removing tx frame skb in
      fcoe_pending_queue, Chris Leech helped me to find that brief unlocking
      period when pulling skb from fcoe_pending_queue in various contexts
      (fcoe_watchdog and fcoe_xmit) and then adding skb back into fcoe_pending_queue
      up on a failed fcoe_start_io could change skb/tx frame order in
      fcoe_pending_queue. Thanks Chris.
      
      This patch allows only single context to pull skb from fcoe_pending_queue
      at any time to prevent above described ordering issue/race by use of
      fcoe_pending_queue_active flag.
      
      This patch simplified fcoe_watchdog with modified fcoe_check_wait_queue by
      use of FCOE_LOW_QUEUE_DEPTH instead previously used several conditionals
      to clear and set lp->qfull.
      
      I think FCOE_MAX_QUEUE_DEPTH with FCOE_LOW_QUEUE_DEPTH  will work better
      in re/setting lp->qfull and these could be fine tuned for performance.
      Signed-off-by: NVasu Dev <vasu.dev@intel.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      c826a314
    • Y
    • R
      [SCSI] libfc, fcoe: Remove unnecessary cast by removing inline wrapper · fc47ff6b
      Robert Love 提交于
      Comment from "Andrew Morton <akpm@linux-foundation.org>"
      
      > +{
      > +     return (struct fcoe_softc *)lport_priv(lp);
      
      unneeded/undesirable cast of void*.  There are probably zillions of
      instances of this - there always are.
      
      This whole inline function was unnecessary. The FCoE layer knows
      that it's data structure is stored in the lport private data, it
      can just access it from lport_priv().
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      fc47ff6b
    • R
      [SCSI] libfc, fcoe: Fix kerneldoc comments · 34f42a07
      Robert Love 提交于
      1) Added '()' for function names in kerneldoc comments
      
      2) Changed comment bookends from '**/' to '*/'. The comment on the the
         mailing list was that '**/' "is consistently unconventional.  Not
         wrong, just odd." The Documentation/kernel-doc-nano-HOWTO.txt
         states that kerneldoc comment blocks should end with '**/' but most
         (if not all) instance I found under drivers/scsi/ were only using
         the '*/' so I converted to that style.
      
      3) Removed incorrect linebreaks in kerneldoc comments where found
      
      4) Removed a few unnecessary blank comment lines in kerneldoc comment
         blocks
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      34f42a07
    • S
      tracing: remove obsolete TRACE_EVENT_FORMAT macro · 157587d7
      Steven Rostedt 提交于
      Impact: clean up
      
      The TRACE_EVENT_FORMAT macro is no longer used by trace points
      and only the DECLARE_TRACE, TRACE_FORMAT or TRACE_EVENT macros should
      be used by them. Although the TRACE_EVENT_FORMAT macro is still used
      by the internal tracing utility, it should not be used in core
      kernel code.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      157587d7
    • S
      tracing: convert irq trace points to new macros · d6e2ca4c
      Steven Rostedt 提交于
      Impact: enhancement
      
      Converted the two irq trace point macros. The entry macro copies
      the name of the irq handler, thus it is better to simply use the
      TRACE_FORMAT macro which uses the trace_printk.
      
      The return of the handler does not need to record the name, thus
      the faster C style handler is more approriate.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      d6e2ca4c
    • S
      tracing: convert the sched trace points to the TRACE_EVENT macros · 12b5fdb8
      Steven Rostedt 提交于
      Impact: enhancement
      
      This patch converts the rest of the sched trace points to use the new
      more powerful TRACE_EVENT macro.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      12b5fdb8
    • S
      tracing: new format for specialized trace points · da4d0302
      Steven Rostedt 提交于
      Impact: clean up and enhancement
      
      The TRACE_EVENT_FORMAT macro looks quite ugly and is limited in its
      ability to save data as well as to print the record out. Working with
      Ingo Molnar, we came up with a new format that is much more pleasing to
      the eye of C developers. This new macro is more C style than the old
      macro, and is more obvious to what it does.
      
      Here's the example. The only updated macro in this patch is the
      sched_switch trace point.
      
      The old method looked like this:
      
       TRACE_EVENT_FORMAT(sched_switch,
              TP_PROTO(struct rq *rq, struct task_struct *prev,
                      struct task_struct *next),
              TP_ARGS(rq, prev, next),
              TP_FMT("task %s:%d ==> %s:%d",
                    prev->comm, prev->pid, next->comm, next->pid),
              TRACE_STRUCT(
                      TRACE_FIELD(pid_t, prev_pid, prev->pid)
                      TRACE_FIELD(int, prev_prio, prev->prio)
                      TRACE_FIELD_SPECIAL(char next_comm[TASK_COMM_LEN],
                                          next_comm,
                                          TP_CMD(memcpy(TRACE_ENTRY->next_comm,
                                                       next->comm,
                                                       TASK_COMM_LEN)))
                      TRACE_FIELD(pid_t, next_pid, next->pid)
                      TRACE_FIELD(int, next_prio, next->prio)
              ),
              TP_RAW_FMT("prev %d:%d ==> next %s:%d:%d")
              );
      
      The above method is hard to read and requires two format fields.
      
      The new method:
      
       /*
        * Tracepoint for task switches, performed by the scheduler:
        *
        * (NOTE: the 'rq' argument is not used by generic trace events,
        *        but used by the latency tracer plugin. )
        */
       TRACE_EVENT(sched_switch,
      
      	TP_PROTO(struct rq *rq, struct task_struct *prev,
      		 struct task_struct *next),
      
      	TP_ARGS(rq, prev, next),
      
      	TP_STRUCT__entry(
      		__array(	char,	prev_comm,	TASK_COMM_LEN	)
      		__field(	pid_t,	prev_pid			)
      		__field(	int,	prev_prio			)
      		__array(	char,	next_comm,	TASK_COMM_LEN	)
      		__field(	pid_t,	next_pid			)
      		__field(	int,	next_prio			)
      	),
      
      	TP_printk("task %s:%d [%d] ==> %s:%d [%d]",
      		__entry->prev_comm, __entry->prev_pid, __entry->prev_prio,
      		__entry->next_comm, __entry->next_pid, __entry->next_prio),
      
      	TP_fast_assign(
      		memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN);
      		__entry->prev_pid	= prev->pid;
      		__entry->prev_prio	= prev->prio;
      		memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN);
      		__entry->next_pid	= next->pid;
      		__entry->next_prio	= next->prio;
      	)
       );
      
      This macro is called TRACE_EVENT, it is broken up into 5 parts:
      
       TP_PROTO:        the proto type of the trace point
       TP_ARGS:         the arguments of the trace point
       TP_STRUCT_entry: the structure layout of the entry in the ring buffer
       TP_printk:       the printk format
       TP_fast_assign:  the method used to write the entry into the ring buffer
      
      The structure is the definition of how the event will be saved in the
      ring buffer. The printk is used by the internal tracing in case of
      an oops, and the kernel needs to print out the format of the record
      to the console. This the TP_printk gives a means to show the records
      in a human readable format. It is also used to print out the data
      from the trace file.
      
      The TP_fast_assign is executed directly. It is basically like a C function,
      where the __entry is the handle to the record.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      da4d0302
    • S
      tracing: replace TP<var> with TP_<var> · 2939b046
      Steven Rostedt 提交于
      Impact: clean up
      
      The macros TPPROTO, TPARGS, TPFMT, TPRAWFMT, and TPCMD all look a bit
      ugly. This patch adds an underscore to their names.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      2939b046
    • D
      Revert "[CPUFREQ] Disable sysfs ui for p4-clockmod." · 129f8ae9
      Dave Jones 提交于
      This reverts commit e088e4c9.
      
      Removing the sysfs interface for p4-clockmod was flagged as a
      regression in bug 12826.
      
      Course of action:
       - Find out the remaining causes of overheating, and fix them
         if possible. ACPI should be doing the right thing automatically.
         If it isn't, we need to fix that.
       - mark p4-clockmod ui as deprecated
       - try again with the removal in six months.
      
      It's not really feasible to printk about the deprecation, because
      it needs to happen at all the sysfs entry points, which means adding
      a lot of strcmp("p4-clockmod".. calls to the core, which.. bleuch.
      Signed-off-by: NDave Jones <davej@redhat.com>
      129f8ae9
  9. 09 3月, 2009 2 次提交
    • I
      tracing: optimize trace_printk() · 7bffc23e
      Ingo Molnar 提交于
      Impact: micro-optimization
      
      trace_printk() does this unconditionally:
      
      	trace_printk_fmt = fmt;
      
      Where trace_printk_fmt is an entry into a global array. This is
      very SMP-unfriendly.
      
      So only write it once per bootup.
      
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1236356510-8381-5-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7bffc23e
    • I
      tracing: trace_printk() fix, move format array to data section · 8a20d84d
      Ingo Molnar 提交于
      Impact: fix kernel crash when using trace_printk()
      
      trace_printk_fmt section is defined into the readonly section.
      But we do:
      
      	trace_printk_fmt = fmt;
      
      to fill in that table of format strings - which is not read-only.
      Under CONFIG_DEBUG_RODATA=y this crashes ...
      
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1236356510-8381-5-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8a20d84d
  10. 08 3月, 2009 1 次提交
  11. 07 3月, 2009 5 次提交