1. 25 5月, 2010 1 次提交
  2. 21 5月, 2010 4 次提交
    • J
      echi-dbgp: Add kernel debugger support for the usb debug port · 4fe1da4e
      Jason Wessel 提交于
      This patch adds the capability to use the usb debug port with the
      kernel debugger.  It is also still possible to use this functionality
      with or without the earlyprintk=dbgpX.  It is possible to use the
      kgdbwait boot argument to debug very early in the kernel start up code.
      
      There are two ways to use this driver extension with a kernel boot argument.
      
      1) kgdbdbgp=#   -- Where # is the number of the usb debug controller
      
         You must use sysrq-g to break into the kernel debugger on another
         connection type other than the dbgp.
      
      2) kgdbdbgp=#debugControlNum#,#Seconds#
      
         In this mode, the usb debug port is polled every #Seconds# for
         character input.  It is possible to use gdb or press control-c to
         break into the kernel debugger.
      
      From the implementation perspective there are 3 high level changes.
      
      1) Allow variable retries for the the hardware via dbgp_bulk_read().
      
         The amount of retries for the dbgp_bulk_read() needed to be
         variable instead of fixed.  We do not want to poll at all when the
         kernel is operating in interrupt driven mode.  The polling only
         occurs if the kernel was booted when specifying some number of
         seconds via the kgdbdbgp boot argument (IE kgdbdbgp=0,1).  In this
         case the loop count is reduced to 1 so as introduce the smallest
         amount of latency as possible.
      
      2) Save the bulk IN endpoint address for use by the kgdb code.
      
      3) The addition of the kgdb interface code.
      
         This consisted of adding in a character read function for the dbgp
         as well as a polling thread to allow the dbgp to interrupt the
         kernel execution.  The rest is the typical kgdb I/O api.
      
      CC: Eric Biederman <ebiederm@xmission.com>
      CC: Yinghai Lu <yhlu.kernel@gmail.com>
      CC: linux-usb@vger.kernel.org
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4fe1da4e
    • J
      kgdboc: Add ekgdboc for early use of the kernel debugger · 9731191f
      Jason Wessel 提交于
      The ekgdboc= differs from kgdboc= in that you can begin debuggin as
      soon as the exceptions are setup and the kgdb I/O driver is available,
      instead of waiting until the tty subsystem is available.
      
      CC: kgdb-bugreport@lists.sourceforge.net
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      9731191f
    • J
      kgdb,docs: Update the kgdb docs to include kdb · 84c08fd6
      Jason Wessel 提交于
      Update the kgdb docs to reflect the new directory structure and API.
      
      Merge in the kdb shell information.
      
      [Randy Dunlap <rdunlap@xenotime.net>: grammatical corrections]
      
      CC: Randy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      84c08fd6
    • J
      kgdboc,keyboard: Keyboard driver for kdb with kgdb · ada64e4c
      Jason Wessel 提交于
      This patch adds in the kdb PS/2 keyboard driver.  This was mostly a
      direct port from the original kdb where I cleaned up the code against
      checkpatch.pl and added the glue to stitch it into kgdb.
      
      This patch also enables early kdb debug via kgdbwait and the keyboard.
      
      All the access to configure kdb using either a serial console or the
      keyboard is done via kgdboc.
      
      If you want to use only the keyboard and want to break in early you
      would add to your kernel command arguments:
      
          kgdboc=kbd kgdbwait
      
      If you wanted serial and or the keyboard access you could use:
      
          kgdboc=kbd,ttyS0
      
      You can also configure kgdboc as a kernel module or at run time with
      the sysfs where you can activate and deactivate kgdb.
      
      Turn it on:
          echo kbd,ttyS0 > /sys/module/kgdboc/parameters/kgdboc
      
      Turn it off:
          echo "" > /sys/module/kgdboc/parameters/kgdboc
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Reviewed-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      ada64e4c
  3. 11 5月, 2010 1 次提交
  4. 23 4月, 2010 1 次提交
  5. 22 4月, 2010 1 次提交
    • F
      tracing: Dump either the oops's cpu source or all cpus buffers · cecbca96
      Frederic Weisbecker 提交于
      The ftrace_dump_on_oops kernel parameter, sysctl and sysrq let one
      dump every cpu buffers when an oops or panic happens.
      
      It's nice when you have few cpus but it may take ages if have many,
      plus you miss the real origin of the problem in all the cpu traces.
      
      Sometimes, all you need is to dump the cpu buffer that triggered the
      opps, most of the time it is our main interest.
      
      This patch modifies ftrace_dump_on_oops to handle this choice.
      
      The ftrace_dump_on_oops kernel parameter, when it comes alone, has
      the same behaviour than before. But ftrace_dump_on_oops=orig_cpu
      will only dump the buffer of the cpu that oops'ed.
      
      Similarly, sysctl kernel.ftrace_dump_on_oops=1 and
      echo 1 > /proc/sys/kernel/ftrace_dump_on_oops keep their previous
      behaviour. But setting 2 jumps into cpu origin dump mode.
      
      v2: Fix double setup
      v3: Fix spelling issues reported by Randy Dunlap
      v4: Also update __ftrace_dump in the selftests
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      cecbca96
  6. 20 4月, 2010 1 次提交
  7. 07 4月, 2010 1 次提交
  8. 26 3月, 2010 1 次提交
  9. 15 3月, 2010 1 次提交
  10. 25 2月, 2010 2 次提交
    • I
      x86, mm: Allow highmem user page tables to be disabled at boot time · 14315592
      Ian Campbell 提交于
      Distros generally (I looked at Debian, RHEL5 and SLES11) seem to
      enable CONFIG_HIGHPTE for any x86 configuration which has highmem
      enabled. This means that the overhead applies even to machines which
      have a fairly modest amount of high memory and which therefore do not
      really benefit from allocating PTEs in high memory but still pay the
      price of the additional mapping operations.
      
      Running kernbench on a 4G box I found that with CONFIG_HIGHPTE=y but
      no actual highptes being allocated there was a reduction in system
      time used from 59.737s to 55.9s.
      
      With CONFIG_HIGHPTE=y and highmem PTEs being allocated:
        Average Optimal load -j 4 Run (std deviation):
        Elapsed Time 175.396 (0.238914)
        User Time 515.983 (5.85019)
        System Time 59.737 (1.26727)
        Percent CPU 263.8 (71.6796)
        Context Switches 39989.7 (4672.64)
        Sleeps 42617.7 (246.307)
      
      With CONFIG_HIGHPTE=y but with no highmem PTEs being allocated:
        Average Optimal load -j 4 Run (std deviation):
        Elapsed Time 174.278 (0.831968)
        User Time 515.659 (6.07012)
        System Time 55.9 (1.07799)
        Percent CPU 263.8 (71.266)
        Context Switches 39929.6 (4485.13)
        Sleeps 42583.7 (373.039)
      
      This patch allows the user to control the allocation of PTEs in
      highmem from the command line ("userpte=nohigh") but retains the
      status-quo as the default.
      
      It is possible that some simple heuristic could be developed which
      allows auto-tuning of this option however I don't have a sufficiently
      large machine available to me to perform any particularly meaningful
      experiments. We could probably handwave up an argument for a threshold
      at 16G of total RAM.
      
      Assuming 768M of lowmem we have 196608 potential lowmem PTE
      pages. Each page can map 2M of RAM in a PAE-enabled configuration,
      meaning a maximum of 384G of RAM could potentially be mapped using
      lowmem PTEs.
      
      Even allowing generous factor of 10 to account for other required
      lowmem allocations, generous slop to account for page sharing (which
      reduces the total amount of RAM mappable by a given number of PT
      pages) and other innacuracies in the estimations it would seem that
      even a 32G machine would not have a particularly pressing need for
      highmem PTEs. I think 32G could be considered to be at the upper bound
      of what might be sensible on a 32 bit machine (although I think in
      practice 64G is still supported).
      
      It's seems questionable if HIGHPTE is even a win for any amount of RAM
      you would sensibly run a 32 bit kernel on rather than going 64 bit.
      Signed-off-by: NIan Campbell <ian.campbell@citrix.com>
      LKML-Reference: <1266403090-20162-1-git-send-email-ian.campbell@citrix.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      14315592
    • J
      x86, apbt: Moorestown APB system timer driver · bb24c471
      Jacob Pan 提交于
      Moorestown platform does not have PIT or HPET platform timers.  Instead it
      has a bank of eight APB timers.  The number of available timers to the os
      is exposed via SFI mtmr tables.  All APB timer interrupts are routed via
      ioapic rtes and delivered as MSI.
      Currently, we use timer 0 and 1 for per cpu clockevent devices, timer 2
      for clocksource.
      Signed-off-by: NJacob Pan <jacob.jun.pan@intel.com>
      LKML-Reference: <43F901BD926A4E43B106BF17856F0755A318D2D2@orsmsx508.amr.corp.intel.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      bb24c471
  11. 24 2月, 2010 1 次提交
  12. 23 2月, 2010 2 次提交
    • R
      PCI PM: Make it possible to force using INTx for PCIe PME signaling · c39fae14
      Rafael J. Wysocki 提交于
      Apparently, some machines may have problems with PCI run-time power
      management if MSIs are used for the native PCIe PME signaling.  In
      particular, on the MSI Wind U-100 PCIe PME interrupts are not
      generated by a PCIe root port after a resume from suspend to RAM, if
      the system wake-up was triggered by a PME from the device attached to
      this port.  [It doesn't help to free the interrupt on suspend and
      request it back on resume, even if that is done along with disabling
      the MSI and re-enabling it, respectively.]  However, if INTx
      interrupts are used for this purpose on the same machine, everything
      works just fine.
      
      For this reason, add a kernel command line switch allowing one to
      request that MSIs be not used for the native PCIe PME signaling,
      introduce a DMI table allowing us to blacklist machines that need
      this switch to be set by default and put the MSI Wind U-100 into this
      table.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      c39fae14
    • R
      PCI PM: PCIe PME root port service driver · c7f48656
      Rafael J. Wysocki 提交于
      PCIe native PME detection mechanism is based on interrupts generated
      by root ports or event collectors every time a PCIe device sends a
      PME message upstream.
      
      Once a PME message has been sent by an endpoint device and received
      by its root port (or event collector in the case of root complex
      integrated endpoints), the Requester ID from the message header is
      registered in the root port's Root Status register.  At the same
      time, the PME Status bit of the Root Status register is set to
      indicate that there's a PME to handle.  If PCIe PME interrupt is
      enabled for the root port, it generates an interrupt once the PME
      Status has been set.  After receiving the interrupt, the kernel can
      identify the PCIe device that generated the PME using the Requester
      ID from the root port's Root Status register. [For details, see PCI
      Express Base Specification, Rev. 2.0.]
      
      Implement a driver for the PCIe PME root port service working in
      accordance with the above description.
      
      Based on a patch from Shaohua Li <shaohua.li@intel.com>.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      c7f48656
  13. 21 2月, 2010 1 次提交
    • R
      ARM: allow alignment fault mode to be configured at kernel boot · d944d549
      Russell King 提交于
      Some glibc versions intentionally create lots of alignment faults in
      their gconv code, which if not fixed up, results in segfaults during
      boot.  This can prevent systems booting properly.
      
      There is no clear hard-configurable default for this; the desired
      default depends on the nature of the userspace which is going to be
      booted.
      
      So, provide a way for the alignment fault handler to be configured via
      the kernel command line.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d944d549
  14. 18 2月, 2010 1 次提交
  15. 05 2月, 2010 1 次提交
  16. 23 1月, 2010 1 次提交
  17. 20 1月, 2010 1 次提交
  18. 31 12月, 2009 1 次提交
  19. 16 12月, 2009 1 次提交
  20. 12 12月, 2009 2 次提交
    • T
      omap: mux: Add new style pin multiplexing code for omap3 · 15ac7afe
      Tony Lindgren 提交于
      Initially only for 34xx. This code allows us to:
      
      - Make the code more generic as the omap internal signal
        names can stay the same across omap generations for some
        devices
      
      - Map mux registers to GPIO registers that is needed for
        dynamic muxing of pins during off-idle
      
      - Override bootloader mux values via kernel cmdline using
        omap_mux=some.signa1=0x1234,some.signal2=0x1234
      
      - View and set the mux registers via debugfs if
        CONFIG_DEBUG_FS is enabled
      
      Cc: Mike Rapoport <mike@compulab.co.il>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      15ac7afe
    • A
      USB: usb-storage: add BAD_SENSE flag · a0bb1081
      Alan Stern 提交于
      This patch (as1311) fixes a problem in usb-storage: Some devices are
      pretty broken when it comes to reporting sense data.  The information
      they send back indicates that they have more than 18 bytes of sense
      data available, but when the system asks for more than 18 they fail or
      hang.  The symptom is that probing fails with multiple resets.
      
      The patch adds a new BAD_SENSE flag to indicate that usb-storage
      should never ask for more than 18 bytes of sense data.  The flag can
      be set in an unusual_devs entry or via the "quirks=" module parameter,
      and it is set automatically whenever a REQUEST SENSE command for more
      than 18 bytes fails or times out.
      
      An unusual_devs entry is added for the Agfa photo frame, which uses a
      Prolific chip having this bug.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Tested-by: NDaniel Kukula <daniel.kuku@gmail.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a0bb1081
  21. 26 11月, 2009 1 次提交
    • M
      sched: Limit the number of scheduler debug messages · f6630114
      Mike Travis 提交于
      Remove the verbose scheduler debug messages unless kernel
      parameter "sched_debug" set.  /proc/sched_debug unchanged.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Roland Dreier <rdreier@cisco.com>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      Cc: Yinghai Lu <yhlu.kernel@gmail.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Cc: Jack Steiner <steiner@sgi.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <20091118002221.489305000@alcatraz.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f6630114
  22. 14 11月, 2009 1 次提交
  23. 09 11月, 2009 1 次提交
    • N
      signal: Print warning message when dropping signals · f84d49b2
      Naohiro Ooiwa 提交于
      When the system has too many timers or too many aggregate
      queued signals, the EAGAIN error is returned to application
      from kernel, including timer_create() [POSIX.1b].
      
      It means that the app exceeded the limit of pending signals,
      but in general application writers do not expect this
      outcome and the current silent failure can cause rare app
      failures under very high load.
      
      This patch adds a new message when we reach the limit
      and if print_fatal_signals is enabled:
      
          task/1234: reached RLIMIT_SIGPENDING, dropping signal
      
      If you see this message and your system behaved unexpectedly,
      you can run following command to lift the limit:
      
         # ulimit -i unlimited
      
      With help from Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>.
      Signed-off-by: NNaohiro Ooiwa <nooiwa@miraclelinux.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: oleg@redhat.com
      LKML-Reference: <4AF6E7E2.9080406@miraclelinux.com>
      [ Modified a few small details, gave surrounding code some love. ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f84d49b2
  24. 28 10月, 2009 1 次提交
  25. 20 10月, 2009 1 次提交
  26. 14 10月, 2009 1 次提交
  27. 13 10月, 2009 1 次提交
  28. 08 10月, 2009 1 次提交
    • E
      udp: dynamically size hash tables at boot time · f86dcc5a
      Eric Dumazet 提交于
      UDP_HTABLE_SIZE was initialy defined to 128, which is a bit small for
      several setups.
      
      4000 active UDP sockets -> 32 sockets per chain in average. An
      incoming frame has to lookup all sockets to find best match, so long
      chains hurt latency.
      
      Instead of a fixed size hash table that cant be perfect for every
      needs, let UDP stack choose its table size at boot time like tcp/ip
      route, using alloc_large_system_hash() helper
      
      Add an optional boot parameter, uhash_entries=x so that an admin can
      force a size between 256 and 65536 if needed, like thash_entries and
      rhash_entries.
      
      dmesg logs two new lines :
      [    0.647039] UDP hash table entries: 512 (order: 0, 4096 bytes)
      [    0.647099] UDP Lite hash table entries: 512 (order: 0, 4096 bytes)
      
      Maximal size on 64bit arches would be 65536 slots, ie 1 MBytes for non
      debugging spinlocks.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f86dcc5a
  29. 01 10月, 2009 1 次提交
    • J
      x86: earlyprintk: Fix regression to handle serial,ttySn as 1 arg · ea3acb19
      Jason Wessel 提交于
      Commit c9530948 ("early_printk: Allow more than one early console")
      introduced a regression in the parsing of the earlyprintk= kernel
      arguments.
      
      If you specify "earlyprintk=serial,ttyS0,115200" as a kernel
      argument, the "serial,ttyS" should be parsed as a single argument
      and not as "serial" and then "ttyS".
      
      Also update the documentation to reflect you can specify the ttyS
      directly without the "serial" argument.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      LKML-Reference: <4ABB7D5E.6000301@windriver.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ea3acb19
  30. 23 9月, 2009 1 次提交
  31. 21 9月, 2009 1 次提交
  32. 18 9月, 2009 1 次提交
    • W
      MIPS: Loongson: Add a machtype kernel command line argument · 3209e70e
      Wu Zhangjin 提交于
      The difference between some loongson-based machines is very small, so, if
      there is no necessary to add new kernel config options to cope with this
      difference, it will be better to share the same kernel image file between
      them, benefit from this, the linux distribution developers only have a need
      to compile the kernel one time.
      
      This machtype kernel command line argument will be used later to share the
      same kernel image file between two different machines(menglong & yeeloong)
      made by lemote.
      
      Thanks very much to Zhang Le for cleaning up the machtype implementation.
      Signed-off-by: NWu Zhangjin <wuzhangjin@gmail.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      3209e70e
  33. 10 9月, 2009 1 次提交
  34. 01 9月, 2009 1 次提交
    • P
      sh: nmi_debug support. · 1e1030dc
      Paul Mundt 提交于
      This implements support for NMI debugging that was shamelessly copied
      from the avr32 port. A bit of special magic is needed in the interrupt
      exception path given that the NMI exception handler is stubbed in to the
      regular exception handling table despite being reported in INTEVT. So we
      mangle the lookup and kick off an EXPEVT-style exception dispatch from
      the INTEVT path for exceptions that do_IRQ() has no chance of handling.
      As a result, we also drop the evt2irq() conversion from the do_IRQ() path
      and just do it in assembly.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      1e1030dc