17 Dec, 2009

5 commits

  • * git://git.infradead.org/iommu-2.6:
    implement early_io{re,un}map for ia64
    Revert "Intel IOMMU: Avoid memory allocation failures in dma map api calls"
    intel-iommu: ignore page table validation in pass through mode
    intel-iommu: Fix oops with intel_iommu=igfx_off
    intel-iommu: Check for an RMRR which ends before it starts.
    intel-iommu: Apply BIOS sanity checks for interrupt remapping too.
    intel-iommu: Detect DMAR in hyperspace at probe time.
    dmar: Fix build failure without NUMA, warn on bogus RHSA tables and don't abort
    iommu: Allocate dma-remapping structures using numa locality info
    intr_remap: Allocate intr-remapping table using numa locality info
    dmar: Allocate queued invalidation structure using numa locality info
    dmar: support for parsing Remapping Hardware Static Affinity structure

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    edac, mce, amd: silence GART TLB errors
    edac, mce: correct corenum reporting

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (116 commits)
    V4L/DVB (13698): pms: replace asm/uaccess.h to linux/uaccess.h
    V4L/DVB (13690): radio/si470x: #include
    V4L/DVB (13688): au8522: modify the attributes of local filter coefficients
    V4L/DVB (13687): cx231xx: use NULL when pointer is needed
    V4L/DVB: Davinci VPFE Capture: remove unused #include
    V4L/DVB (13685): Correct code taking the size of a pointer
    V4L/DVB (13684): Fix some cut-and-paste noise in dib0090.h
    V4L/DVB (13683): sanio-ms: clean up init, exit and id_table
    V4L/DVB (13682): dib8000: make some constant static
    V4L/DVB: lgs8gxx: Use shifts rather than multiply/divide when possible
    V4L/DVB (13680b): DocBook/media: create links for included sources
    V4L/DVB (13680a): DocBook/media: copy images after building HTML
    V4L/DVB (13678): Add support for yet another DvbWorld, TeVii and Prof USB devices
    V4L/DVB (13676): configurable IRQ mode on NetUP Dual DVB-S2 CI; IRQ from CAM processing (CI interface works faster)
    V4L/DVB (13674): stv090x: Add DiSEqC envelope mode
    V4L/DVB (13673): lnbp21: Implement 22 kHz tone control
    V4L/DVB (13671): sh_mobile_ceu_camera: Remove frame size page alignment
    V4L/DVB (13670): soc-camera: Add mt9t112 camera driver
    V4L/DVB (13669): tw9910: Add sync polarity support
    V4L/DVB (13668): tw9910: remove cropping
    ...

    Linus Torvalds
     
  • * akpm: (173 commits)
    genalloc: use bitmap_find_next_zero_area
    ia64: use bitmap_find_next_zero_area
    sparc: use bitmap_find_next_zero_area
    mlx4: use bitmap_find_next_zero_area
    isp1362-hcd: use bitmap_find_next_zero_area
    iommu-helper: use bitmap library
    bitmap: introduce bitmap_set, bitmap_clear, bitmap_find_next_zero_area
    qnx4: use hweight8
    qnx4fs: remove remains of the (defunct) write support
    resource: constify arg to resource_size() and resource_type()
    gru: send cross partition interrupts using the gru
    gru: function to generate chipset IPI values
    gru: update driver version number
    gru: improve GRU TLB dropin statistics
    gru: fix GRU interrupt race at deallocate
    gru: add hugepage support
    gru: fix bug in allocation of kernel contexts
    gru: update GRU structures to match latest hardware spec
    gru: check for correct GRU chiplet assignment
    gru: remove stray local_irq_enable
    ...

    Linus Torvalds
     
  • Although reporting of benign GART TLB errors is disabled in
    __mcheck_cpu_apply_quirks, those are still being logged, and, as a
    result, trip up amd64_edac. Pull up reporting check so that machines
    with loaded edac module bail out early and don't spit fragments into
    dmesg.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

16 Dec, 2009

35 commits

  • Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Signed-off-by: Akinobu Mita
    Cc: Tony Luck
    Cc: Fenghua Yu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Signed-off-by: Akinobu Mita
    Acked-by: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Signed-off-by: Akinobu Mita
    Reviewed-by: Roland Dreier
    Cc: Yevgeny Petrilin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Signed-off-by: Akinobu Mita
    Cc: Greg Kroah-Hartman
    Cc: Lothar Wassmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Use bitmap library and kill some unused iommu helper functions.

    1. s/iommu_area_free/bitmap_clear/

    2. s/iommu_area_reserve/bitmap_set/

    3. Use bitmap_find_next_zero_area instead of find_next_zero_area

    This cannot be simple substitution because find_next_zero_area
    doesn't check the last bit of the limit in bitmap

    4. Remove iommu_area_free, iommu_area_reserve, and find_next_zero_area

    Signed-off-by: Akinobu Mita
    Cc: "David S. Miller"
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: FUJITA Tomonori
    Cc: Joerg Roedel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This introduces new bitmap functions:

    bitmap_set: Set specified bit area
    bitmap_clear: Clear specified bit area
    bitmap_find_next_zero_area: Find free bit area

    These are mostly stolen from iommu helper. The differences are:

    - Use find_next_bit instead of doing test_bit for each bit

    - Rewrite bitmap_set and bitmap_clear

    Instead of setting or clearing for each bit.

    - Check the last bit of the limit

    iommu-helper doesn't want to find such area

    - The return value if there is no zero area

    find_next_zero_area in iommu helper: returns -1
    bitmap_find_next_zero_area: return >= bitmap size

    Signed-off-by: Akinobu Mita
    Cc: FUJITA Tomonori
    Cc: "David S. Miller"
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Greg Kroah-Hartman
    Cc: Lothar Wassmann
    Cc: Roland Dreier
    Cc: Yevgeny Petrilin
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Joerg Roedel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Use hweight8 instead of counting for each bit

    Signed-off-by: Akinobu Mita
    Acked-by: Anders Larsen
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • commit 945ffe54bbd56ceed62de3b908800fd7c6ffb284 ("qnx4: remove write support") removed the (defunct)
    write support but missed a chunk of related, dead code.

    Signed-off-by: Anders Larsen
    Cc: Jiri Kosina
    Acked-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anders Larsen
     
  • resource_size() doesn't change the resource it operates on, so the res
    parameter can be marked const. Same for resource_type().

    Signed-off-by: Jean Delvare
    Reviewed-by: WANG Cong
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • GRU Message queue instructions are used to deliver messages to other SSIs
    within the numalink domain. In most cases, a single GRU mesq instruction
    will deliver both the message AND an interrupt to notify the other SSI
    that a messsage is present. In some cases, however, the interrupt must be
    sent explicitly.

    To improve resilency, the GRU driver should send these explicit interrupts
    using the GRU to write the remote chipset register. Current code sends
    the interrupt using a cpu instruction to write the chipset register.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Create a function to generate the value that is written to the UV hub MMR
    to cause an IPI interrupt to be sent. The function will be used in the
    GRU message queue error recovery code that sends IPIs to nodes in remote
    partitions.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Update the version number of the GRU driver.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Update the TLB dropin statistics kept for each GRU context. Count TLB
    dropins separate from the misses - some misses do not result in a TLB
    dropin. Some of the diagnostics need both counts.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Fix a race where an interrupt could be received for a GRU context that has
    been deallocated.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Add support for hugepages. Easier than I originally thought.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Fix a bug in the assignment of GRU contexts used for kernel functions. If
    a sleep occurs on the wait for a semaphore, the thread could switch cpus
    and allocate resources on the wrong blade.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Add a few new definitions for chipset MMR field names. This matches rev
    0.7 of the hardware spec.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Simplify the code that checks for correct assignment of GRU contexts to
    users.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Remove a stray local_irq_enable() in the GRU TLB dropin code.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Use symbol names instead of numbers for error return values for the vtop
    functions.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Fix a GRU driver bug converting a CBR address to the context that contains
    the CBR. The conversion is rarely done so performance does not matter.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Add anticipatory TLB dropins for GRU TLB misses that occur on BCOPY
    instructions that copy large amounts of data.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Explicitly set GRU instructions to "ACTIVE". This eliminates the need for
    barriers that would have been necessary to prevent reading the instruction
    "status" field before the GRU had actually started the instruction.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Add additional GRU statistics & debug messages.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Update the GRU irq allocate/free functions to use the latest upstream
    infrastructure.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Fix several bugs related to prefetch, ordering & speculation:

    - GRU cch_allocate() instruction causes cacheable memory
    to be created. Add a barriers to prevent speculation
    from prefetching data before it exists.
    - Add memory barriers before cache-flush instructions to ensure
    that previously stored data is included in the line flushed to memory.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Fix bug caused by failure to allocate a GRU gts structure. The old code
    failed to handle the case where the vma was invalid.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Improve existing driver self-tests. Add a new debugging test to the SGI
    GRU driver for verifying the global GRU copy function.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Add a debug option to the SGI GRU driver for flushing GRU cache lines from
    memory. In theory this is not needed but it is useful for debugging.
    This has no use by end users.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Under some conditions, mmu_notifier_register() will fail to register a
    mmu_notifier. Fix the GRU driver to correctly handle these failures.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Increase the maximum address supported by the SGI GRU driver to a full 64
    bits. Note that GRU addresses are not always the same as socket virtual
    addresses. Sockets may not necessarily support the full 64 bits.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Improve error messages for malfunctioning GRUs. Identify the type of
    instruction that is failing.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • Fix bug in module unload. Previous code was not correctly deleting the
    files in /proc.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This patch builds on the infrastructure introduced in the patches that
    allow user specification of GRU blades & chiplets for context allocation.

    This patch simplifies the algorithms for migrating GRU contexts between
    blades.

    No new functionality is introduced.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner