From 35ba9489cbc6d32867b222f76e9088091810b09d Mon Sep 17 00:00:00 2001 From: eeb Date: Fri, 30 Jan 2004 23:42:59 +0000 Subject: [PATCH] * 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 --- lustre/liblustre/tests/.cvsignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 lustre/liblustre/tests/.cvsignore diff --git a/lustre/liblustre/tests/.cvsignore b/lustre/liblustre/tests/.cvsignore new file mode 100644 index 0000000..c038ed7 --- /dev/null +++ b/lustre/liblustre/tests/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in \ No newline at end of file -- 1.8.3.1