04 Aug, 2011

3 commits

  • * 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
    cpuidle: stop depending on pm_idle
    x86 idle: move mwait_idle_with_hints() to where it is used
    cpuidle: replace xen access to x86 pm_idle and default_idle
    cpuidle: create bootparam "cpuidle.off=1"
    mrst_pmu: driver for Intel Moorestown Power Management Unit

    Linus Torvalds
     
  • Update kernel-parameters.txt to point users to the authoritative comment
    for name_to_dev_t. In addition, updates other places where some
    name_to_dev_t behavior was discussed. All other references to root=
    appear to be for explicit sample usage or just side comments when
    discussing other kernel parameters.

    Signed-off-by: Will Drewry
    Cc: Kay Sievers
    Cc: Randy Dunlap
    Cc: Namhyung Kim
    Cc: Trond Myklebust
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Will Drewry
     
  • useful for disabling cpuidle to fall back
    to architecture-default idle loop

    cpuidle drivers and governors will fail to register.
    on x86 they'll say so:

    intel_idle: intel_idle yielding to (null)
    ACPI: acpi_idle yielding to (null)

    Signed-off-by: Len Brown

    Len Brown
     

03 Aug, 2011

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (28 commits)
    ACPI: delete stale reference in kernel-parameters.txt
    ACPI: add missing _OSI strings
    ACPI: remove NID_INVAL
    thermal: make THERMAL_HWMON implementation fully internal
    thermal: split hwmon lookup to a separate function
    thermal: hide CONFIG_THERMAL_HWMON
    ACPI print OSI(Linux) warning only once
    ACPI: DMI workaround for Asus A8N-SLI Premium and Asus A8N-SLI DELUX
    ACPI / Battery: propagate sysfs error in acpi_battery_add()
    ACPI / Battery: avoid acpi_battery_add() use-after-free
    ACPI: introduce "acpi_rsdp=" parameter for kdump
    ACPI: constify ops structs
    ACPI: fix CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
    ACPI: fix 80 char overflow
    ACPI / Battery: Resolve the race condition in the sysfs_remove_battery()
    ACPI / Battery: Add the check before refresh sysfs in the battery_notify()
    ACPI / Battery: Add the hibernation process in the battery_notify()
    ACPI / Battery: Rename acpi_battery_quirks2 with acpi_battery_quirks
    ACPI / Battery: Change 16-bit signed negative battery current into correct value
    ACPI / Battery: Add the power unit macro
    ...

    Linus Torvalds
     

02 Aug, 2011

1 commit

  • * 'pstore-efi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    efivars: Introduce PSTORE_EFI_ATTRIBUTES
    efivars: Use string functions in pstore_write
    efivars: introduce utf16_strncmp
    efivars: String functions
    efi: Add support for using efivars as a pstore backend
    pstore: Allow the user to explicitly choose a backend
    pstore: Make "part" unsigned
    pstore: Add extra context for writes and erases
    pstore: Extend API for more flexibility in new backends

    Linus Torvalds
     

27 Jul, 2011

1 commit

  • When a kernel BUG or oops occurs, ChromeOS intends to panic and
    immediately reboot, with stacktrace and other messages preserved in RAM
    across reboot.

    But the longer we delay, the more likely the user is to poweroff and
    lose the info.

    panic_timeout (seconds before rebooting) is set by panic= boot option or
    sysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at
    present we have to delay at least 1 second.

    Let a negative number mean reboot immediately (with the small cosmetic
    benefit of suppressing that newline-less "Rebooting in %d seconds.."
    message).

    Signed-off-by: Hugh Dickins
    Signed-off-by: Mandeep Singh Baines
    Cc: Huang Ying
    Cc: Andi Kleen
    Cc: Hugh Dickins
    Cc: Olaf Hering
    Cc: Jesse Barnes
    Cc: Dave Airlie
    Cc: Greg Kroah-Hartman
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

26 Jul, 2011

2 commits

  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (115 commits)
    EHCI: fix direction handling for interrupt data toggles
    USB: serial: add IDs for WinChipHead USB->RS232 adapter
    USB: OHCI: fix another regression for NVIDIA controllers
    usb: gadget: m66592-udc: add pullup function
    usb: gadget: m66592-udc: add function for external controller
    usb: gadget: r8a66597-udc: add pullup function
    usb: renesas_usbhs: support multi driver
    usb: renesas_usbhs: inaccessible pipe is not an error
    usb: renesas_usbhs: care buff alignment when dma handler
    USB: PL2303: correctly handle baudrates above 115200
    usb: r8a66597-hcd: fixup USB_PORT_STAT_C_SUSPEND shift
    usb: renesas_usbhs: compile/config are rescued
    usb: renesas_usbhs: fixup comment-out
    usb: update email address in ohci-sh and r8a66597-hcd
    usb: r8a66597-hcd: add function for external controller
    EHCI: only power off port if over-current is active
    USB: mon: Allow to use usbmon without debugfs
    USB: EHCI: go back to using the system clock for QH unlinks
    ehci: add pci quirk for Ordissimo and RM Slate 100 too
    ehci: refactor pci quirk to use standard dmi_check_system method
    ...

    Fix up trivial conflicts in Documentation/feature-removal-schedule.txt

    Linus Torvalds
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (99 commits)
    drivers/virt: add missing linux/interrupt.h to fsl_hypervisor.c
    powerpc/85xx: fix mpic configuration in CAMP mode
    powerpc: Copy back TIF flags on return from softirq stack
    powerpc/64: Make server perfmon only built on ppc64 server devices
    powerpc/pseries: Fix hvc_vio.c build due to recent changes
    powerpc: Exporting boot_cpuid_phys
    powerpc: Add CFAR to oops output
    hvc_console: Add kdb support
    powerpc/pseries: Fix hvterm_raw_get_chars to accept < 16 chars, fixing xmon
    powerpc/irq: Quieten irq mapping printks
    powerpc: Enable lockup and hung task detectors in pseries and ppc64 defeconfigs
    powerpc: Add mpt2sas driver to pseries and ppc64 defconfig
    powerpc: Disable IRQs off tracer in ppc64 defconfig
    powerpc: Sync pseries and ppc64 defconfigs
    powerpc/pseries/hvconsole: Fix dropped console output
    hvc_console: Improve tty/console put_chars handling
    powerpc/kdump: Fix timeout in crash_kexec_wait_realmode
    powerpc/mm: Fix output of total_ram.
    powerpc/cpufreq: Add cpufreq driver for Momentum Maple boards
    powerpc: Correct annotations of pmu registration functions
    ...

    Fix up trivial Kconfig/Makefile conflicts in arch/powerpc, drivers, and
    drivers/cpufreq

    Linus Torvalds
     

25 Jul, 2011

1 commit

  • * 'kvm-updates/3.1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (143 commits)
    KVM: IOMMU: Disable device assignment without interrupt remapping
    KVM: MMU: trace mmio page fault
    KVM: MMU: mmio page fault support
    KVM: MMU: reorganize struct kvm_shadow_walk_iterator
    KVM: MMU: lockless walking shadow page table
    KVM: MMU: do not need atomicly to set/clear spte
    KVM: MMU: introduce the rules to modify shadow page table
    KVM: MMU: abstract some functions to handle fault pfn
    KVM: MMU: filter out the mmio pfn from the fault pfn
    KVM: MMU: remove bypass_guest_pf
    KVM: MMU: split kvm_mmu_free_page
    KVM: MMU: count used shadow pages on prepareing path
    KVM: MMU: rename 'pt_write' to 'emulate'
    KVM: MMU: cleanup for FNAME(fetch)
    KVM: MMU: optimize to handle dirty bit
    KVM: MMU: cache mmio info on page fault path
    KVM: x86: introduce vcpu_mmio_gva_to_gpa to cleanup the code
    KVM: MMU: do not update slot bitmap if spte is nonpresent
    KVM: MMU: fix walking shadow page table
    KVM guest: KVM Steal time registration
    ...

    Linus Torvalds
     

24 Jul, 2011

2 commits

  • The idea is from Avi:
    | Maybe it's time to kill off bypass_guest_pf=1. It's not as effective as
    | it used to be, since unsync pages always use shadow_trap_nonpresent_pte,
    | and since we convert between the two nonpresent_ptes during sync and unsync.

    Signed-off-by: Xiao Guangrong
    Signed-off-by: Avi Kivity

    Xiao Guangrong
     
  • This patch implements the kvm bits of the steal time infrastructure.
    The most important part of it, is the steal time clock. It is an
    continuous clock that shows the accumulated amount of steal time
    since vcpu creation. It is supposed to survive cpu offlining/onlining.

    [marcelo: fix build with CONFIG_KVM_GUEST=n]

    Signed-off-by: Glauber Costa
    Acked-by: Rik van Riel
    Tested-by: Eric B Munson
    CC: Jeremy Fitzhardinge
    CC: Peter Zijlstra
    CC: Avi Kivity
    CC: Anthony Liguori
    Signed-off-by: Avi Kivity
    Signed-off-by: Marcelo Tosatti

    Glauber Costa
     

23 Jul, 2011

1 commit


17 Jul, 2011

1 commit

  • There is a problem with putting the first kernel in EFI virtual mode,
    it is that when the second kernel comes up it tries to initialize the
    EFI again and once we have put EFI in virtual mode we can not really
    do that.

    Actually, EFI is not necessary for kdump, we can boot the second kernel
    with "noefi" parameter, but the boot will mostly fail because 2nd kernel
    cannot find RSDP.

    In this situation, we introduced "acpi_rsdp=" kernel parameter, so that
    kexec-tools can pass the "noefi acpi_rsdp=X" to the second kernel to
    make kdump works. The physical address of the RSDP can be got from
    sysfs(/sys/firmware/efi/systab).

    Signed-off-by: Takao Indoh
    Reviewed-by: WANG Cong
    Reviewed-by: Konrad Rzeszutek Wilk
    Signed-off-by: Len Brown

    Takao Indoh
     

09 Jul, 2011

1 commit

  • Multiple attempts to dynamically reallocate pci resources have
    unfortunately lead to regressions. Though we continue to fix the
    regressions and fine tune the dynamic-reallocation behavior, we have not
    reached a acceptable state yet.

    This patch provides a interim solution. It disables dynamic reallocation
    by default, but adds the ability to enable it through pci=realloc kernel
    command line parameter.

    Tested-by: Oliver Hartkopp
    Signed-off-by: Ram Pai
    Signed-off-by: Jesse Barnes

    Ram Pai
     

20 Jun, 2011

1 commit

  • Back in 2006 the "udbg-immortal" kernel option has been introduced:

    > commit 3b5e905ee3bd23e9311951890aba57a0dbc81ca4
    > Author: Benjamin Herrenschmidt
    > Date: Wed Jun 7 12:06:20 2006 +1000
    >
    > [PATCH] powerpc: Add udbg-immortal kernel option

    ...but I could not find it documented anywhere in the sources.
    This patch adds it to Documentation/kernel-parameters.txt.

    Signed-off-by: Christian Kujau
    Signed-off-by: Benjamin Herrenschmidt

    Christian Kujau
     

14 Jun, 2011

1 commit


08 Jun, 2011

1 commit

  • Some USB mass-storage devices have bugs that cause them not to handle
    the first READ(10) command they receive correctly. The Corsair
    Padlock v2 returns completely bogus data for its first read (possibly
    it returns the data in encrypted form even though the device is
    supposed to be unlocked). The Feiya SD/SDHC card reader fails to
    complete the first READ(10) command after it is plugged in or after a
    new card is inserted, returning a status code that indicates it thinks
    the command was invalid, which prevents the kernel from retrying the
    read.

    Since the first read of a new device or a new medium is for the
    partition sector, the kernel is unable to retrieve the device's
    partition table. Users have to manually issue an "hdparm -z" or
    "blockdev --rereadpt" command before they can access the device.

    This patch (as1470) works around the problem. It adds a new quirk
    flag, US_FL_INVALID_READ10, indicating that the first READ(10) should
    always be retried immediately, as should any failing READ(10) commands
    (provided the preceding READ(10) command succeeded, to avoid getting
    stuck in a loop). The patch also adds appropriate unusual_devs
    entries containing the new flag.

    Signed-off-by: Alan Stern
    Tested-by: Sven Geggus
    Tested-by: Paul Hartman
    CC: Matthew Dharm
    CC:
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

07 Jun, 2011

1 commit


02 Jun, 2011

1 commit

  • * git://git.infradead.org/iommu-2.6:
    intel-iommu: Fix off-by-one in RMRR setup
    intel-iommu: Add domain check in domain_remove_one_dev_info
    intel-iommu: Remove Host Bridge devices from identity mapping
    intel-iommu: Use coherent DMA mask when requested
    intel-iommu: Dont cache iova above 32bit
    intel-iommu: Speed up processing of the identity_mapping function
    intel-iommu: Check for identity mapping candidate using system dma mask
    intel-iommu: Only unlink device domains from iommu
    intel-iommu: Enable super page (2MiB, 1GiB, etc.) support
    intel-iommu: Flush unmaps at domain_exit
    intel-iommu: Remove obsolete comment from detect_intel_iommu
    intel-iommu: fix VT-d PMR disable for TXT on S3 resume

    Linus Torvalds
     

01 Jun, 2011

1 commit

  • There are no externally-visible changes with this. In the loop in the
    internal __domain_mapping() function, we simply detect if we are mapping:
    - size >= 2MiB, and
    - virtual address aligned to 2MiB, and
    - physical address aligned to 2MiB, and
    - on hardware that supports superpages.

    (and likewise for larger superpages).

    We automatically use a superpage for such mappings. We never have to
    worry about *breaking* superpages, since we trust that we will always
    *unmap* the same range that was mapped. So all we need to do is ensure
    that dma_pte_clear_range() will also cope with superpages.

    Adjust pfn_to_dma_pte() to take a superpage 'level' as an argument, so
    it can return a PTE at the appropriate level rather than always
    extending the page tables all the way down to level 1. Again, this is
    simplified by the fact that we should never encounter existing small
    pages when we're creating a mapping; any old mapping that used the same
    virtual range will have been entirely removed and its obsolete page
    tables freed.

    Provide an 'intel_iommu=sp_off' argument on the command line as a
    chicken bit. Not that it should ever be required.

    ==

    The original commit seen in the iommu-2.6.git was Youquan's
    implementation (and completion) of my own half-baked code which I'd
    typed into an email. Followed by half a dozen subsequent 'fixes'.

    I've taken the unusual step of rewriting history and collapsing the
    original commits in order to keep the main history simpler, and make
    life easier for the people who are going to have to backport this to
    older kernels. And also so I can give it a more coherent commit comment
    which (hopefully) gives a better explanation of what's going on.

    The original sequence of commits leading to identical code was:

    Youquan Song (3):
    intel-iommu: super page support
    intel-iommu: Fix superpage alignment calculation error
    intel-iommu: Fix superpage level calculation error in dma_pfn_level_pte()

    David Woodhouse (4):
    intel-iommu: Precalculate superpage support for dmar_domain
    intel-iommu: Fix hardware_largepage_caps()
    intel-iommu: Fix inappropriate use of superpages in __domain_mapping()
    intel-iommu: Fix phys_pfn in __domain_mapping for sglist pages

    Signed-off-by: Youquan Song
    Signed-off-by: David Woodhouse

    Youquan Song
     

25 May, 2011

1 commit

  • The noswapaccount parameter has been deprecated since 2.6.38 without any
    complaints from users so we can remove it. swapaccount=0|1 can be used
    instead.

    As we are removing the parameter we can also clean up swapaccount because
    it doesn't have to accept an empty string anymore (to match noswapaccount)
    and so we can push = into __setup macro rather than checking "=1" resp.
    "=0" strings

    Signed-off-by: Michal Hocko
    Cc: Hiroyuki Kamezawa
    Cc: Daisuke Nishimura
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

24 May, 2011

1 commit

  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (205 commits)
    USB: EHCI: Remove SPARC_LEON {read,write}_be definitions from ehci.h
    USB: UHCI: Support big endian GRUSBHC HC
    sparc: add {read,write}*_be routines
    USB: UHCI: Add support for big endian descriptors
    USB: UHCI: Use ACCESS_ONCE rather than using a full compiler barrier
    USB: UHCI: Add support for big endian mmio
    usb-storage: Correct adjust_quirks to include latest flags
    usb/isp1760: Fix possible unlink problems
    usb/isp1760: Move function isp1760_endpoint_disable() within file.
    USB: remove remaining usages of hcd->state from usbcore and fix regression
    usb: musb: ux500: add configuration and build options for ux500 dma
    usb: musb: ux500: add dma glue layer for ux500
    usb: musb: ux500: add dma name for ux500
    usb: musb: ux500: add ux500 specific code for gadget side
    usb: musb: fix compile error
    usb-storage: fix up the unusual_realtek device list
    USB: gadget: f_audio: Fix invalid dereference of initdata
    EHCI: don't rescan interrupt QHs needlessly
    OHCI: fix regression caused by nVidia shutdown workaround
    USB: OTG: msm: Free VCCCX regulator even if we can't set the voltage
    ...

    Linus Torvalds
     

20 May, 2011

2 commits


18 May, 2011

2 commits

  • Enable/disable newly documented SMEP (Supervisor Mode Execution Protection) CPU
    feature in kernel. CR4.SMEP (bit 20) is 0 at power-on. If the feature is
    supported by CPU (X86_FEATURE_SMEP), enable SMEP by setting CR4.SMEP. New kernel
    option nosmep disables the feature even if the feature is supported by CPU.

    [ hpa: moved the call to setup_smep() until after the vendor-specific
    initialization; that ensures that CPUID features are unmasked. We
    will still run it before we have userspace (never mind uncontrolled
    userspace). ]

    Signed-off-by: Fenghua Yu
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Fenghua Yu
     
  • acpi_sleep=s4_nonvs is superseded by acpi_sleep=nonvs, so remove it.

    Signed-off-by: WANG Cong
    Acked-by: Pavel Machek
    Acked-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Amerigo Wang
     

08 Apr, 2011

1 commit


05 Apr, 2011

2 commits


31 Mar, 2011

1 commit


23 Mar, 2011

3 commits

  • On some architectures, the boot process involves de-registering the boot
    console (early boot), initialize drivers and then re-register the console.

    This mechanism introduces a window in which no printk can happen on the
    console and messages are buffered and then printed once the new console is
    available.

    If a kernel crashes during this window, all it's left on the boot console
    is "console [foo] enabled, bootconsole disabled" making debug of the crash
    rather 'interesting'.

    By adding "keep_bootcon" option, do not unregister the boot console, that
    will allow to printk everything that is happening up to the crash.

    The option is clearly meant only for debugging purposes as it introduces
    lots of duplicated info printed on console, but will make bug report from
    users easier as it doesn't require a kernel build just to figure out where
    we crash.

    Signed-off-by: Fabio M. Di Nitto
    Acked-by: David S. Miller
    Cc: Alan Cox
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabio M. Di Nitto
     
  • When a cpu is considered stuck, instead of limping along and just printing
    a warning, it is sometimes preferred to just panic, let kdump capture the
    vmcore and reboot. This gets the machine back into a stable state quickly
    while saving the info that got it into a stuck state to begin with.

    Add a Kconfig option to allow users to set the hardlockup to panic
    by default. Also add in a 'nmi_watchdog=nopanic' to override this.

    [akpm@linux-foundation.org: fix strncmp length]
    Signed-off-by: Don Zickus
    Acked-by: Peter Zijlstra
    Reviewed-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Don Zickus
     
  • The oops=panic cmdline option is not x86 specific, move it to generic code.
    Update documentation.

    Signed-off-by: Olaf Hering
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

18 Mar, 2011

2 commits

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (62 commits)
    powerpc/85xx: Fix signedness bug in cache-sram
    powerpc/fsl: 85xx: document cache sram bindings
    powerpc/fsl: define binding for fsl mpic interrupt controllers
    powerpc/fsl_msi: Handle msi-available-ranges better
    drivers/serial/ucc_uart.c: Add of_node_put to avoid memory leak
    powerpc/85xx: Fix SPE float to integer conversion failure
    powerpc/85xx: Update sata controller compatible for p1022ds board
    ATA: Add FSL sata v2 controller support
    powerpc/mpc8xxx_gpio: simplify searching for 'fsl, qoriq-gpio' compatiable
    powerpc/8xx: remove obsolete mgsuvd board
    powerpc/82xx: rename and update mgcoge board support
    powerpc/83xx: rename and update kmeter1
    powerpc/85xx: Workaroudn e500 CPU erratum A005
    powerpc/fsl_pci: Add support for FSL PCIe controllers v2.x
    powerpc/85xx: Fix writing to spin table 'cpu-release-addr' on ppc64e
    powerpc/pseries: Disable MSI using new interface if possible
    powerpc: Enable GENERIC_HARDIRQS_NO_DEPRECATED.
    powerpc: core irq_data conversion.
    powerpc: sysdev/xilinx_intc irq_data conversion.
    powerpc: sysdev/uic irq_data conversion.
    ...

    Fix up conflicts in arch/powerpc/sysdev/fsl_msi.c (due to getting rid of
    of_platform_driver in arch/powerpc)

    Linus Torvalds
     
  • * 'nfs-for-2.6.39' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (54 commits)
    RPC: killing RPC tasks races fixed
    xprt: remove redundant check
    SUNRPC: Convert struct rpc_xprt to use atomic_t counters
    SUNRPC: Ensure we always run the tk_callback before tk_action
    sunrpc: fix printk format warning
    xprt: remove redundant null check
    nfs: BKL is no longer needed, so remove the include
    NFS: Fix a warning in fs/nfs/idmap.c
    Cleanup: Factor out some cut-and-paste code.
    cleanup: save 60 lines/100 bytes by combining two mostly duplicate functions.
    NFS: account direct-io into task io accounting
    gss:krb5 only include enctype numbers in gm_upcall_enctypes
    RPCRDMA: Fix FRMR registration/invalidate handling.
    RPCRDMA: Fix to XDR page base interpretation in marshalling logic.
    NFSv4: Send unmapped uid/gids to the server when using auth_sys
    NFSv4: Propagate the error NFS4ERR_BADOWNER to nfs4_do_setattr
    NFSv4: cleanup idmapper functions to take an nfs_server argument
    NFSv4: Send unmapped uid/gids to the server if the idmapper fails
    NFSv4: If the server sends us a numeric uid/gid then accept it
    NFSv4.1: reject zero layout with zeroed stripe unit
    ...

    Linus Torvalds
     

12 Mar, 2011

2 commits


04 Mar, 2011

1 commit

  • If firmware allows us to map all of a partition's memory for DMA on a
    particular bridge, create a 1:1 mapping of that memory. Add hooks for
    dealing with hotplug events. Dynamic DMA windows can use larger than the
    default page size, and we use the largest one possible.

    Signed-off-by: Nishanth Aravamudan
    Signed-off-by: Benjamin Herrenschmidt

    Nishanth Aravamudan
     

26 Feb, 2011

1 commit

  • Add a commandline parameter "threadirqs" which forces all interrupts except
    those marked IRQF_NO_THREAD to run threaded. That's mostly a debug option to
    allow retrieving better debug data from crashing interrupt handlers. If
    "threadirqs" is not enabled on the kernel command line, then there is no
    impact in the interrupt hotpath.

    Architecture code needs to select CONFIG_IRQ_FORCED_THREADING after
    marking the interrupts which cant be threaded IRQF_NO_THREAD. All
    interrupts which have IRQF_TIMER set are implict marked
    IRQF_NO_THREAD. Also all PER_CPU interrupts are excluded.

    Forced threading hard interrupts also forces all soft interrupt
    handling into thread context.

    When enabled it might slow down things a bit, but for debugging problems in
    interrupt code it's a reasonable penalty as it does not immediately
    crash and burn the machine when an interrupt handler is buggy.

    Some test results on a Core2Duo machine:

    Cache cold run of:
    # time git grep irq_desc

    non-threaded threaded
    real 1m18.741s 1m19.061s
    user 0m1.874s 0m1.757s
    sys 0m5.843s 0m5.427s

    # iperf -c server
    non-threaded
    [ 3] 0.0-10.0 sec 1.09 GBytes 933 Mbits/sec
    [ 3] 0.0-10.0 sec 1.09 GBytes 934 Mbits/sec
    [ 3] 0.0-10.0 sec 1.09 GBytes 933 Mbits/sec
    threaded
    [ 3] 0.0-10.0 sec 1.09 GBytes 939 Mbits/sec
    [ 3] 0.0-10.0 sec 1.09 GBytes 934 Mbits/sec
    [ 3] 0.0-10.0 sec 1.09 GBytes 937 Mbits/sec

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    LKML-Reference:

    Thomas Gleixner
     

22 Feb, 2011

1 commit