Whamcloud - gitweb
* Cray compatibility fixes.
authoreeb <eeb>
Fri, 30 Jan 2004 23:43:14 +0000 (23:43 +0000)
committereeb <eeb>
Fri, 30 Jan 2004 23:43:14 +0000 (23:43 +0000)
commitbc38b45677aed4f883e1d1bc5ccd0dd213c7ba92
tree2ee5cc0b6f9828a0a8d46ab46e34f7013f0dd47c
parent7e7cba1e8b9a45905a0034bb551d9a31266311df
*  Cray compatibility fixes.

   - Added #if CRAY_PORTALS for compiling against cray portals.

   - PTLRPC_MTU, PTLRPC_MAX_IOV derived from PTL_MTU, PTL_MAX_IOV if
     defined.

   - PTLRPC_MAX_BRW_PAGES, PTLRPC_MAX_IOV defined consistently from
     PTLRPC_MTU, PTLRPC_MAX_IOV, and are the constants used by the OSC.

   - Changed bulk descriptors to merge contiguous fragments.  Bulk I/O only
     uses iovs/kiovs if # frags > 1.

     If compiling with cray kernel portals, PTL_MD_PHYS is expected to be
     defined and bulk descriptors contain struct iovec with physical
     addresses.  NB. Cray requested this method, rather than the ptl_kiov_t
     our portals uses.  If they can't use physical addresses (we can always
     turn PTLRPC_MAX_BRW_PAGES down to 1 until they can handle multiple
     frags), we have a problem, since we'll have to re-write the old
     kmap/kunmap code.

   - Added PtlSnprintHandle(char *str, int str_len, ptl_handle_any_t handle)
     to keep handles opaque but provide useful debug messages.

   - Implemented PtlEQPoll(), and PtlEQGet()/PtlEQWait() in terms of it.
     Fixed tcpnal non-busy wait hack by changing nal::yield() to take a
     timeout and do the right locking, and cb_callback() to schedule
     waiting processes.

     Implemented non-busy wait for socknal and qswnal as programming
     examples (we don't actually drain event queues in the kernel) and
     cleaned up tcpnal to only schedule when required.

   - Conformed to the portals spec on...

     . PTL_TIME_FOREVER
     . PTL_EQ_HANDLER_NONE
     . PTL_NI_OK
     . event field names
     . PTL_MD_MAX_SIZE usage

   - Defined PTL_EVENT_XXX_{START,END}.  We don't actually implement START
     events, but rather LASSERT() our callers have disabled them.

   - Added liblustre/cray callback handling.

   - #define PTLRPC_MD_OPTIONS as lustre's MD options.  Includes the "Hello
      Cray portals; lustre calling" flag and disables start events.

   - Removed PTL_MD_AUTO_UNLINK; it's specified in the 'unlink' parameter
     of PtlMDBind/Attach() etc.

*  Other fixes/cleanups

   - Removed 'struct lustre_peer'

   - Added liblustre/tests/.cvsignore

   - Removed PtlNIBarrier() and some cruddy portals globals.

   - Fixed lib_msg_alloc() to allocate ATOMIC if necessary (NB socknal
     never needs ATOMIC here, neither does qswnal if EKC is tuned
     properly).

   - Fixed lib_finalize() to only unlink if the MD was created with
     PTL_UNLINK (lustre always does, so we never noticed this before).

   - Cleaned up our asynchronous PtlMDUnlink()....>PTL_EVENT_UNLINK to
     invalidate the MD handle immediately on the unlink (manual and
     automatic).

   - factored some common code in lib-move.c
lnet/include/lnet/nal.h
lustre/portals/include/portals/nal.h