Skip to content
Snippets Groups Projects
  1. Apr 20, 2010
  2. Apr 07, 2010
  3. Mar 15, 2010
  4. Feb 25, 2010
    • Ian Campbell's avatar
      x86, mm: Allow highmem user page tables to be disabled at boot time · 14315592
      Ian Campbell authored
      
      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: default avatarIan Campbell <ian.campbell@citrix.com>
      LKML-Reference: <1266403090-20162-1-git-send-email-ian.campbell@citrix.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      14315592
  5. Feb 24, 2010
    • Jacob Pan's avatar
      x86, apbt: Moorestown APB system timer driver · bb24c471
      Jacob Pan authored
      
      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: default avatarJacob Pan <jacob.jun.pan@intel.com>
      LKML-Reference: <43F901BD926A4E43B106BF17856F0755A318D2D2@orsmsx508.amr.corp.intel.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      bb24c471
  6. Feb 23, 2010
    • Bjorn Helgaas's avatar
      x86/PCI: use host bridge _CRS info by default on 2008 and newer machines · 7bc5e3f2
      Bjorn Helgaas authored
      The main benefit of using ACPI host bridge window information is that
      we can do better resource allocation in systems with multiple host bridges,
      e.g., http://bugzilla.kernel.org/show_bug.cgi?id=14183
      
      Sometimes we need _CRS information even if we only have one host bridge,
      e.g., https://bugs.launchpad.net/ubuntu/+source/linux/+bug/341681
      
      
      
      Most of these systems are relatively new, so this patch turns on
      "pci=use_crs" only on machines with a BIOS date of 2008 or newer.
      
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      7bc5e3f2
    • Rafael J. Wysocki's avatar
      PCI PM: Make it possible to force using INTx for PCIe PME signaling · c39fae14
      Rafael J. Wysocki authored
      
      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: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      c39fae14
    • Rafael J. Wysocki's avatar
      PCI PM: PCIe PME root port service driver · c7f48656
      Rafael J. Wysocki authored
      
      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: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      c7f48656
  7. Feb 20, 2010
    • Russell King's avatar
      ARM: allow alignment fault mode to be configured at kernel boot · d944d549
      Russell King authored
      
      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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      d944d549
  8. Feb 18, 2010
  9. Feb 04, 2010
  10. Jan 22, 2010
  11. Jan 20, 2010
  12. Dec 30, 2009
  13. Dec 16, 2009
  14. Dec 12, 2009
    • Tony Lindgren's avatar
      omap: mux: Add new style pin multiplexing code for omap3 · 15ac7afe
      Tony Lindgren authored
      
      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: default avatarPaul Walmsley <paul@pwsan.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      15ac7afe
  15. Dec 11, 2009
    • Alan Stern's avatar
      USB: usb-storage: add BAD_SENSE flag · a0bb1081
      Alan Stern authored
      
      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: default avatarAlan Stern <stern@rowland.harvard.edu>
      Tested-by: default avatarDaniel Kukula <daniel.kuku@gmail.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      a0bb1081
  16. Nov 26, 2009
    • Mike Travis's avatar
      sched: Limit the number of scheduler debug messages · f6630114
      Mike Travis authored
      
      Remove the verbose scheduler debug messages unless kernel
      parameter "sched_debug" set.  /proc/sched_debug unchanged.
      
      Signed-off-by: default avatarMike 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: default avatarIngo Molnar <mingo@elte.hu>
      f6630114
  17. Nov 13, 2009
  18. Nov 09, 2009
    • Naohiro Ooiwa's avatar
      signal: Print warning message when dropping signals · f84d49b2
      Naohiro Ooiwa authored
      
      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: default avatarNaohiro 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: default avatarIngo Molnar <mingo@elte.hu>
      f84d49b2
  19. Oct 27, 2009
  20. Oct 20, 2009
  21. Oct 14, 2009
  22. Oct 12, 2009
  23. Oct 08, 2009
    • Eric Dumazet's avatar
      udp: dynamically size hash tables at boot time · f86dcc5a
      Eric Dumazet authored
      
      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: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f86dcc5a
  24. Oct 01, 2009
    • Jason Wessel's avatar
      x86: earlyprintk: Fix regression to handle serial,ttySn as 1 arg · ea3acb19
      Jason Wessel authored
      
      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: default avatarJason 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: default avatarIngo Molnar <mingo@elte.hu>
      ea3acb19
  25. Sep 23, 2009
  26. Sep 21, 2009
  27. Sep 17, 2009
    • Wu Zhangjin's avatar
      MIPS: Loongson: Add a machtype kernel command line argument · 3209e70e
      Wu Zhangjin authored
      
      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: default avatarWu Zhangjin <wuzhangjin@gmail.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      3209e70e
  28. Sep 10, 2009
  29. Sep 01, 2009
    • Paul Mundt's avatar
      sh: nmi_debug support. · 1e1030dc
      Paul Mundt authored
      
      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: default avatarPaul Mundt <lethal@linux-sh.org>
      1e1030dc
  30. Aug 19, 2009
  31. Aug 14, 2009
  32. Aug 12, 2009
  33. Aug 09, 2009
  34. Jul 10, 2009
  35. Jul 08, 2009
  36. Jul 01, 2009
Loading