07 Sep, 2009

1 commit

  • MADs are UD and can be dropped if there are no receives posted, so
    allow receive queue size to be set with a module parameter in case the
    queue needs to be lengthened. Send side tuning is done for symmetry
    with receive.

    Signed-off-by: Hal Rosenstock
    Signed-off-by: Roland Dreier

    Hal Rosenstock
     

15 Jul, 2008

1 commit


26 Jan, 2008

1 commit

  • To allow ULPs to tune timeout values and capture retry statistics,
    report the number of times that a mad send operation was retried.

    For RMPP mads, report the total number of times that the any portion
    (send window) of the send operation was retried.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     

03 May, 2007

1 commit

  • I noticed that many source files include while they do
    not appear to need it. Here is an attempt to clean it all up.

    In order to find all possibly affected files, I searched for all
    files including but without any other occurence of "pci"
    or "PCI". I removed the include statement from all of these, then I
    compiled an allmodconfig kernel on both i386 and x86_64 and fixed the
    false positives manually.

    My tests covered 66% of the affected files, so there could be false
    positives remaining. Untested files are:

    arch/alpha/kernel/err_common.c
    arch/alpha/kernel/err_ev6.c
    arch/alpha/kernel/err_ev7.c
    arch/ia64/sn/kernel/huberror.c
    arch/ia64/sn/kernel/xpnet.c
    arch/m68knommu/kernel/dma.c
    arch/mips/lib/iomap.c
    arch/powerpc/platforms/pseries/ras.c
    arch/ppc/8260_io/enet.c
    arch/ppc/8260_io/fcc_enet.c
    arch/ppc/8xx_io/enet.c
    arch/ppc/syslib/ppc4xx_sgdma.c
    arch/sh64/mach-cayman/iomap.c
    arch/xtensa/kernel/xtensa_ksyms.c
    arch/xtensa/platform-iss/setup.c
    drivers/i2c/busses/i2c-at91.c
    drivers/i2c/busses/i2c-mpc.c
    drivers/media/video/saa711x.c
    drivers/misc/hdpuftrs/hdpu_cpustate.c
    drivers/misc/hdpuftrs/hdpu_nexus.c
    drivers/net/au1000_eth.c
    drivers/net/fec_8xx/fec_main.c
    drivers/net/fec_8xx/fec_mii.c
    drivers/net/fs_enet/fs_enet-main.c
    drivers/net/fs_enet/mac-fcc.c
    drivers/net/fs_enet/mac-fec.c
    drivers/net/fs_enet/mac-scc.c
    drivers/net/fs_enet/mii-bitbang.c
    drivers/net/fs_enet/mii-fec.c
    drivers/net/ibm_emac/ibm_emac_core.c
    drivers/net/lasi_82596.c
    drivers/parisc/hppb.c
    drivers/sbus/sbus.c
    drivers/video/g364fb.c
    drivers/video/platinumfb.c
    drivers/video/stifb.c
    drivers/video/valkyriefb.c
    include/asm-arm/arch-ixp4xx/dma.h
    sound/oss/au1550_ac97.c

    I would welcome test reports for these files. I am fine with removing
    the untested files from the patch if the general opinion is that these
    changes aren't safe. The tested part would still be nice to have.

    Note that this patch depends on another header fixup patch I submitted
    to LKML yesterday:
    [PATCH] scatterlist.h needs types.h
    http://lkml.org/lkml/2007/3/01/141

    Signed-off-by: Jean Delvare
    Cc: Badari Pulavarty
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     

13 Dec, 2006

1 commit


22 Nov, 2006

1 commit


24 Sep, 2006

1 commit


23 Sep, 2006

1 commit

  • The ib_mad module does not use a kthread function, but mad_priv.h
    includes . mad_rmpp.c does not do any DMA-related
    stuff, but includes . Remove the unused includes.

    Signed-off-by: James Lentini
    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    James Lentini
     

18 Jun, 2006

1 commit


13 May, 2006

1 commit

  • Fix race condition during destruction calls to avoid possibility of
    accessing object after it has been freed. Instead of waking up a wait
    queue directly, which is susceptible to a race where the object is
    freed between the reference count going to 0 and the wake_up(), use a
    completion to wait in the function doing the freeing.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     

30 Mar, 2006

1 commit

  • Received responses are currently matched against sent requests based
    on TID only. According to the spec, responses should match based on
    the combination of TID, management class, and requester LID/GID.

    Without the additional qualification, an agent that is responding to
    two requests, both of which have the same TID, can match RMPP ACKs
    with the incorrect transaction. This problem can occur on the SM node
    when responding to SA queries.

    Signed-off-by: Jack Morgenstein
    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Jack Morgenstein
     

21 Mar, 2006

1 commit

  • Add support for sending and receiving large RMPP transfers. The old
    code supports transfers only as large as a single contiguous kernel
    memory allocation. This patch uses linked list of memory buffers when
    sending and receiving data to avoid needing contiguous pages for
    larger transfers.

    Receive side: copy the arriving MADs in chunks instead of coalescing
    to one large buffer in kernel space.

    Send side: split a multipacket MAD buffer to a list of segments,
    (multipacket_list) and send these using a gather list of size 2.
    Also, save pointer to last sent segment, and retrieve requested
    segments by walking list starting at last sent segment. Finally,
    save pointer to last-acked segment. When retrying, retrieve
    segments for resending relative to this pointer. When updating last
    ack, start at this pointer.

    Signed-off-by: Jack Morgenstein
    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Jack Morgenstein
     

26 Oct, 2005

1 commit

  • The MAD layer was violating the DMA API by touching data buffers used
    for sends after the DMA mapping was done. This causes problems on
    non-cache-coherent architectures, because the device doing DMA won't
    see updates to the payload buffers that exist only in the CPU cache.

    Fix this by having all MAD consumers use ib_create_send_mad() to
    allocate their send buffers, and moving the DMA mapping into the MAD
    layer so it can be done just before calling send (and after any
    modifications of the send buffer by the MAD layer).

    Tested on a non-cache-coherent PowerPC 440SPe system.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     

27 Aug, 2005

2 commits


28 Jul, 2005

5 commits

  • Add RMPP implementation.

    Signed-off-by: Sean Hefty
    Signed-off-by: Hal Rosenstock
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hal Rosenstock
     
  • Add new MAD layer call to modify (ib_modify_mad) the timeout of a sent MAD,
    and simplify cancel code.

    Signed-off-by: Sean Hefty
    Signed-off-by: Hal Rosenstock
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hal Rosenstock
     
  • Add automatic retries to MAD layer.

    Signed-off-by: Sean Hefty
    Signed-off-by: Hal Rosenstock
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hal Rosenstock
     
  • Fixes an issue processing a sent MAD after it has timed out or been canceled.
    The race occurs when a response MAD matches with the send request. The
    request could time out or be canceled after the response MAD matches with the
    request, but before the request completion can be processed.

    Signed-off-by: Sean Hefty
    Signed-off-by: Hal Rosenstock
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hal Rosenstock
     
  • Have ib_mad_send_wr_private reference the private agent structure directly,
    rather than the exposed agent definition. Remove unneeded parameters to
    functions and simplify code were possible from this change.

    Signed-off-by: Sean Hefty
    Signed-off-by: Hal Rosenstock
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hal Rosenstock
     

17 Apr, 2005

2 commits

  • Replace the *wc field in ib_mad_recv_wc from pointing to a structure on the
    stack to one allocated with the received MAD buffer. This allows a client to
    access the *wc field after their receive completion handler has returned.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sean Hefty
     
  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds