10 Sep, 2010

15 commits

  • asm-generic/hardirq.h needs asm/irq.h which might include
    linux/interrupt.h as in the sparc 32 case. At this point
    we need irq_cpustat generic definitions, but those are
    included later in asm-generic/hardirq.h.

    Then delay a bit the inclusion of irq.h from
    asm-generic/hardirq.h, it doesn't need to be included early.

    This fixes:

    include/linux/interrupt.h: In function '__raise_softirq_irqoff':
    include/linux/interrupt.h:414: error: implicit declaration of function 'local_softirq_pending'
    include/linux/interrupt.h:414: error: lvalue required as left operand of assignment

    Reported-by: Ingo Molnar
    Signed-off-by: Frederic Weisbecker
    Cc: Lai Jiangshan
    Cc: Koki Sanagi
    Cc: mathieu.desnoyers@efficios.com
    Cc: rostedt@goodmis.org
    Cc: nhorman@tuxdriver.com
    Cc: scott.a.mcmillan@intel.com
    Cc: eric.dumazet@gmail.com
    Cc: kaneshige.kenji@jp.fujitsu.com
    Cc: davem@davemloft.net
    Cc: izumi.taku@jp.fujitsu.com
    Cc: kosaki.motohiro@jp.fujitsu.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • I missed a perf_event_ctxp user when converting it to an array. Pull this
    last user into perf_event.c as well and fix it up.

    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Since software events are always schedulable, mixing them up with
    hardware events (who are not) can lead to funny scheduling oddities.

    Giving them their own context solves this.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Frederic Weisbecker
    Cc: Lin Ming
    Cc: Yanmin
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Provide the infrastructure for multiple task contexts.

    A more flexible approach would have resulted in more pointer chases
    in the scheduling hot-paths. This approach has the limitation of a
    static number of task contexts.

    Since I expect most external PMUs to be system wide, or at least node
    wide (as per the intel uncore unit) they won't actually need a task
    context.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Frederic Weisbecker
    Cc: Lin Ming
    Cc: Yanmin
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Allocate per-cpu contexts per pmu.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Frederic Weisbecker
    Cc: Lin Ming
    Cc: Yanmin
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Give each cpu-context its own timer so that it is a self contained
    entity, this eases the way for per-pmu-per-cpu contexts as well as
    provides the basic infrastructure to allow different rotation
    times per pmu.

    Things to look at:
    - folding the tick and these TICK_NSEC timers
    - separate task context rotation

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Frederic Weisbecker
    Cc: Lin Ming
    Cc: Yanmin
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Separate the swevent hash-table from the cpu_context bits in
    preparation for per pmu cpu contexts.

    This keeps the swevent hash a global entity.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Frederic Weisbecker
    Cc: Lin Ming
    Cc: Yanmin
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Neither the overcommit nor the reservation sysfs parameter were
    actually working, remove them as they'll only get in the way.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Replace pmu::{enable,disable,start,stop,unthrottle} with
    pmu::{add,del,start,stop}, all of which take a flags argument.

    The new interface extends the capability to stop a counter while
    keeping it scheduled on the PMU. We replace the throttled state with
    the generic stopped state.

    This also allows us to efficiently stop/start counters over certain
    code paths (like IRQ handlers).

    It also allows scheduling a counter without it starting, allowing for
    a generic frozen state (useful for rotating stopped counters).

    The stopped state is implemented in two different ways, depending on
    how the architecture implemented the throttled state:

    1) We disable the counter:
    a) the pmu has per-counter enable bits, we flip that
    b) we program a NOP event, preserving the counter state

    2) We store the counter state and ignore all read/overflow events

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Will Deacon
    Cc: Paul Mundt
    Cc: Frederic Weisbecker
    Cc: Cyrill Gorcunov
    Cc: Lin Ming
    Cc: Yanmin
    Cc: Deng-Cheng Zhu
    Cc: David Miller
    Cc: Michael Cree
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Use hw_perf_event::period_left instead of hw_perf_event::remaining
    and win back 8 bytes.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Provide default implementations for the pmu txn methods, this
    allows us to remove some conditional code.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Will Deacon
    Cc: Paul Mundt
    Cc: Frederic Weisbecker
    Cc: Cyrill Gorcunov
    Cc: Lin Ming
    Cc: Yanmin
    Cc: Deng-Cheng Zhu
    Cc: David Miller
    Cc: Michael Cree
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Changes perf_disable() into perf_pmu_disable().

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Will Deacon
    Cc: Paul Mundt
    Cc: Frederic Weisbecker
    Cc: Cyrill Gorcunov
    Cc: Lin Ming
    Cc: Yanmin
    Cc: Deng-Cheng Zhu
    Cc: David Miller
    Cc: Michael Cree
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Since the current perf_disable() usage is only an optimization,
    remove it for now. This eases the removal of the __weak
    hw_perf_enable() interface.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Will Deacon
    Cc: Paul Mundt
    Cc: Frederic Weisbecker
    Cc: Cyrill Gorcunov
    Cc: Lin Ming
    Cc: Yanmin
    Cc: Deng-Cheng Zhu
    Cc: David Miller
    Cc: Michael Cree
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Simple registration interface for struct pmu, this provides the
    infrastructure for removing all the weak functions.

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Will Deacon
    Cc: Paul Mundt
    Cc: Frederic Weisbecker
    Cc: Cyrill Gorcunov
    Cc: Lin Ming
    Cc: Yanmin
    Cc: Deng-Cheng Zhu
    Cc: David Miller
    Cc: Michael Cree
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • sed -ie 's/const struct pmu\>/struct pmu/g' `git grep -l "const struct pmu\>"`

    Signed-off-by: Peter Zijlstra
    Cc: paulus
    Cc: stephane eranian
    Cc: Robert Richter
    Cc: Will Deacon
    Cc: Paul Mundt
    Cc: Frederic Weisbecker
    Cc: Cyrill Gorcunov
    Cc: Lin Ming
    Cc: Yanmin
    Cc: Deng-Cheng Zhu
    Cc: David Miller
    Cc: Michael Cree
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

07 Sep, 2010

4 commits

  • 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: Koki Sanagi
    Acked-by: David S. Miller
    Acked-by: Neil Horman
    Cc: Mathieu Desnoyers
    Cc: Kaneshige Kenji
    Cc: Izumo Taku
    Cc: Kosaki Motohiro
    Cc: Lai Jiangshan
    Cc: Scott Mcmillan
    Cc: Steven Rostedt
    Cc: Eric Dumazet
    LKML-Reference:
    Signed-off-by: Frederic Weisbecker

    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.

    -0 [001] 112447.902030: netif_rx: dev=eth1 skbaddr=f3ef0900 len=84
    -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: Koki Sanagi
    Acked-by: David S. Miller
    Acked-by: Neil Horman
    Cc: Mathieu Desnoyers
    Cc: Kaneshige Kenji
    Cc: Izumo Taku
    Cc: Kosaki Motohiro
    Cc: Lai Jiangshan
    Cc: Scott Mcmillan
    Cc: Steven Rostedt
    Cc: Eric Dumazet
    LKML-Reference:
    Signed-off-by: Frederic Weisbecker

    Koki Sanagi
     
  • This patch converts trace_napi_poll from DECLARE_EVENT to TRACE_EVENT
    to improve the usability of napi_poll tracepoint.

    -0 [001] 241302.750777: napi_poll: napi poll on napi struct f6acc480 for device eth3
    -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: Neil Horman
    Acked-by: David S. Miller
    Acked-by: Neil Horman
    Cc: Mathieu Desnoyers
    Cc: Kaneshige Kenji
    Cc: Izumo Taku
    Cc: Kosaki Motohiro
    Cc: Lai Jiangshan
    Cc: Scott Mcmillan
    Cc: Steven Rostedt
    Cc: Eric Dumazet
    LKML-Reference:
    Signed-off-by: Koki Sanagi
    Signed-off-by: Frederic Weisbecker

    Neil Horman
     
  • 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: Lai Jiangshan
    Acked-by: Mathieu Desnoyers
    Acked-by: Neil Horman
    Cc: David Miller
    Cc: Kaneshige Kenji
    Cc: Izumo Taku
    Cc: Kosaki Motohiro
    Cc: Lai Jiangshan
    Cc: Scott Mcmillan
    Cc: Steven Rostedt
    Cc: Eric Dumazet
    LKML-Reference:
    [ factorize softirq events with DECLARE_EVENT_CLASS ]
    Signed-off-by: Koki Sanagi
    Signed-off-by: Frederic Weisbecker

    Lai Jiangshan
     

25 Aug, 2010

3 commits


24 Aug, 2010

7 commits

  • * 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

    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
    ...

    Linus Torvalds
     
  • Warning(include/linux/usb/composite.h:284): No description found for parameter 'disconnect'
    Warning(drivers/usb/gadget/composite.c:744): No description found for parameter 'c'
    Warning(drivers/usb/gadget/composite.c:744): Excess function parameter 'cdev' description in 'usb_string_ids_n'

    Signed-off-by: Randy Dunlap
    Cc: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
    netfilter: fix CONFIG_COMPAT support
    isdn/avm: fix build when PCMCIA is not enabled
    header: fix broken headers for user space
    e1000e: don't check for alternate MAC addr on parts that don't support it
    e1000e: disable ASPM L1 on 82573
    ll_temac: Fix poll implementation
    netxen: fix a race in netxen_nic_get_stats()
    qlnic: fix a race in qlcnic_get_stats()
    irda: fix a race in irlan_eth_xmit()
    net: sh_eth: remove unused variable
    netxen: update version 4.0.74
    netxen: fix inconsistent lock state
    vlan: Match underlying dev carrier on vlan add
    ibmveth: Fix opps during MTU change on an active device
    ehea: Fix synchronization between HW and SW send queue
    bnx2x: Update bnx2x version to 1.52.53-4
    bnx2x: Fix PHY locking problem
    rds: fix a leak of kernel memory
    netlink: fix compat recvmsg
    netfilter: fix userspace header warning
    ...

    Linus Torvalds
     
  • * 'for-upstream/pvhvm' of git://xenbits.xensource.com/people/ianc/linux-2.6:
    xen: pvhvm: make it clearer that XEN_UNPLUG_* define bits in a bitfield
    xen: pvhvm: rename xen_emul_unplug=ignore to =unnnecessary
    xen: pvhvm: allow user to request no emulated device unplug

    Linus Torvalds
     
  • * 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (33 commits)
    drm/radeon/kms: fix typo in radeon_compute_pll_gain
    drm/radeon/kms: try to detect tv vs monitor for underscan
    drm/radeon/kms: fix sideport detection on newer rs880 boards
    drm/radeon: fix passing wrong type to gem object create.
    drm/radeon/kms: set encoder type to DVI for HDMI on evergreen
    drm/radeon/kms: add back missing break in info ioctl
    drm/radeon/kms: don't enable MSIs on AGP boards
    drm/radeon/kms: fix agp mode setup on cards that use pcie bridges
    drm: move dereference below check
    drm: fix end of loop test
    drm/radeon/kms: rework radeon_dp_detect() logic
    drm/radeon/kms: add missing asic callback assignment for evergreen
    drm/radeon/kms/DCE3+: switch pads to ddc mode when going i2c
    drm/radeon/kms/pm: bail early if nothing's changing
    drm/radeon/kms/atom: clean up dig atom handling
    drm/radeon/kms: DCE3/4 transmitter fixes
    drm/radeon/kms: rework encoder handling
    drm/radeon/kms: DCE3/4 AdjustPixelPll updates
    drm/radeon: Fix stack data leak
    drm/radeon/kms: fix GTT/VRAM overlapping test
    ...

    Linus Torvalds
     
  • Break the kobject namespace defs into their own header to avoid a header file
    inclusion ordering problem between linux/sysfs.h and linux/kobject.h.

    This fixes the build breakage on older versions of gcc.

    Signed-off-by: David Howells
    Cc: Eric Biederman
    Signed-off-by: Greg Kroah-Hartman

    David Howells
     

23 Aug, 2010

5 commits


22 Aug, 2010

1 commit

  • With the introduction of the new unified work queue thread pools,
    we lost one feature: It's no longer possible to know which worker
    is causing the CPU to wake out of idle. The result is that PowerTOP
    now reports a lot of "kworker/a:b" instead of more readable results.

    This patch adds a pair of tracepoints to the new workqueue code,
    similar in style to the timer/hrtimer tracepoints.

    With this pair of tracepoints, the next PowerTOP can correctly
    report which work item caused the wakeup (and how long it took):

    Interrupt (43) i915 time 3.51ms wakeups 141
    Work ieee80211_iface_work time 0.81ms wakeups 29
    Work do_dbs_timer time 0.55ms wakeups 24
    Process Xorg time 21.36ms wakeups 4
    Timer sched_rt_period_timer time 0.01ms wakeups 1

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     

21 Aug, 2010

2 commits

  • It's a really simple list, and several of the users want to go backwards
    in it to find the previous vma. So rather than have to look up the
    previous entry with 'find_vma_prev()' or something similar, just make it
    doubly linked instead.

    Tested-by: Ian Campbell
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • kfifo_skip() is currently broken, due to the missing of the internal
    helper function. Add it.

    Signed-off-by: Andrea Righi
    Cc: Greg KH
    Acked-by: Stefani Seibold
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Righi
     

19 Aug, 2010

3 commits

  • PowerTOP would like to be able to trace timers.

    Unfortunately, the current timer tracing is not very useful: the
    actual timer function is not recorded in the trace at the start
    of timer execution.

    Although this is recorded for timer "start" time (when it gets
    armed), this is not useful; most timers get started early, and a
    tracer like PowerTOP will never see this event, but will only
    see the actual running of the timer.

    This patch just adds the function to the timer tracing; I've
    verified with PowerTOP that now it can get useful information
    about timers.

    Signed-off-by: Arjan van de Ven
    Cc: xiaoguangrong@cn.fujitsu.com
    Cc: Steven Rostedt
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: # .35.x, .34.x, .33.x
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Arjan van de Ven
     
  • …rostedt/linux-2.6-trace into perf/core

    Ingo Molnar
     
  • "make headers_check" issued the following warning:

    CHECK include/linux/netfilter (64 files)
    usr/include/linux/netfilter/xt_ipvs.h:19: found __[us]{8,16,32,64} type without #include

    Fix this by as suggested including linux/types.h.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg