1. 08 May, 2009 1 commit
  2. 06 May, 2009 2 commits
  3. 05 May, 2009 1 commit
    • Steven Rostedt's avatar
      ring-buffer: add counters for commit overrun and nmi dropped entries · f0d2c681
      Steven Rostedt authored
      
      
      The WARN_ON in the ring buffer when a commit is preempted and the
      buffer is filled by preceding writes can happen in normal operations.
      The WARN_ON makes it look like a bug, not to mention, because
      it does not stop tracing and calls printk which can also recurse, this
      is prone to deadlock (the WARN_ON is not in a position to recurse).
      
      This patch removes the WARN_ON and replaces it with a counter that
      can be retrieved by a tracer. This counter is called commit_overrun.
      
      While at it, I added a nmi_dropped counter to count any time an NMI entry
      is dropped because the NMI could not take the spinlock.
      
      [ Impact: prevent deadlock by printing normal case warning ]
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      f0d2c681
  4. 04 May, 2009 1 commit
    • Omar Laazimani's avatar
      usbnet: CDC EEM support (v5) · 9f722c09
      Omar Laazimani authored
      
      
      This introduces a CDC Ethernet Emulation Model (EEM) host side
      driver to support USB EEM devices.
      
      EEM is different from the Ethernet Control Model (ECM) currently
      supported by the "CDC Ethernet" driver.  One key difference is
      that it doesn't require of USB interface alternate settings to
      manage interface state; some maldesigned hardware can't handle
      that part of USB.  It also avoids a separate USB interface for
      control and status updates.
      
      [ dbrownell@users.sourceforge.net: fix skb leaks, add rx packet
      checks, improve fault handling, EEM conformance updates, cleanup ]
      Signed-off-by: default avatarOmar Laazimani <omar.oberthur@gmail.com>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9f722c09
  5. 02 May, 2009 5 commits
  6. 01 May, 2009 2 commits
  7. 30 Apr, 2009 1 commit
  8. 29 Apr, 2009 4 commits
    • Tom Zanussi's avatar
      tracing/filters: a better event parser · 8b372562
      Tom Zanussi authored
      
      
      Replace the current event parser hack with a better one.  Filters are
      no longer specified predicate by predicate, but all at once and can
      use parens and any of the following operators:
      
      numeric fields:
      
      ==, !=, <, <=, >, >=
      
      string fields:
      
      ==, !=
      
      predicates can be combined with the logical operators:
      
      &&, ||
      
      examples:
      
      "common_preempt_count > 4" > filter
      
      "((sig >= 10 && sig < 15) || sig == 17) && comm != bash" > filter
      
      If there was an error, the erroneous string along with an error
      message can be seen by looking at the filter e.g.:
      
      ((sig >= 10 && sig < 15) || dsig == 17) && comm != bash
      ^
      parse_error: Field not found
      
      Currently the caret for an error always appears at the beginning of
      the filter; a real position should be used, but the error message
      should be useful even without it.
      
      To clear a filter, '0' can be written to the filter file.
      
      Filters can also be set or cleared for a complete subsystem by writing
      the same filter as would be written to an individual event to the
      filter file at the root of the subsytem.  Note however, that if any
      event in the subsystem lacks a field specified in the filter being
      set, the set will fail and all filters in the subsytem are
      automatically cleared.  This change from the previous version was made
      because using only the fields that happen to exist for a given event
      would most likely result in a meaningless filter.
      
      Because the logical operators are now implemented as predicates, the
      maximum number of predicates in a filter was increased from 8 to 16.
      
      [ Impact: add new, extended trace-filter implementation ]
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: fweisbec@gmail.com
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      LKML-Reference: <1240905899.6416.121.camel@tropicana>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8b372562
    • Tom Zanussi's avatar
      tracing/filters: distinguish between signed and unsigned fields · a118e4d1
      Tom Zanussi authored
      
      
      The new filter comparison ops need to be able to distinguish between
      signed and unsigned field types, so add an is_signed flag/param to the
      event field struct/trace_define_fields().  Also define a simple macro,
      is_signed_type() to determine the signedness at compile time, used in the
      trace macros.  If the is_signed_type() macro won't work with a specific
      type, a new slightly modified version of TRACE_FIELD() called
      TRACE_FIELD_SIGN(), allows the signedness to be set explicitly.
      
      [ Impact: extend trace-filter code for new feature ]
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: fweisbec@gmail.com
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      LKML-Reference: <1240905893.6416.120.camel@tropicana>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a118e4d1
    • Tom Zanussi's avatar
      tracing/filters: move preds into event_filter object · 30e673b2
      Tom Zanussi authored
      
      
      Create a new event_filter object, and move the pred-related members
      out of the call and subsystem objects and into the filter object - the
      details of the filter implementation don't need to be exposed in the
      call and subsystem in any case, and it will also help make the new
      parser implementation a little cleaner.
      
      [ Impact: refactor trace-filter code to prepare for new features ]
      Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: fweisbec@gmail.com
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      LKML-Reference: <1240905887.6416.119.camel@tropicana>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      30e673b2
    • Stuart Bennett's avatar
      tracing: x86, mmiotrace: only register for die notifier when tracer active · 0f9a623d
      Stuart Bennett authored
      Follow up to afcfe024
      
       in Linus' tree
      ("x86: mmiotrace: quieten spurious warning message")
      Signed-off-by: default avatarStuart Bennett <stuart@freedesktop.org>
      Acked-by: default avatarPekka Paalanen <pq@iki.fi>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1240946271-7083-5-git-send-email-stuart@freedesktop.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      0f9a623d
  9. 28 Apr, 2009 5 commits
    • Stephen Hemminger's avatar
      netfilter: revised locking for x_tables · 942e4a2b
      Stephen Hemminger authored
      
      
      The x_tables are organized with a table structure and a per-cpu copies
      of the counters and rules. On older kernels there was a reader/writer 
      lock per table which was a performance bottleneck. In 2.6.30-rc, this
      was converted to use RCU and the counters/rules which solved the performance
      problems for do_table but made replacing rules much slower because of
      the necessary RCU grace period.
      
      This version uses a per-cpu set of spinlocks and counters to allow to
      table processing to proceed without the cache thrashing of a global
      reader lock and keeps the same performance for table updates.
      Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      942e4a2b
    • Randy Dunlap's avatar
      regulator: fix header file missing kernel-doc · 9f653251
      Randy Dunlap authored
      
      
      Add regulator header file missing kernel-doc:
      
      Warning(include/linux/regulator/driver.h:117): No description found for parameter 'set_mode'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      cc:	Liam Girdwood <lrg@slimlogic.co.uk>
      cc:	Mark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
      9f653251
    • Henrik Rydberg's avatar
      Input: add detailed multi-touch finger data report protocol · 5e5ee686
      Henrik Rydberg authored
      
      
      In order to utilize the full power of the new multi-touch devices, a
      way to report detailed finger data to user space is needed. This patch
      adds a multi-touch (MT) protocol which allows drivers to report details
      for an arbitrary number of fingers.
      
      The driver sends a SYN_MT_REPORT event via the input_mt_sync() function
      when a complete finger has been reported.
      
      In order to stay compatible with existing applications, the data
      reported in a finger packet must not be recognized as single-touch
      events. In addition, all finger data must bypass input filtering,
      since subsequent events of the same type refer to different fingers.
      
      A set of ABS_MT events with the desired properties are defined. The
      events are divided into categories, to allow for partial implementation.
      The minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and
      ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked.
      If the device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide
      the size of the approaching finger. Anisotropy and direction may be
      specified with ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and
      ABS_MT_ORIENTATION. Devices with more granular information may specify
      general shapes as blobs, i.e., as a sequence of rectangular shapes
      grouped together by a ABS_MT_BLOB_ID. Finally, the ABS_MT_TOOL_TYPE
      may be used to specify whether the touching tool is a finger or a pen.
      Signed-off-by: default avatarHenrik Rydberg <rydberg@euromail.se>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      5e5ee686
    • Henrik Rydberg's avatar
      Input: bcm5974 - add quad-finger tapping · 6916d97f
      Henrik Rydberg authored
      
      
      The integrated button on the new unibody Macbooks presents a need to
      report explicit four-finger actions. Evidently, the finger pressing
      the button is also touching the trackpad, so in order to fully support
      three-finger actions, the driver must be able to report four-finger
      actions. This patch adds a new button, BTN_TOOL_QUADTAP, which
      achieves this.
      Signed-off-by: default avatarHenrik Rydberg <rydberg@euromail.se>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      6916d97f
    • Eric Dumazet's avatar
      net: Avoid extra wakeups of threads blocked in wait_for_packet() · bf368e4e
      Eric Dumazet authored
      In 2.6.25 we added UDP mem accounting.
      
      This unfortunatly added a penalty when a frame is transmitted, since
      we have at TX completion time to call sock_wfree() to perform necessary
      memory accounting. This calls sock_def_write_space() and utimately
      scheduler if any thread is waiting on the socket.
      Thread(s) waiting for an incoming frame was scheduled, then had to sleep
      again as event was meaningless.
      
      (All threads waiting on a socket are using same sk_sleep anchor)
      
      This adds lot of extra wakeups and increases latencies, as noted
      by Christoph Lameter, and slows down softirq handler.
      
      Reference : http://marc.info/?l=linux-netdev&m=124060437012283&w=2 
      
      Fortunatly, Davide Libenzi recently added concept of keyed wakeups
      into kernel, and particularly for sockets (see commit
      37e5540b
      
       
      epoll keyed wakeups: make sockets use keyed wakeups)
      
      Davide goal was to optimize epoll, but this new wakeup infrastructure
      can help non epoll users as well, if they care to setup an appropriate
      handler.
      
      This patch introduces new DEFINE_WAIT_FUNC() helper and uses it
      in wait_for_packet(), so that only relevant event can wakeup a thread
      blocked in this function.
      
      Trace of function calls from bnx2 TX completion bnx2_poll_work() is :
      __kfree_skb()
       skb_release_head_state()
        sock_wfree()
         sock_def_write_space()
          __wake_up_sync_key()
           __wake_up_common()
            receiver_wake_function() : Stops here since thread is waiting for an INPUT
      Reported-by: default avatarChristoph Lameter <cl@linux.com>
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf368e4e
  10. 27 Apr, 2009 3 commits
  11. 26 Apr, 2009 1 commit
    • Tim Abbott's avatar
      Add new HEAD_TEXT_SECTION macro. · c80d471a
      Tim Abbott authored
      
      
      This patch is preparation for replacing all uses of ".head.text" or
      ".text.head" in the kernel with macros, so that the section name can
      later be changed without having to touch a lot of the kernel.
      
      Since some linker scripts do more complex things than referencing
      HEAD_TEXT, we add a HEAD_TEXT_SECTION macro that just contains the
      actual name.
      
      I've defined HEAD_TEXT_SECTION in a new header,
      include/linux/section-names.h, so that this section name only needs to
      appear in one place.  I anticipate creating similar macro structures
      for a number of other section names.
      
      The long-term goal here is to be able to change the kernel's magic
      section names to those that are compatible with -ffunction-sections
      -fdata-sections.  This requires renaming all magic sections with names
      of the form ".text.foo".
      Signed-off-by: default avatarTim Abbott <tabbott@mit.edu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c80d471a
  12. 24 Apr, 2009 6 commits
  13. 23 Apr, 2009 4 commits
  14. 22 Apr, 2009 4 commits
    • Yu Zhao's avatar
      PCI: only save/restore existent registers in the PCIe capability · 1b6b8ce2
      Yu Zhao authored
      
      
      PCIe 1.1 base neither requires the endpoint to implement the entire
      PCIe capability structure nor specifies default values of registers
      that are not implemented by the device. So we only save and restore
      registers that must be implemented by different device types if the
      device PCIe capability version is 1.
      
      PCIe 1.1 Capability Structure Expansion ECN and PCIe 2.0 requires
      all registers in the PCIe capability to be either implemented or
      hardwired to 0. Their PCIe capability version is 2.
      Signed-off-by: default avatarYu Zhao <yu.zhao@intel.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      1b6b8ce2
    • Jan Kiszka's avatar
      KVM: Fix overlapping check for memory slots · 4cd481f6
      Jan Kiszka authored
      
      
      When checking for overlapping slots on registration of a new one, kvm
      currently also considers zero-length (ie. deleted) slots and rejects
      requests incorrectly. This finally denies user space from joining slots.
      Fix the check by skipping deleted slots and advertise this via a
      KVM_CAP_JOIN_MEMORY_REGIONS_WORKS.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      4cd481f6
    • Li Zefan's avatar
      tracing/events: make struct trace_entry->type to be int type · 7a4f453b
      Li Zefan authored
      
      
      struct trace_entry->type is unsigned char, while trace event's id is
      int type, thus for a event with id >= 256, it's entry->type is cast
      to (id % 256), and then we can't see the trace output of this event.
      
       # insmod trace-events-sample.ko
       # echo foo_bar > /mnt/tracing/set_event
       # cat /debug/tracing/events/trace-events-sample/foo_bar/id
       256
       # cat /mnt/tracing/trace_pipe
                 <...>-3548  [001]   215.091142: Unknown type 0
                 <...>-3548  [001]   216.089207: Unknown type 0
                 <...>-3548  [001]   217.087271: Unknown type 0
                 <...>-3548  [001]   218.085332: Unknown type 0
      
      [ Impact: fix output for trace events with id >= 256 ]
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      LKML-Reference: <49EEDB0E.5070207@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7a4f453b
    • Tejun Heo's avatar
      block: include empty disks in /proc/diskstats · 71982a40
      Tejun Heo authored
      /proc/diskstats used to show stats for all disks whether they're
      zero-sized or not and their non-zero partitions.  Commit
      074a7aca
      
       accidentally changed the
      behavior such that it doesn't print out zero sized disks.  This patch
      implements DISK_PITER_INCL_EMPTY_PART0 flag to partition iterator and
      uses it in diskstats_show() such that empty part0 is shown in
      /proc/diskstats.
      
      Reported and bisectd by Dianel Collins.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarDaniel Collins <solemnwarning@solemnwarning.no-ip.org>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      71982a40