[ofw] WWG 1-26-10 minutes - WinOF 2.2 release status [PATCH] [IPoIB_NDIS6_CM]
Smith, Stan
stan.smith at intel.com
Wed Feb 3 14:51:57 PST 2010
Tzachi Dar wrote:
> Please use TortoiseSVN to apply the patch.
Thank you Tzachi.
Your patches applied with no problems using TortoiseSVN.
stan.
>
> Thanks
> Tzachi
>
>> -----Original Message-----
>> From: ofw-bounces at lists.openfabrics.org
>> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Smith, Stan
>> Sent: Wednesday, February 03, 2010 7:21 PM
>> To: Alex Naslednikov; ofw at lists.openfabrics.org
>> Subject: Re: [ofw] WWG 1-26-10 minutes - WinOF 2.2 release
>> status [PATCH] [IPoIB_NDIS6_CM]
>>
>>
>> Patches do not correctly apply against
>> trunk\ulp\ipoib_ndis6_cm or branches\WOF2-2\ulp\ipoib_ndis6_cm.
>> I tried applying patches by hand and things got UGLY very quickly.
>>
>> Please supply patches generated against
>> trunk\ulp\ipoib_ndis6_cm\ ASAP as today is my last day at
>> work until 2/15.
>>
>> thank you,
>>
>> Stan.
>>
>> Alex Naslednikov wrote:
>>> Stan,
>>> The patch was revisited.
>>> For your covnenience, I am resending it again with the new changes.
>>> In spite of the fact that the patch was tested with WHQL NDIS 6.5
>>> MPE test, I highly recommend to run independent test cycle.
>>>
>>> Index:
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cp
>>> p
>> ===================================================================
>>> ---
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_ad
>> apter.cpp
>>> (revision 5504) +++
>>>
>>>
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cp
>>> p (revision 5529) @@ -392,6 +392,13 @@
>>> p_adapter->p_ifc->get_err_str( status )) ); return status; } + + +
>>> IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT, +
>>> ("Shutter Init, state = %d\n", p_adapter->ipoib_state) ); +
>>> IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV, +
>>> ("Shutter Init, state = %d\n", p_adapter->ipoib_state) ); +
>>> shutter_init( &p_adapter->recv_shutter );
>>>
>>> IPOIB_EXIT( IPOIB_DBG_INIT );
>>> return status;
>>> Index:
>>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
>>> ===================================================================
>>> ---
>>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
>>> (revision 5504) +++
>>>
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
>>> (revision 5529) @@ -824,7 +824,21 @@ IPOIB_PRINT( TRACE_LEVEL_ERROR,
>>> IPOIB_DBG_OBJ, ("ref type %d ref_cnt %d\n", ref_init,
>>> p_port->obj.ref_cnt) ); #endif - + // The port is started as
>>> paused and NDIS calls latter to ipoib_restart. We + // shut the
>>> recv_shuter for now and alive it on ipoib_restart. + // +
>>> + if ( p_adapter->ipoib_state == IPOIB_INIT) {
>>> + IPOIB_PRINT( TRACE_LEVEL_INFORMATION,
>>> IPOIB_DBG_RECV, + ("Shutter shut, state = %d\n",
>>> p_adapter->ipoib_state)); + shutter_shut (
>>> &p_adapter->recv_shutter ); + }
>>> + else {
>>> + IPOIB_PRINT( TRACE_LEVEL_WARNING, IPOIB_DBG_RECV,
>>> + ("*****Shutter wasn't shut, state = %d*****\n",
>>> p_adapter->ipoib_state)); + }
>>> IPOIB_EXIT( IPOIB_DBG_INIT );
>>> return IB_SUCCESS;
>>> }
>>> @@ -1843,45 +1857,28 @@
>>> return p_port->p_adapter->params.rq_low_watermark -
>>> p_port->recv_mgr.depth; }
>>>
>>> -void
>>> -ipoib_return_net_buffer_list(
>>> - IN NDIS_HANDLE adapter_context,
>>> - IN NET_BUFFER_LIST
>>> *p_net_buffer_lists,
>>> - IN ULONG
>>> return_flags) +inline ULONG __free_received_NBL (
>>> + IN ipoib_port_t *p_port,
>>> + IN NET_BUFFER_LIST *p_net_buffer_lists + )
>>> {
>>> - ipoib_port_t *p_port;
>>> +
>>> ipoib_recv_desc_t *p_desc;
>>> - NET_BUFFER_LIST
>>> *cur_net_buffer_list,*next_net_buffer_list;
>>> - int32_t shortage;
>>> + NET_BUFFER_LIST *cur_net_buffer_list,
>>> *next_net_buffer_list; + LONG
>>> NBL_cnt = 0; +
>>>
>>> - PERF_DECLARE( ReturnPacket );
>>> - PERF_DECLARE( ReturnPutRecv );
>>> - PERF_DECLARE( ReturnRepostRecv );
>>> - PERF_DECLARE( ReturnPreparePkt );
>>> - PERF_DECLARE( ReturnNdisIndicate );
>>> -
>>> - IPOIB_ENTER( IPOIB_DBG_RECV );
>>> -
>>> - UNUSED_PARAM( return_flags );
>>> -
>>> - p_port = ((ipoib_adapter_t*)adapter_context)->p_port;
>>> - CL_ASSERT( p_net_buffer_lists );
>>> -
>>> - cl_perf_start( ReturnPacket );
>>> - cl_spinlock_acquire( &p_port->recv_lock );
>>> for (cur_net_buffer_list = p_net_buffer_lists;
>>> cur_net_buffer_list != NULL;
>>> cur_net_buffer_list = next_net_buffer_list)
>>> { + ++NBL_cnt;
>>> next_net_buffer_list =
>>> NET_BUFFER_LIST_NEXT_NBL(cur_net_buffer_list);
>>>
>>> /* Get the port and descriptor from the
>>> NET_BUFFER_LIST. */ CL_ASSERT(p_port ==
>>> IPOIB_PORT_FROM_NBL( cur_net_buffer_list )); p_desc
>>> = IPOIB_RECV_FROM_NBL( cur_net_buffer_list ); -
>>>
>>> - //TODO: NDIS60, rewrite this block
>>> -
>>> #if 0 //TODO CM flow
>>> if( p_desc->type == PKT_TYPE_CM_UCAST )
>>> { @@ -1916,9 +1913,44 @@
>>> __buf_mgr_put_recv( p_port, p_desc,
>>> cur_net_buffer_list ); cl_perf_stop(
>>> &p_port->p_adapter->perf, ReturnPutRecv ); } + return
>>> NBL_cnt; +}
>>>
>>> +void
>>> +ipoib_return_net_buffer_list(
>>> + IN NDIS_HANDLE
>>> adapter_context, + IN NET_BUFFER_LIST
>>> *p_net_buffer_lists, +
>>> IN ULONG
>>> return_flags) +{ + ipoib_port_t *p_port;
>>> + int32_t shortage;
>>> + LONG NBL_cnt = 0; +
>>> + PERF_DECLARE( ReturnPacket );
>>> + PERF_DECLARE( ReturnPutRecv );
>>> + PERF_DECLARE( ReturnRepostRecv );
>>> + PERF_DECLARE( ReturnPreparePkt );
>>> + PERF_DECLARE( ReturnNdisIndicate );
>>>
>>> + IPOIB_ENTER( IPOIB_DBG_RECV );
>>>
>>> + UNUSED_PARAM( return_flags );
>>> +
>>> + p_port = ((ipoib_adapter_t*)adapter_context)->p_port;
>>> + CL_ASSERT( p_net_buffer_lists );
>>> + if ( !p_port ) {
>>> + ASSERT(p_port);
>>> + IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR,
>>> IPOIB_DBG_ERROR, + ("return_NBL callback
>>> called when port pointer was already cleared\n") ); +
>>> return; + } +
>>> + cl_perf_start( ReturnPacket );
>>> + cl_spinlock_acquire( &p_port->recv_lock );
>>> + NBL_cnt = __free_received_NBL( p_port, p_net_buffer_lists
>>> ); + + shutter_sub( &p_port->p_adapter->recv_shutter,
>>> -NBL_cnt ); + /* Repost buffers to HW */
>>> cl_perf_start( ReturnRepostRecv );
>>> shortage = __recv_mgr_repost( p_port ); @@ -1958,6 +1990,7
>>> @@ cl_qlist_t done_list, bad_list;
>>> size_t i;
>>> ULONG recv_complete_flags = 0;
>>> + BOOLEAN res;
>>>
>>> PERF_DECLARE( RecvCompBundle );
>>> PERF_DECLARE( RecvCb );
>>> @@ -2069,13 +2102,40 @@
>>>
>>> cl_perf_start( RecvNdisIndicate );
>>>
>>> - NdisMIndicateReceiveNetBufferLists(
>>> - p_port->p_adapter->h_adapter,
>>> - p_port->recv_mgr.recv_NBL_array[0],
>>> - NDIS_DEFAULT_PORT_NUMBER,
>>> - NBL_cnt,
>>> - recv_complete_flags);
>>> + if (shortage <= 0) {
>>>
>>> + res = shutter_add(
>>> &p_port->p_adapter->recv_shutter, NBL_cnt ); +
>>> if (res) { +
>>> NdisMIndicateReceiveNetBufferLists( +
>>> p_port->p_adapter->h_adapter, +
>>> p_port->recv_mgr.recv_NBL_array[0], +
>>> NDIS_DEFAULT_PORT_NUMBER, +
>>> NBL_cnt, +
>> recv_complete_flags);
>>> + }
>>> + else {
>>> + __free_received_NBL (p_port,
>>> p_port->recv_mgr.recv_NBL_array[0]); + } +
>>> + } else {
>>> +
>>> + // If shortage >0, we already set the status
>>> to NDIS_RECEIVE_FLAGS_RESOURCES + // That is,
>>> IPoIB driver regain ownership of the NET_BUFFER_LIST structures
>>> immediately + res = shutter_add(
>>> &p_port->p_adapter->recv_shutter, 1 ); + if
>>> (res) { + NdisMIndicateReceiveNetBufferLists( +
>>> p_port->p_adapter->h_adapter, +
>>> p_port->recv_mgr.recv_NBL_array[0], +
>>> NDIS_DEFAULT_PORT_NUMBER, +
>>> NBL_cnt, +
>>> recv_complete_flags); + shutter_sub(
>>> &p_port->p_adapter->recv_shutter, -1 ); + } +
>>> + } +
>>> +
>>> +
>>> cl_perf_stop( &p_port->p_adapter->perf,
>>> RecvNdisIndicate );
>>>
>>> /*
>>> @@ -3243,14 +3303,8 @@
>>> {
>>> cl_list_item_t *p_item;
>>> ipoib_send_NB_SG *s_buf;
>>> - ULONG send_complete_flags = 0;
>>> + ULONG send_complete_flags =
>>> NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL;
>>>
>>> - if (KeGetCurrentIrql() == DISPATCH_LEVEL)
>>> - {
>>> - NDIS_SET_SEND_COMPLETE_FLAG(send_complete_flags,
>>> NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL);
>>> - }
>>> -
>>> - cl_spinlock_acquire( &p_port->send_lock );
>>> /* Complete any pending packets. */
>>> for( p_item = cl_qlist_remove_head(
>>> &p_port->send_mgr.pending_list ); p_item !=
>>> cl_qlist_end( &p_port->send_mgr.pending_list ); @@ -3260,13 +3314,10
>>> @@ ASSERT(s_buf->p_port == p_port);
>>> ASSERT(s_buf->p_nbl);
>>>
>>> -
>>> + //TODO
>>> //__send_complete_net_buffer(s_buf,
>>>
>>> NDIS_STATUS_RESET_IN_PROGRESS,send_complete_flags,TRUE);
>>> __send_complete_net_buffer(s_buf,
>>> NDIS_STATUS_FAILURE,send_complete_flags,TRUE); } - -
>>> - cl_spinlock_release( &p_port->send_lock );
>>>
>>> }
>>>
>>> @@ -3278,7 +3329,9 @@
>>> //Destroy pending list and put all the send buffers back to
>>> pool //The list should be already destroyed at this point
>>> ASSERT(p_port->send_mgr.pending_list.count == 0);
>>> + cl_spinlock_acquire( &p_port->send_lock );
>>> __pending_list_destroy(p_port);
>>> + cl_spinlock_release( &p_port->send_lock );
>>>
>>> // Now, destroy the send pool
>>> cl_qpool_destroy(&p_port->send_mgr.send_pool); @@ -5299,7
>>> +5352,6 @@ //TODO Tzachid: make an assert here to
>>> validate your IRQL ASSERT (KeGetCurrentIrql() ==
>>> DISPATCH_LEVEL); old_irql = DISPATCH_LEVEL;
>>> - NDIS_SET_SEND_COMPLETE_FLAG(send_complete_flags,
>>> NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL); } else {
>>> NDIS_RAISE_IRQL_TO_DISPATCH(&old_irql);
>>> //ASSERT (KeGetCurrentIrql() == PASSIVE_LEVEL); //
>>> Happens @@ -7158,6 +7210,7 @@ * object lock since that is
>>> the order taken when reposting. */
>>> cl_spinlock_acquire( &p_port->recv_lock ); +
>>> cl_spinlock_acquire( &p_port->send_lock ); cl_obj_lock(
>>> &p_port->obj ); p_port->state = IB_QPS_ERROR;
>>>
>>> @@ -7172,6 +7225,7 @@
>>> p_port->ib_mgr.h_query = NULL;
>>> }
>>> cl_obj_unlock( &p_port->obj );
>>> + cl_spinlock_release( &p_port->send_lock );
>>> cl_spinlock_release( &p_port->recv_lock );
>>>
>>> KeWaitForSingleObject(
>>> @@ -7670,10 +7724,10 @@
>>> IPOIB_PRINT_EXIT( TRACE_LEVEL_INFORMATION,
>>> IPOIB_DBG_MCAST ,("Invalid state - Aborting.\n") );
>>> IPOIB_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT
>>> ,("Invalid state - Aborting.\n") );
>>>
>>> - //cl_spinlock_acquire(&p_port->send_lock);
>>> + cl_spinlock_acquire(&p_port->send_lock);
>>> //ipoib_port_resume(p_port , FALSE);
>>> __pending_list_destroy( p_port );
>>> - //cl_spinlock_release(&p_port->send_lock);
>>> + cl_spinlock_release(&p_port->send_lock);
>>> return; }
>>>
>>> Index:
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
>>> ===================================================================
>>> ---
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
>>> (revision 5504) +++
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
>>> (revision 5529) @@ -47,8 +47,10 @@ #include <ip_packet.h> #include
>>> "ip_stats.h" #include "ipoib_stat.h" +#include "shutter.h"
>>>
>>>
>>> +
>>> /*
>>> * Definitions
>>> */
>>> @@ -70,6 +72,7 @@
>>>
>>> typedef enum _ipoib_state
>>> {
>>> + IPOIB_INIT = -1,
>>> IPOIB_PAUSED,
>>> IPOIB_PAUSING,
>>> IPOIB_RUNNING
>>> @@ -238,6 +241,9 @@
>>> ULONG n_send_NBL;
>>> // number of send NBLs, gotten from NDIS ULONG
>>> n_send_NBL_done; // number of send NBLs, completed
>>>
>>> + //
>>> + shutter_t recv_shutter;
>>> +
>>> } ipoib_adapter_t;
>>> /*
>>> * FIELDS
>>> Index:
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
>>> ===================================================================
>>> ---
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
>>> (revision 5504) +++
>>>
>>>
>>>
>> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
>>> (revision 5529) @@ -1865,7 +1865,7 @@
>> ("ipoib_create_adapter returned
>>> status %d.\n", ib_status ) ); return NDIS_STATUS_FAILURE; } -
>>> p_adapter->ipoib_state = IPOIB_PAUSED; +
>>> p_adapter->ipoib_state = IPOIB_INIT;
>>>
>>> status = SetAttributes(p_adapter, h_adapter);
>>> if (status != NDIS_STATUS_SUCCESS) { @@ -3111,13
>>> +3111,12 @@
>>>
>>> CL_ASSERT( adapter_context );
>>> p_adapter = (ipoib_adapter_t*)adapter_context;
>>> - p_port = p_adapter->p_port;
>>>
>>> cl_obj_lock( &p_adapter->obj );
>>> if( p_adapter->ipoib_state == IPOIB_PAUSING ||
>>> p_adapter->ipoib_state == IPOIB_PAUSED) {
>>> - status = NDIS_STATUS_PAUSED; //NDIS_STATUS_PAUSED;
>>> + status = NDIS_STATUS_PAUSED;
>>> IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
>>> ("Got send during PAUSE, complete
>>> with error \n") ); cl_obj_unlock( &p_adapter->obj
>>> ); @@ -3239,9 +3238,21 @@ IN NDIS_HANDLE adapter_context,
>>> IN NDIS_SHUTDOWN_ACTION shutdown_action)
>>> {
>>> - IPOIB_ENTER( IPOIB_DBG_INIT );
>>> - UNUSED_PARAM( adapter_context );
>>> + IPOIB_ENTER( IPOIB_DBG_INIT ) ;
>>> UNUSED_PARAM( shutdown_action );
>>> +
>>> + ipoib_adapter_t *p_adapter = (ipoib_adapter_t *)
>>> adapter_context; + + if (shutdown_action ==
>>> NdisShutdownPowerOff ) { + ASSERT(KeGetCurrentIrql()
>>> == PASSIVE_LEVEL); + // We need to wait only if this
>>> is not a blue screen any way + IPOIB_PRINT(
>>> TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT, +
>>> ("Shutter shut, state = %d\n", p_adapter->ipoib_state)); +
>>> IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV, +
>>> ("Shutter shut, state = %d\n", p_adapter->ipoib_state)); +
>>> shutter_shut ( &p_adapter->recv_shutter ); + } +
>>> IPOIB_EXIT( IPOIB_DBG_INIT );
>>> }
>>>
>>> @@ -3941,13 +3952,15 @@
>>> KeReleaseInStackQueuedSpinLock( &hdl );
>>>
>>> if (p_adapter->p_port) {
>>> - //TODO improve this flow !
>>> - //TODO Be sure we stopped all sends and receives
>>> cl_spinlock_acquire(
>> &p_adapter->p_port->send_lock );
>>> ipoib_port_resume(p_adapter->p_port,FALSE);
>>> cl_spinlock_release(
>> &p_adapter->p_port->send_lock );
>>> }
>>> -
>>> +
>>> + IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV,
>>> + ("Shutter shut, state = %d\n",
>>> p_adapter->ipoib_state)); + shutter_shut (
>>> &p_adapter->recv_shutter ); +
>>> KeAcquireInStackQueuedSpinLock( &g_ipoib.lock, &hdl );
>>> p_adapter->ipoib_state = IPOIB_PAUSED;
>>> KeReleaseInStackQueuedSpinLock( &hdl );
>>> @@ -3978,6 +3991,16 @@
>>> //
>>> // Check to see if we need to change any attributes }
>>> +
>>> + if ( (p_adapter->ipoib_state == IPOIB_PAUSED) ||
>>> (p_adapter->ipoib_state == IPOIB_INIT) ) { +
>>> IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV, +
>>> ("Shutter Alive, ipoib_state = %d\n", p_adapter->ipoib_state)); +
>>> shutter_alive( &p_adapter->recv_shutter ); + } + else {
>>> + IPOIB_PRINT( TRACE_LEVEL_WARNING, IPOIB_DBG_RECV,
>>> + ("*****Shutter Was not \"Alived\", state =
>>> %d*****\n", p_adapter->ipoib_state)); + }
>>>
>>> KeAcquireInStackQueuedSpinLock( &g_ipoib.lock, &hdl );
>>> p_adapter->ipoib_state = IPOIB_RUNNING;
>>>
>>> -----Original Message-----
>>> From: Alex Naslednikov
>>> Sent: Wednesday, January 27, 2010 6:52 PM
>>> To: 'Smith, Stan'; ofw at lists.openfabrics.org
>>> Subject: RE: [ofw] WWG 1-26-10 minutes - WinOF 2.2 release status
>>>
>>> Hi Stan,
>>> I started to test my patch with WHQL tests.
>>> It seems that the original problem was resolved, but I have several
>>> improvements I hope to complete it by tomorrow (28/12/10)
>>>
>>> -----Original Message-----
>>> From: ofw-bounces at lists.openfabrics.org
>>> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Smith, Stan
>>> Sent: Tuesday, January 26, 2010 8:06 PM
>>> To: ofw at lists.openfabrics.org
>>> Subject: [ofw] WWG 1-26-10 minutes - WinOF 2.2 release status
>>>
>>>
>>> Windows Working Group - Tuesday 1/26 9:00AM PST
>>>
>>> Attending:
>>>
>>> Alex Naslednikov - Mellanox
>>> John Russo - Qlogic
>>> Rupert Dance - Lamprey Networks
>>> Stan Smith - Intel
>>>
>>> ===============================================
>>>
>>> WinOF 2.2 Status
>>> ----------------
>>>
>>> Patch 'Release HCA interface when loading of ibal fails' is intended
>>> for trunk only as it's a rare occurrence.
>>>
>>> The IPoIB shutter code addressing IPoIB receiving packets during
>>> shutdown will be included in WinOF 2.2 RC3 as soon as the code is
>>> pushed into the trunk. Alex will make this a priority as the
>>> release of RC3 is waiting on this patch.
>>>
>>> Sean submitted 2.2 patches for the DAPL provider socket-CM &
>>> rdma-CM.
>>>
>>> Stan's testing of RC2 shows no signs of regression.
>>>
>>> Mellanox will engage in more QA testing once RC3 is released.
>>>
>>> IPoIB is tested on Svr 2008 R2 as IPoIB WHQL testing is specifically
>>> targeted for Svr 2008 R2 only.
>>>
>>> ===============================================
>>>
>>> Delineation of OFED version numbers
>>> -----------------------------------
>>>
>>> The WWG (Windows Working Group) has voted to change the OFA Windows
>>> SW release nomenclature from WinOF to 'OpenFabrics Enterprise
>>> Distribution' in order to leverage and strengthen OFA name branding.
>>>
>>> In those situations where the operating environment context is
>>> ambiguous, the Windows version of OFED will be referred to as 'OFED
>>> for Windows'.
>>>
>>> In aligning with the OFED name the question surfaced about how to
>>> delineate OFED release versions and 'if' there should be some
>>> consolidation of OFED SW release cycles between the Linux and
>>> Windows sides of the OFA house.
>>>
>>> The WWG resolved, with no reserve, that the release cycles and
>>> versioning of OFED for Windows remain distinctly separate from the
>>> OFED for Linux release cycles and versioning.
>>>
>>> OpenFabrics Enterprise Distribution for Windows will be formally
>>> announced at the Sonoma'10 conference.
>>>
>>> Changes in the OFED for Windows installer will consist of changing
>>> names WinOF --> OFED. The only functional change will be the
>>> installation path: %ProgramFiles%\WinOF --> %ProgramFiles%\OFED
>>>
>>> At the OFA Sonoma workshop the WWG (and anyone else) will meet
>>> face-2-face to discuss futures.
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> ofw mailing list
>>> ofw at lists.openfabrics.org
>>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
>>
>> _______________________________________________
>> ofw mailing list
>> ofw at lists.openfabrics.org
>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
More information about the ofw
mailing list