1. 07 9月, 2010 4 次提交
    • K
      skb: Add tracepoints to freeing skb · 07dc22e7
      Koki Sanagi 提交于
      This patch adds tracepoint to consume_skb and add trace_kfree_skb
      before __kfree_skb in skb_free_datagram_locked and net_tx_action.
      Combinating with tracepoint on dev_hard_start_xmit, we can check
      how long it takes to free transmitted packets. And using it, we can
      calculate how many packets driver had at that time. It is useful when
      a drop of transmitted packet is a problem.
      
                  sshd-6828  [000] 112689.258154: consume_skb: skbaddr=f2d99bb8
      Signed-off-by: NKoki Sanagi <sanagi.koki@jp.fujitsu.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Kaneshige Kenji <kaneshige.kenji@jp.fujitsu.com>
      Cc: Izumo Taku <izumi.taku@jp.fujitsu.com>
      Cc: Kosaki Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Scott Mcmillan <scott.a.mcmillan@intel.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      LKML-Reference: <4C724364.50903@jp.fujitsu.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      07dc22e7
    • K
      netdev: Add tracepoints to netdev layer · cf66ba58
      Koki Sanagi 提交于
      This patch adds tracepoint to dev_queue_xmit, dev_hard_start_xmit,
      netif_rx and netif_receive_skb. These tracepoints help you to monitor
      network driver's input/output.
      
                <idle>-0     [001] 112447.902030: netif_rx: dev=eth1 skbaddr=f3ef0900 len=84
                <idle>-0     [001] 112447.902039: netif_receive_skb: dev=eth1 skbaddr=f3ef0900 len=84
                  sshd-6828  [000] 112447.903257: net_dev_queue: dev=eth4 skbaddr=f3fca538 len=226
                  sshd-6828  [000] 112447.903260: net_dev_xmit: dev=eth4 skbaddr=f3fca538 len=226 rc=0
      Signed-off-by: NKoki Sanagi <sanagi.koki@jp.fujitsu.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Kaneshige Kenji <kaneshige.kenji@jp.fujitsu.com>
      Cc: Izumo Taku <izumi.taku@jp.fujitsu.com>
      Cc: Kosaki Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Scott Mcmillan <scott.a.mcmillan@intel.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      LKML-Reference: <4C72431E.3000901@jp.fujitsu.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      cf66ba58
    • N
      napi: Convert trace_napi_poll to TRACE_EVENT · 3e4b10d7
      Neil Horman 提交于
      This patch converts trace_napi_poll from DECLARE_EVENT to TRACE_EVENT
      to improve the usability of napi_poll tracepoint.
      
                <idle>-0     [001] 241302.750777: napi_poll: napi poll on napi struct f6acc480 for device eth3
                <idle>-0     [000] 241302.852389: napi_poll: napi poll on napi struct f5d0d70c for device eth1
      
      The original patch is below:
      http://marc.info/?l=linux-kernel&m=126021713809450&w=2
      
      [ sanagi.koki@jp.fujitsu.com: And add a fix by Steven Rostedt:
      http://marc.info/?l=linux-kernel&m=126150506519173&w=2 ]
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Kaneshige Kenji <kaneshige.kenji@jp.fujitsu.com>
      Cc: Izumo Taku <izumi.taku@jp.fujitsu.com>
      Cc: Kosaki Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Scott Mcmillan <scott.a.mcmillan@intel.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      LKML-Reference: <4C7242D7.4050009@jp.fujitsu.com>
      Signed-off-by: NKoki Sanagi <sanagi.koki@jp.fujitsu.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      3e4b10d7
    • L
      irq: Add tracepoint to softirq_raise · 2bf2160d
      Lai Jiangshan 提交于
      Add a tracepoint for tracing when softirq action is raised.
      
      This and the existing tracepoints complete softirq's tracepoints:
      softirq_raise, softirq_entry and softirq_exit.
      
      And when this tracepoint is used in combination with
      the softirq_entry tracepoint we can determine
      the softirq raise latency.
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      Acked-by: NMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Cc: David Miller <davem@davemloft.net>
      Cc: Kaneshige Kenji <kaneshige.kenji@jp.fujitsu.com>
      Cc: Izumo Taku <izumi.taku@jp.fujitsu.com>
      Cc: Kosaki Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Scott Mcmillan <scott.a.mcmillan@intel.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      LKML-Reference: <4C724298.4050509@jp.fujitsu.com>
      [ factorize softirq events with DECLARE_EVENT_CLASS ]
      Signed-off-by: NKoki Sanagi <sanagi.koki@jp.fujitsu.com>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      2bf2160d
  2. 02 9月, 2010 1 次提交
    • S
      ring-buffer: Place duplicate expression into a single function · f6195aa0
      Steven Rostedt 提交于
      While discussing the strictness of the 80 character limit on the
      Kernel Summit Discussion mailing list, I showed examples that I
      broke that limit slightly with some algorithms. In discussing with
      John Linville, what looked better, I realized that two of the
      80 char breaking culprits were an identical expression.
      
      As a clean up, this patch moves the identical expression into its
      own helper function and that is used instead. As a side effect,
      the offending code is now under the 80 character limit. :-)
      
      This clean up code also changes the expression from
      
      	(A - B) - C  to  A - (B + C)
      
      This makes the code look a little nicer too.
      
      Cc: John W. Linville <linville@tuxdriver.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      f6195aa0
  3. 01 9月, 2010 4 次提交
    • C
      perf, x86, Pentium4: Add RAW events verification · c9cf4a01
      Cyrill Gorcunov 提交于
      Implements verification of
      
      - Bits of ESCR EventMask field (meaningful bits in field are hardware
        predefined and others bits should be set to zero)
      
      - INSTR_COMPLETED event (it is available on predefined cpu model only)
      
      - Thread shared events (they should be guarded by "perf_event_paranoid"
        sysctl due to security reason). The side effect of this action is
        that PERF_COUNT_HW_BUS_CYCLES become a "paranoid" general event.
      Signed-off-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Tested-by: NLin Ming <ming.m.lin@intel.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <20100825182334.GB14874@lenovo>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c9cf4a01
    • A
      lockup_detector: Remove unused panic_notifier · 14416c35
      Akinobu Mita 提交于
      The panic notifer in lockup_detector just set did_panic to 1.
      But did_panic is not used anywhere so we can just remove it.
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: peterz@infradead.org
      Cc: gorcunov@gmail.com
      Cc: fweisbec@gmail.com
      LKML-Reference: <1283310009-22168-4-git-send-email-dzickus@redhat.com>
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      14416c35
    • A
      lockup_detector: Convert cpu notifier to return encapsulate errno value · eac24335
      Akinobu Mita 提交于
      By the commit e6bde73b
      ("cpu-hotplug: return better errno on cpu hotplug failure"),
      the cpu notifier can return encapsulate errno value, resulting
      in more meaningful error codes for CPU hotplug failures.
      
      This converts the cpu notifier to return encapsulate errno value
      for the lockup_detector as well.
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: peterz@infradead.org
      Cc: gorcunov@gmail.com
      Cc: fweisbec@gmail.com
      LKML-Reference: <1283310009-22168-3-git-send-email-dzickus@redhat.com>
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      eac24335
    • S
      tracing/lockdep: Fix dependency of TRACE_IRQFLAGS · 46b93b74
      Steven Rostedt 提交于
      When CONFIG_IRQSOFF_TRACER is set and CONFIG_PROVE_LOCKING is not, we
      get the following error:
      
      $  make oldconfig
      scripts/kconfig/conf --oldconfig arch/x86/Kconfig
      warning: (IRQSOFF_TRACER && TRACING_SUPPORT && FTRACE && TRACE_IRQFLAGS_SUPPORT && !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && PROVE_LOCKING)
      warning: (IRQSOFF_TRACER && TRACING_SUPPORT && FTRACE && TRACE_IRQFLAGS_SUPPORT && !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && PROVE_LOCKING)
      
      This is because IRQSOFF_TRACER selects TRACE_IRQFLAGS but TRACE_IRQFLAGS
      has PROVE_LOCKING as a dependency. This code is incorrect, and
      this patch changes the TRACE_IRQFLAGS to be just a simple bool that
      does not depend or select anything. Instead both IRQSOFF_TRACER and
      PROVE_LOCKING select it.
      Reported-by: NRichard Kennedy <richard@rsk.demon.co.uk>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      46b93b74
  4. 30 8月, 2010 1 次提交
  5. 27 8月, 2010 2 次提交
    • F
      Merge branch 'perf/urgent' into perf/core · 98ee74a7
      Frederic Weisbecker 提交于
      Conflicts:
      	tools/perf/util/callchain.h
      
      Merge reason:
      	Fix a non-trivial conflict with latest fixes
      98ee74a7
    • F
      perf: Initialize callchains roots's childen hits · 5225c458
      Frederic Weisbecker 提交于
      Each histogram entry has a callchain root that stores the
      callchain samples. However we forgot to initialize the
      tracking of children hits of these roots, which then got
      random values on their creation.
      
      The root children hits is multiplied by the minimum percentage
      of hits provided by the user, and the result becomes the minimum
      hits expected from children branches. If the random value due
      to the uninitialization is big enough, then this minimum number
      of hits can be huge and eventually filter every children branches.
      
      The end result was invisible callchains. All we need to
      fix this is to initialize the children hits of the root.
      Reported-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: 2.6.32.x-2.6.35.y <stable@kernel.org>
      5225c458
  6. 26 8月, 2010 6 次提交
  7. 25 8月, 2010 13 次提交
  8. 24 8月, 2010 9 次提交
    • M
      [S390] fix tlb flushing vs. concurrent /proc accesses · 050eef36
      Martin Schwidefsky 提交于
      The tlb flushing code uses the mm_users field of the mm_struct to
      decide if each page table entry needs to be flushed individually with
      IPTE or if a global flush for the mm_struct is sufficient after all page
      table updates have been done. The comment for mm_users says "How many
      users with user space?" but the /proc code increases mm_users after it
      found the process structure by pid without creating a new user process.
      Which makes mm_users useless for the decision between the two tlb
      flusing methods. The current code can be confused to not flush tlb
      entries by a concurrent access to /proc files if e.g. a fork is in
      progres. The solution for this problem is to make the tlb flushing
      logic independent from the mm_users field.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      050eef36
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · bd45fe53
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (25 commits)
        powerpc: Fix config dependency problem with MPIC_U3_HT_IRQS
        via-pmu: Add compat_pmu_ioctl
        powerpc: Wire up fanotify_init, fanotify_mark, prlimit64 syscalls
        powerpc/pci: Fix checking for child bridges in PCI code.
        powerpc: Fix typo in uImage target
        powerpc: Initialise paca->kstack before early_setup_secondary
        powerpc: Fix bogus it_blocksize in VIO iommu code
        powerpc: Inline ppc64_runlatch_off
        powerpc: Correct smt_enabled=X boot option for > 2 threads per core
        powerpc: Silence xics_migrate_irqs_away() during cpu offline
        powerpc: Silence __cpu_up() under normal operation
        powerpc: Re-enable preemption before cpu_die()
        powerpc/pci: Drop unnecessary null test
        powerpc/powermac: Drop unnecessary null test
        powerpc/powermac: Drop unnecessary of_node_put
        powerpc/kdump: Stop all other CPUs before running crash handlers
        powerpc/mm: Fix vsid_scrample typo
        powerpc: Use is_32bit_task() helper to test 32 bit binary
        powerpc: Export memstart_addr and kernstart_addr on ppc64
        powerpc: Make rwsem use "long" type
        ...
      bd45fe53
    • S
      [S390] s390: fix build error (sys_execve) · 7af048dc
      Sebastian Ott 提交于
      fix this build error:
      arch/s390/kernel/process.c:272: error: conflicting types for 'sys_execve'
      arch/s390/kernel/entry.h:45: error: previous declaration of 'sys_execve' was here
      make[1]: *** [arch/s390/kernel/process.o] Error 1
      make: *** [arch/s390/kernel] Error 2
      
      introduced by d7627467Signed-off-by: NSebastian Ott <sebott@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      7af048dc
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · e1f1f073
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
        Staging: sep: remove driver
        Staging: batman-adv: Don't write in not allocated packet_buff
        Staging: batman-adv: Don't use net_dev after dev_put
        Staging: batman-adv: Create batman_if only on register event
        Staging: batman-adv: fix own mac address detection
        Staging: batman-adv: always reply batman icmp packets with primary mac
        Staging: batman-adv: fix batman icmp originating from secondary interface
        Staging: batman-adv: unify orig_hash_lock spinlock handling to avoid deadlocks
        Staging: batman-adv: Fix merge of linus tree
        Staging: spectra: removes unused functions
        Staging: spectra: initializa lblk variable
        Staging: spectra: removes unused variable
        Staging: spectra: remove duplicate GLOB_VERSION definition
        Staging: spectra: don't use locked_ioctl, fix build
        Staging: use new REQ_FLUSH flag, fix build breakage
        Staging: spectra: removes q->prepare_flush_fn, fix build breakage
      e1f1f073
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 · 472e449c
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
        68328serial: check return value of copy_*_user() instead of access_ok()
        synclink: add mutex_unlock() on error path
        rocket: add a mutex_unlock()
        ip2: return -EFAULT on copy_to_user errors
        ip2: remove unneeded NULL check
        serial: print early console device address in hex
      472e449c
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 · 6d87f207
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
        kobject_uevent: fix typo in comments
        firmware_class: fix typo in error path
        kobject: Break the kobject namespace defs into their own header
      6d87f207
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · d20de763
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (29 commits)
        ARM: imx: fix build failure concerning otg/ulpi
        USB: ftdi_sio: add product ID for Lenz LI-USB
        USB: adutux: fix misuse of return value of copy_to_user()
        USB: iowarrior: fix misuse of return value of copy_to_user()
        USB: xHCI: update ring dequeue pointer when process missed tds
        USB: xhci: Remove buggy assignment in next_trb()
        USB: ftdi_sio: Add ID for Ionics PlugComputer
        USB: serial: io_ti.c: don't return 0 if writing the download record failed
        USB: otg: twl4030: fix wrong assumption of starting state
        USB: gadget: Return -ENOMEM on memory allocation failure
        USB: gadget: fix composite kernel-doc warnings
        USB: ssu100: set tty_flags in ssu100_process_packet
        USB: ssu100: add disconnect function for ssu100
        USB: serial: export symbol usb_serial_generic_disconnect
        USB: ssu100: rework logic for TIOCMIWAIT
        USB: ssu100: add register parameter to ssu100_setregister
        USB: ssu100: remove duplicate #defines in ssu100
        USB: ssu100: refine process_packet in ssu100
        USB: ssu100: add locking for port private data in ssu100
        USB: r8a66597-udc: return -ENOMEM if kzalloc() fails
        ...
      d20de763
    • D
      sparc64: Get rid of indirect p1275 PROM call buffer. · 25edd694
      David S. Miller 提交于
      This is based upon a report by Meelis Roos showing that it's possible
      that we'll try to fetch a property that is 32K in size with some
      devices.  With the current fixed 3K buffer we use for moving data in
      and out of the firmware during PROM calls, that simply won't work.
      
      In fact, it will scramble random kernel data during bootup.
      
      The reasoning behind the temporary buffer is entirely historical.  It
      used to be the case that we had problems referencing dynamic kernel
      memory (including the stack) early in the boot process before we
      explicitly told the firwmare to switch us over to the kernel trap
      table.
      
      So what we did was always give the firmware buffers that were locked
      into the main kernel image.
      
      But we no longer have problems like that, so get rid of all of this
      indirect bounce buffering.
      
      Besides fixing Meelis's bug, this also makes the kernel data about 3K
      smaller.
      
      It was also discovered during these conversions that the
      implementation of prom_retain() was completely wrong, so that was
      fixed here as well.  Currently that interface is not in use.
      Reported-by: NMeelis Roos <mroos@linux.ee>
      Tested-by: NMeelis Roos <mroos@linux.ee>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      25edd694
    • A
      powerpc: Fix config dependency problem with MPIC_U3_HT_IRQS · 314b389b
      Andreas Schwab 提交于
      MPIC_U3_HT_IRQS is selected both by PPC_PMAC64 and PPC_MAPLE, but depends
      on PPC_MAPLE, so a PPC_PMAC64-only config gets this warning:
      
      warning: (PPC_PMAC64 && PPC_PMAC && POWER4 || PPC_MAPLE && PPC64 && PPC_BOOK3S) selects MPIC_U3_HT_IRQS which has unmet direct dependencies (PPC_MAPLE)
      
      Fix that by removing the dependency on PPC_MAPLE.
      Signed-off-by: NAndreas Schwab <schwab@linux-m68k.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      314b389b