VIA Conformance and Capabilities

VIA Conformance

The Intel Virtual Interface Architecture Developer's Guide describes three levels of conformance to the VIPL (VI Provider Library) API: Early Adopter; Functional; and Full conformance.

The Intel VI Architecture Conformance Suite tests an implementation's conformance to the VIPL API. The conformance suite, consisting of over 130000 lines of code, performs thousands of individual tests grouped into functional categories: 34 for Early Adopter; 134 for Functional Conformance; and 156 for Full Conformance. Basic VIPL semantic compliance, resource management, proper handling of error conditions, invalid inputs, and network stress tests are all included in the conformance suite.

M-VIA passes nearly all of the Early Adopter conformance tests on unreliable networks and includes RDMA Write capability. Reliable Delivery is planned. Let us know if you need Reliable Reception.

M-VIA almost achieves Functional Conformance and includes asynchronous error handling, remote disconnect notification, Protection Tag support, and completion queue resizing. The only missing functionality is peer-to-peer connection management.

There is also support for the additional functions provided at the Full Conformance level, including the Notify functions.

Thread Safety

M-VIA is pthreads compatible, enabling the development of multi-threaded user applications. Operations performed within a multi-threaded application on different VIs or CQs are inherently thread safe, but an application must currently provide its own explicit locks if multiple threads access a single VI or CQ. A fully thread safe VIPL is planned.

Intel VI Architecture Conformance Suite Report

M-VIA passes 112 of the 134 Functional Conformance tests (plus 18 of the additional tests for Full Conformance) included in the Intel VI Architecture Conformance Suite Version 0.5. Nearly all the tests which M-VIA does not pass either contain bugs or calls to the peer-to-peer connection management routines. Details on the other failed tests are given below.

Passed Tests

The following is a summary report from the Intel VI Architecture Conformance Suite Version 0.5. The tests which M-VIA does not pass (or have bugs) were excluded from the test run.

P	Pass
F	Fail
 V	Requires additional manual verification of result
U	Unknown result code
N	No results found in test directory
E	Error (no such test directory)

P	tests/basic/InterfaceEA
P	tests/basic/CQWaitTO
P	tests/basic/CQreverse
P	tests/basic/CSDiscriminator
P	tests/basic/ConnectAcceptTO
P	tests/basic/ConnectReject
P	tests/basic/ConnectRequestINF
P	tests/basic/ConnectRequestTO
P	tests/basic/ConnectWaitTO
P	tests/basic/CreateCQ
P	tests/basic/CreateVi
PV	tests/basic/NSGet
PV	tests/basic/QueryNic
P	tests/basic/RdmaWrite
P	tests/basic/RecvCQNotify
P	tests/basic/RecvDS
P	tests/basic/RecvDSzero
P	tests/basic/RecvImmed
P	tests/basic/RecvNone
P	tests/basic/RecvNotify
P	tests/basic/RecvWaitTO
P	tests/basic/RegisterMem
P	tests/basic/RegisterMemOverlap
P	tests/basic/SendCQNotify
P	tests/basic/SendDS
P	tests/basic/SendDSzero
P	tests/basic/SendNone
P	tests/basic/SendNotify
P	tests/basic/SendRecv
P	tests/basic/SendRecvCQ
P	tests/basic/SendSelf
P	tests/basic/SetMemAttr
P	tests/basic/SetViAttrib
P	tests/basic/WriteDS
P	tests/basic/WriteDSzero
P	tests/basic/WriteSelf
PV	tests/error/CQDoneHanErr
PV	tests/error/CQNotifyHanErr
PV	tests/error/CQWaitHanErr
PV	tests/error/CloseNicErr
P	tests/error/ConnAccept1
PV	tests/error/ConnAccept2
P	tests/error/ConnAccept3
PV	tests/error/ConnAccept4
PV	tests/error/ConnAcceptCHanErr
PV	tests/error/ConnAcceptViHanErr
PV	tests/error/ConnRejectCHanErr
PV	tests/error/ConnectRequestErr
PV	tests/error/ConnectWaitErr
PV	tests/error/CreateCQErr
PV	tests/error/CreatePtagErr
P	tests/error/CreateViAttribErr
PV	tests/error/CreateViErr
PV	tests/error/DeregisterMemErr
PV	tests/error/DestroyCQErr
PV	tests/error/DestroyPtagErr
P	tests/error/DestroyPtagUseErr
P	tests/error/DestroyViDescErr
PV	tests/error/DestroyViParamErr
PV	tests/error/DisconnectErr
PV	tests/error/ErrorCallbackErr
PV	tests/error/NSAddrParamErr
P	tests/error/NSAddrSvcErr
PV	tests/error/NSInitErr
PV	tests/error/NSNameParamErr
P	tests/error/NSNameSvcErr
PV	tests/error/NSShutdownErr
P	tests/error/OpenNicErr
PV	tests/error/PostRecvErr
PV	tests/error/PostSendErr
PV	tests/error/QueryMemErr
PV	tests/error/QueryNicErr
PV	tests/error/QueryViErr
PV	tests/error/RecvDoneViHanErr
P	tests/error/RecvNotifyCQErr
PV	tests/error/RecvNotifyViHanErr
P	tests/error/RecvWaitCQErr
PV	tests/error/RecvWaitViHanErr
PV	tests/error/RegisterMemErr
PV	tests/error/ResizeCQErr
PV	tests/error/SendDoneViHanErr
P	tests/error/SendNotifyCQErr
PV	tests/error/SendNotifyViHanErr
PV	tests/error/SendWaitViHanErr
PV	tests/error/SetMemAttrErr
PV	tests/error/SetViAttrErr
P	tests/error/SetViAttrInvErr
P	tests/limit/CreateCQLimit
P	tests/limit/CreateCQOv
P	tests/limit/CreatePtagLimit
P	tests/limit/CreatePtagOv
P	tests/limit/CreateViLimit
P	tests/limit/CreateViOv
PV	tests/limit/OpenNicLimit
P	tests/limit/RegisterMemOv
PV	tests/stress/MultiCQ1
PV	tests/stress/MultiCQ2
PV	tests/stress/MultiCQ3
PV	tests/stress/MultiCQ4
PV	tests/stress/MultiThread1
PV	tests/stress/MultiThread2
PV	tests/stress/MultiThread3
PV	tests/stress/MultiThread4
PV	tests/stress/ResizeCQ
P	tests/async/ErrHCQ1
P	tests/async/ErrHCQ2
PV	tests/async/ErrHDefault
P	tests/async/ErrHRcvForm
P	tests/async/ErrHRcvLen
P	tests/async/ErrHRcvLen2
P	tests/async/ErrHRcvPost2
P	tests/async/ErrHRcvProt
P	tests/async/ErrHRcvProt2
P	tests/async/ErrHRdwForm
P	tests/async/ErrHRdwLen
P	tests/async/ErrHRdwProt1
P	tests/async/ErrHRdwProt2
P	tests/async/ErrHRdwiForm
P	tests/async/ErrHRdwiLen
P	tests/async/ErrHRdwiProt1
P	tests/async/ErrHRdwiProt2
P	tests/async/ErrHRdwiProt3
P	tests/async/ErrHRdwiRcvQEmpty
P	tests/async/ErrHSndForm
P	tests/async/ErrHSndLen
P	tests/async/ErrHSndLen2
PV	tests/async/ErrHSndPost2
P	tests/async/ErrHSndProt1
P	tests/async/ErrHSndProt2
P	tests/async/ErrHSndRcvQEmpty

Passed:          77
Pass+Verify:     53
Failed:          0
Fail+Verify:     0
No results:      0
Unknown results: 0
Errors:          0
Total:           130

Failed Tests

Of the 22 tests for Functional Conformance which M-VIA 1.0 does not pass, 13 contain calls to the unimplemented peer-to-peer connection functions or require a reliability network. Of the remaining 9, most are believed to be due to bugs in the conformance tests. However, there are two failed tests (both at the Early Adopter conformance level) which might be due to bugs in M-VIA:

F	tests/stress/MultiVISend
F	tests/stress/CSconn

These two tests fail even though the 0.9.3 release of M-VIA documented them as passing. However, retesting M-VIA 0.9.3 on our current hardware has not shown these tests to pass.

Identifying and correcting the reasons for these failures is a high priority item with the M-VIA developers. However, we did not feel we should delay this release any longer since these failed tests don't correspond to common application behaviors:

M-VIA 1.0. Fri, 17 Sep 1999 09:13:43 -0700.
Copyright (C) 1998,1999 Berkeley Lab.