1. 08 7月, 2015 3 次提交
  2. 07 7月, 2015 7 次提交
    • R
      PM / wakeirq: Avoid setting power.wakeirq too hastily · 6d3dab7d
      Rafael J. Wysocki 提交于
      If dev_pm_attach_wake_irq() fails, the device's power.wakeirq field
      should not be set to point to the struct wake_irq passed to that
      function, as that object will be freed going forward.
      
      For this reason, make dev_pm_attach_wake_irq() first call
      device_wakeup_attach_irq() and only set the device's power.wakeirq
      field if that's successful.
      
      That requires device_wakeup_attach_irq() to be called under the
      device's power.lock lock, but since dev_pm_attach_wake_irq() is
      the only caller of it, the requisite changes are easy to make.
      
      Fixes: 4990d4fe (PM / Wakeirq: Add automated device wake IRQ handling)
      Reported-by: NFelipe Balbi <balbi@ti.com>
      Tested-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      6d3dab7d
    • S
      ata: ahci_platform: Add ACPI _CLS matching · 2051e924
      Suthikulpanit, Suravee 提交于
      This patch adds ACPI supports for AHCI platform driver, which uses _CLS
      method to match the device.
      
      The following is an example of ASL structure in DSDT for a SATA controller,
      which contains _CLS package to be matched by the ahci_platform driver:
      
        Device (AHC0) // AHCI Controller
        {
          Name(_HID, "AMDI0600")
          Name (_CCA, 1)
          Name (_CLS, Package (3)
          {
            0x01, // Base Class: Mass Storage
            0x06, // Sub-Class: serial ATA
            0x01, // Interface: AHCI
          })
          Name (_CRS, ResourceTemplate ()
          {
            Memory32Fixed (ReadWrite, 0xE0300000, 0x00010000)
            Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) { 387 }
          })
        }
      
      Also, since ATA driver should not require PCI support for ATA_ACPI,
      this patch removes dependency in the driver/ata/Kconfig.
      Acked-by: NTejun Heo <tj@kernel.org>
      Acked-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: NHanjun Guo <hanjun.guo@linaro.org>
      Signed-off-by: NSuravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2051e924
    • S
      ACPI / scan: Add support for ACPI _CLS device matching · 26095a01
      Suthikulpanit, Suravee 提交于
      Device drivers typically use ACPI _HIDs/_CIDs listed in struct device_driver
      acpi_match_table to match devices. However, for generic drivers, we do not
      want to list _HID for all supported devices. Also, certain classes of devices
      do not have _CID (e.g. SATA, USB). Instead, we can leverage ACPI _CLS,
      which specifies PCI-defined class code (i.e. base-class, subclass and
      programming interface). This patch adds support for matching ACPI devices using
      the _CLS method.
      
      To support loadable module, current design uses _HID or _CID to match device's
      modalias. With the new way of matching with _CLS this would requires modification
      to the current ACPI modalias key to include _CLS. This patch appends PCI-defined
      class-code to the existing ACPI modalias as following.
      
          acpi:<HID>:<CID1>:<CID2>:..:<CIDn>:<bbsspp>:
      E.g:
          # cat /sys/devices/platform/AMDI0600:00/modalias
          acpi:AMDI0600:010601:
      
      where bb is th base-class code, ss is te sub-class code, and pp is the
      programming interface code
      
      Since there would not be _HID/_CID in the ACPI matching table of the driver,
      this patch adds a field to acpi_device_id to specify the matching _CLS.
      
          static const struct acpi_device_id ahci_acpi_match[] = {
              { ACPI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff) },
              {},
          };
      
      In this case, the corresponded entry in modules.alias file would be:
      
          alias acpi*:010601:* ahci_platform
      Acked-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: NHanjun Guo <hanjun.guo@linaro.org>
      Signed-off-by: NSuravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      26095a01
    • U
      PM / hibernate: clarify resume documentation · b51f9b10
      Uwe Geuder 提交于
      it was not the whole truth that kernel mode cannot be used with swap on LVM
      Signed-off-by: NUwe Geuder <linuxkernel2015-ugeuder@snkmail.com>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b51f9b10
    • G
      PM / Domains: Avoid infinite loops in attach/detach code · 93af5e93
      Geert Uytterhoeven 提交于
      If pm_genpd_{add,remove}_device() keeps on failing with -EAGAIN, we end
      up with an infinite loop in genpd_dev_pm_{at,de}tach().
      
      This may happen due to a genpd.prepared_count imbalance.  This is a bug
      elsewhere, but it will result in a system lock up, possibly during
      reboot of an otherwise functioning system.
      
      To avoid this, put a limit on the maximum number of loop iterations,
      using an exponential back-off mechanism.  If the limit is reached, the
      operation will just fail.  An error message is already printed.
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      93af5e93
    • R
      ACPI / LPSS: Fix up acpi_lpss_create_device() · d3e13ff3
      Rafael J. Wysocki 提交于
      Fix a return value (which should be a negative error code) and a
      memory leak (the list allocated by acpi_dev_get_resources() needs
      to be freed on ioremap() errors too) in acpi_lpss_create_device()
      introduced by commit 4483d59e 'ACPI / LPSS: check the result
      of ioremap()'.
      
      Fixes: 4483d59e 'ACPI / LPSS: check the result of ioremap()'
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Cc: 4.0+ <stable@vger.kernel.org> # 4.0+
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d3e13ff3
    • R
      ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage · 0294112e
      Rafael J. Wysocki 提交于
      This effectively reverts the following three commits:
      
       7bc10388 ACPI / resources: free memory on error in add_region_before()
       0f1b414d ACPI / PNP: Avoid conflicting resource reservations
       b9a5e5e1 ACPI / init: Fix the ordering of acpi_reserve_resources()
      
      (commit b9a5e5e1 introduced regressions some of which, but not
      all, were addressed by commit 0f1b414d and commit 7bc10388
      was a fixup on top of the latter) and causes ACPI fixed hardware
      resources to be reserved at the fs_initcall_sync stage of system
      initialization.
      
      The story is as follows.  First, a boot regression was reported due
      to an apparent resource reservation ordering change after a commit
      that shouldn't lead to such changes.  Investigation led to the
      conclusion that the problem happened because acpi_reserve_resources()
      was executed at the device_initcall() stage of system initialization
      which wasn't strictly ordered with respect to driver initialization
      (and with respect to the initialization of the pcieport driver in
      particular), so a random change causing the device initcalls to be
      run in a different order might break things.
      
      The response to that was to attempt to run acpi_reserve_resources()
      as soon as we knew that ACPI would be in use (commit b9a5e5e1).
      However, that turned out to be too early, because it caused resource
      reservations made by the PNP system driver to fail on at least one
      system and that failure was addressed by commit 0f1b414d.
      
      That fix still turned out to be insufficient, though, because
      calling acpi_reserve_resources() before the fs_initcall stage of
      system initialization caused a boot regression to happen on the
      eCAFE EC-800-H20G/S netbook.  That meant that we only could call
      acpi_reserve_resources() at the fs_initcall initialization stage
      or later, but then we might just as well call it after the PNP
      initalization in which case commit 0f1b414d wouldn't be
      necessary any more.
      
      For this reason, the changes made by commit 0f1b414d are reverted
      (along with a memory leak fixup on top of that commit), the changes
      made by commit b9a5e5e1 that went too far are reverted too and
      acpi_reserve_resources() is changed into fs_initcall_sync, which
      will cause it to be executed after the PNP subsystem initialization
      (which is an fs_initcall) and before device initcalls (including
      the pcieport driver initialization) which should avoid the initial
      issue.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=100581
      Link: http://marc.info/?t=143092384600002&r=1&w=2
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=99831
      Link: http://marc.info/?t=143389402600001&r=1&w=2
      Fixes: b9a5e5e1 "ACPI / init: Fix the ordering of acpi_reserve_resources()"
      Reported-by: NRoland Dreier <roland@purestorage.com>
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0294112e
  3. 06 7月, 2015 2 次提交
    • L
      Linux 4.2-rc1 · d770e558
      Linus Torvalds 提交于
      d770e558
    • L
      Merge tag 'platform-drivers-x86-v4.2-2' of... · a585d2b7
      Linus Torvalds 提交于
      Merge tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull late x86 platform driver updates from Darren Hart:
       "The following came in a bit later and I wanted them to bake in next a
        few more days before submitting, thus the second pull.
      
        A new intel_pmc_ipc driver, a symmetrical allocation and free fix in
        dell-laptop, a couple minor fixes, and some updated documentation in
        the dell-laptop comments.
      
        intel_pmc_ipc:
         - Add Intel Apollo Lake PMC IPC driver
      
        tc1100-wmi:
         - Delete an unnecessary check before the function call "kfree"
      
        dell-laptop:
         - Fix allocating & freeing SMI buffer page
         - Show info about WiGig and UWB in debugfs
         - Update information about wireless control"
      
      * tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver
        tc1100-wmi: Delete an unnecessary check before the function call "kfree"
        dell-laptop: Fix allocating & freeing SMI buffer page
        dell-laptop: Show info about WiGig and UWB in debugfs
        dell-laptop: Update information about wireless control
      a585d2b7
  4. 05 7月, 2015 28 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1dc51b82
      Linus Torvalds 提交于
      Pull more vfs updates from Al Viro:
       "Assorted VFS fixes and related cleanups (IMO the most interesting in
        that part are f_path-related things and Eric's descriptor-related
        stuff).  UFS regression fixes (it got broken last cycle).  9P fixes.
        fs-cache series, DAX patches, Jan's file_remove_suid() work"
      
      [ I'd say this is much more than "fixes and related cleanups".  The
        file_table locking rule change by Eric Dumazet is a rather big and
        fundamental update even if the patch isn't huge.   - Linus ]
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits)
        9p: cope with bogus responses from server in p9_client_{read,write}
        p9_client_write(): avoid double p9_free_req()
        9p: forgetting to cancel request on interrupted zero-copy RPC
        dax: bdev_direct_access() may sleep
        block: Add support for DAX reads/writes to block devices
        dax: Use copy_from_iter_nocache
        dax: Add block size note to documentation
        fs/file.c: __fget() and dup2() atomicity rules
        fs/file.c: don't acquire files->file_lock in fd_install()
        fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation
        vfs: avoid creation of inode number 0 in get_next_ino
        namei: make set_root_rcu() return void
        make simple_positive() public
        ufs: use dir_pages instead of ufs_dir_pages()
        pagemap.h: move dir_pages() over there
        remove the pointless include of lglock.h
        fs: cleanup slight list_entry abuse
        xfs: Correctly lock inode when removing suid and file capabilities
        fs: Call security_ops->inode_killpriv on truncate
        fs: Provide function telling whether file_remove_privs() will do anything
        ...
      1dc51b82
    • L
      bluetooth: fix list handling · 9b284cbd
      Linus Torvalds 提交于
      Commit 835a6a2f ("Bluetooth: Stop sabotaging list poisoning")
      thought that the code was sabotaging the list poisoning when NULL'ing
      out the list pointers and removed it.
      
      But what was going on was that the bluetooth code was using NULL
      pointers for the list as a way to mark it empty, and that commit just
      broke it (and replaced the test with NULL with a "list_empty()" test on
      a uninitialized list instead, breaking things even further).
      
      So fix it all up to use the regular and real list_empty() handling
      (which does not use NULL, but a pointer to itself), also making sure to
      initialize the list properly (the previous NULL case was initialized
      implicitly by the session being allocated with kzalloc())
      
      This is a combination of patches by Marcel Holtmann and Tedd Ho-Jeong
      An.
      
      [ I would normally expect to get this through the bt tree, but I'm going
        to release -rc1, so I'm just committing this directly   - Linus ]
      Reported-and-tested-by: NJörg Otte <jrg.otte@gmail.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Original-by: NTedd Ho-Jeong An <tedd.an@intel.com>
      Original-by: Marcel Holtmann <marcel@holtmann.org>:
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9b284cbd
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 5c755fe1
      Linus Torvalds 提交于
      Pull SCSI target updates from Nicholas Bellinger:
       "It's been a busy development cycle for target-core in a number of
        different areas.
      
        The fabric API usage for se_node_acl allocation is now within
        target-core code, dropping the external API callers for all fabric
        drivers tree-wide.
      
        There is a new conversion to RCU hlists for se_node_acl and
        se_portal_group LUN mappings, that turns fast-past LUN lookup into a
        completely lockless code-path.  It also removes the original
        hard-coded limitation of 256 LUNs per fabric endpoint.
      
        The configfs attributes for backends can now be shared between core
        and driver code, allowing existing drivers to use common code while
        still allowing flexibility for new backend provided attributes.
      
        The highlights include:
      
         - Merge sbc_verify_dif_* into common code (sagi)
         - Remove iscsi-target support for obsolete IFMarker/OFMarker
           (Christophe Vu-Brugier)
         - Add bidi support in target/user backend (ilias + vangelis + agover)
         - Move se_node_acl allocation into target-core code (hch)
         - Add crc_t10dif_update common helper (akinobu + mkp)
         - Handle target-core odd SGL mapping for data transfer memory
           (akinobu)
         - Move transport ID handling into target-core (hch)
         - Move task tag into struct se_cmd + support 64-bit tags (bart)
         - Convert se_node_acl->device_list[] to RCU hlist (nab + hch +
           paulmck)
         - Convert se_portal_group->tpg_lun_list[] to RCU hlist (nab + hch +
           paulmck)
         - Simplify target backend driver registration (hch)
         - Consolidate + simplify target backend attribute implementations
           (hch + nab)
         - Subsume se_port + t10_alua_tg_pt_gp_member into se_lun (hch)
         - Drop lun_sep_lock for se_lun->lun_se_dev RCU usage (hch + nab)
         - Drop unnecessary core_tpg_register TFO parameter (nab)
         - Use 64-bit LUNs tree-wide (hannes)
         - Drop left-over TARGET_MAX_LUNS_PER_TRANSPORT limit (hannes)"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (76 commits)
        target: Bump core version to v5.0
        target: remove target_core_configfs.h
        target: remove unused TARGET_CORE_CONFIG_ROOT define
        target: consolidate version defines
        target: implement WRITE_SAME with UNMAP bit using ->execute_unmap
        target: simplify UNMAP handling
        target: replace se_cmd->execute_rw with a protocol_data field
        target/user: Fix inconsistent kmap_atomic/kunmap_atomic
        target: Send UA when changing LUN inventory
        target: Send UA upon LUN RESET tmr completion
        target: Send UA on ALUA target port group change
        target: Convert se_lun->lun_deve_lock to normal spinlock
        target: use 'se_dev_entry' when allocating UAs
        target: Remove 'ua_nacl' pointer from se_ua structure
        target_core_alua: Correct UA handling when switching states
        xen-scsiback: Fix compile warning for 64-bit LUN
        target: Remove TARGET_MAX_LUNS_PER_TRANSPORT
        target: use 64-bit LUNs
        target: Drop duplicate + unused se_dev_check_wce
        target: Drop unnecessary core_tpg_register TFO parameter
        ...
      5c755fe1
    • L
      Merge tag 'ntb-4.2' of git://github.com/jonmason/ntb · 6d7c8e1b
      Linus Torvalds 提交于
      Pull NTB updates from Jon Mason:
       "This includes a pretty significant reworking of the NTB core code, but
        has already produced some significant performance improvements.
      
        An abstraction layer was added to allow the hardware and clients to be
        easily added.  This required rewriting the NTB transport layer for
        this abstraction layer.  This modification will allow future "high
        performance" NTB clients.
      
        In addition to this change, a number of performance modifications were
        added.  These changes include NUMA enablement, using CPU memcpy
        instead of asyncdma, and modification of NTB layer MTU size"
      
      * tag 'ntb-4.2' of git://github.com/jonmason/ntb: (22 commits)
        NTB: Add split BAR output for debugfs stats
        NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe
        NTB: Print driver name and version in module init
        NTB: Increase transport MTU to 64k from 16k
        NTB: Rename Intel code names to platform names
        NTB: Default to CPU memcpy for performance
        NTB: Improve performance with write combining
        NTB: Use NUMA memory in Intel driver
        NTB: Use NUMA memory and DMA chan in transport
        NTB: Rate limit ntb_qp_link_work
        NTB: Add tool test client
        NTB: Add ping pong test client
        NTB: Add parameters for Intel SNB B2B addresses
        NTB: Reset transport QP link stats on down
        NTB: Do not advance transport RX on link down
        NTB: Differentiate transport link down messages
        NTB: Check the device ID to set errata flags
        NTB: Enable link for Intel root port mode in probe
        NTB: Read peer info from local SPAD in transport
        NTB: Split ntb_hw_intel and ntb_transport drivers
        ...
      6d7c8e1b
    • A
      9p: cope with bogus responses from server in p9_client_{read,write} · 0f1db7de
      Al Viro 提交于
      if server claims to have written/read more than we'd told it to,
      warn and cap the claimed byte count to avoid advancing more than
      we are ready to.
      0f1db7de
    • A
      p9_client_write(): avoid double p9_free_req() · 67e808fb
      Al Viro 提交于
      Braino in "9p: switch p9_client_write() to passing it struct iov_iter *";
      if response is impossible to parse and we discard the request, get the
      out of the loop right there.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      67e808fb
    • A
      9p: forgetting to cancel request on interrupted zero-copy RPC · a84b69cb
      Al Viro 提交于
      If we'd already sent a request and decide to abort it, we *must*
      issue TFLUSH properly and not just blindly reuse the tag, or
      we'll get seriously screwed when response eventually arrives
      and we confuse it for response to later request that had reused
      the same tag.
      
      Cc: stable@vger.kernel.org # v3.2 and later
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a84b69cb
    • M
      dax: bdev_direct_access() may sleep · 43c3dd08
      Matthew Wilcox 提交于
      The brd driver is the only in-tree driver that may sleep currently.
      After some discussion on linux-fsdevel, we decided that any driver
      may choose to sleep in its ->direct_access method.  To ensure that all
      callers of bdev_direct_access() are prepared for this, add a call
      to might_sleep().
      Signed-off-by: NMatthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      43c3dd08
    • M
      block: Add support for DAX reads/writes to block devices · bbab37dd
      Matthew Wilcox 提交于
      If a block device supports the ->direct_access methods, bypass the normal
      DIO path and use DAX to go straight to memcpy() instead of allocating
      a DIO and a BIO.
      
      Includes support for the DIO_SKIP_DIO_COUNT flag in DAX, as is done in
      do_blockdev_direct_IO().
      Signed-off-by: NMatthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      bbab37dd
    • M
      dax: Use copy_from_iter_nocache · 872eb127
      Matthew Wilcox 提交于
      When userspace does a write, there's no need for the written data to
      pollute the CPU cache.  This matches the original XIP code.
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      872eb127
    • M
      dax: Add block size note to documentation · 44f4c054
      Matthew Wilcox 提交于
      For block devices which are small enough, mkfs will default to creating
      a filesystem with block sizes smaller than page size.
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      44f4c054
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 1b3618b6
      Linus Torvalds 提交于
      Pull kvm fixes from Paolo Bonzini:
       "Except for the preempt notifiers fix, these are all small bugfixes
        that could have been waited for -rc2.  Sending them now since I was
        taking care of Peter's patch anyway"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: add hyper-v crash msrs values
        KVM: x86: remove data variable from kvm_get_msr_common
        KVM: s390: virtio-ccw: don't overwrite config space values
        KVM: x86: keep track of LVT0 changes under APICv
        KVM: x86: properly restore LVT0
        KVM: x86: make vapics_in_nmi_mode atomic
        sched, preempt_notifier: separate notifier registration from static_key inc/dec
      1b3618b6
    • D
      NTB: Add split BAR output for debugfs stats · bf44fe46
      Dave Jiang 提交于
      When split BAR is enabled, the driver needs to dump out the split BAR
      registers rather than the original 64bit BAR registers.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      bf44fe46
    • D
      NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe · fd839bf8
      Dave Jiang 提交于
      The unsafe doorbell and scratchpad access should display reason when
      WARN is called.  Otherwise we get a stack dump without any explanation.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      fd839bf8
    • D
      NTB: Print driver name and version in module init · 7eb38781
      Dave Jiang 提交于
      Printouts driver name and version to indicate what is being loaded.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      7eb38781
    • D
      NTB: Increase transport MTU to 64k from 16k · 9891417d
      Dave Jiang 提交于
      Benchmarking showed a significant performance increase with the MTU size
      to 64k instead of 16k.  Change the driver default to 64k.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      9891417d
    • D
      NTB: Rename Intel code names to platform names · 2f887b9a
      Dave Jiang 提交于
      Instead of using the platform code names, use the correct platform names
      to identify the respective Intel NTB hardware.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      2f887b9a
    • D
      NTB: Default to CPU memcpy for performance · a41ef053
      Dave Jiang 提交于
      Disable DMA usage by default, since the CPU provides much better
      performance with write combining.  Provide a module parameter to enable
      DMA usage when offloading the memcpy is preferred.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      a41ef053
    • D
      NTB: Improve performance with write combining · 06917f75
      Dave Jiang 提交于
      Changing the memory window BAR mappings to write combining significantly
      boosts the performance.  We will also use memcpy that uses non-temporal
      store, which showed performance improvement when doing non-cached
      memcpys.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      06917f75
    • A
      NTB: Use NUMA memory in Intel driver · 0e041fb5
      Allen Hubbe 提交于
      Allocate memory for the NUMA node of the NTB device.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      0e041fb5
    • A
      NTB: Use NUMA memory and DMA chan in transport · 1199aa61
      Allen Hubbe 提交于
      Allocate memory and request the DMA channel for the same NUMA node as
      the NTB device.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      1199aa61
    • A
      NTB: Rate limit ntb_qp_link_work · 28762289
      Allen Hubbe 提交于
      When the ntb transport is connecting and waiting for the peer, the debug
      console receives lots of debug level messages about the remote qp link
      status being down.  Rate limit those messages.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      28762289
    • A
      NTB: Add tool test client · 578b881b
      Allen Hubbe 提交于
      This is a simple debugging driver that enables the doorbell and
      scratch pad registers to be read and written from the debugfs.  This
      tool enables more complicated debugging to be scripted from user space.
      This driver may be used to test that your ntb hardware and drivers are
      functioning at a basic level.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      578b881b
    • A
      NTB: Add ping pong test client · 963de473
      Allen Hubbe 提交于
      This is a simple ping pong driver that exercises the scratch pads and
      doorbells of the ntb hardware.  This driver may be used to test that
      your ntb hardware and drivers are functioning at a basic level.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      963de473
    • A
      NTB: Add parameters for Intel SNB B2B addresses · 42fefc86
      Allen Hubbe 提交于
      Add module parameters for the addresses to be used in B2B topology.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      42fefc86
    • A
      NTB: Reset transport QP link stats on down · 2849b5d7
      Allen Hubbe 提交于
      Reset the link stats when the link goes down.  In particular, the TX and
      RX index and count must be reset, or else the TX side will be sending
      packets to the RX side where the RX side is not expecting them.  Reset
      all the stats, to be consistent.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      2849b5d7
    • A
      NTB: Do not advance transport RX on link down · c0900b33
      Allen Hubbe 提交于
      On link down, don't advance RX index to the next entry.  The next entry
      should never be valid after receiving the link down flag.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      c0900b33
    • A
      NTB: Differentiate transport link down messages · e22e0b9d
      Allen Hubbe 提交于
      The same message "qp %d: Link Down\n" was printed at two locations in
      ntb_transport.  Change the messages so they are distinct.
      Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: NJon Mason <jdmason@kudzu.us>
      e22e0b9d