[openib-general] RE: OpenSM Work

2005-08-04 Thread Eitan Zahavi
Title: RE: OpenSM Work





Hi Hal,


Please see my responses below.


 
  As Mellanox moves to work on OpenIB Gen2 stack, we have assigned Yael
  to work on merging OpenSM 1.8.0 (which released based on gen1) into
  the gen2 stack.
 
 I too am working on small pieces of this.
[EZ] I think it does not make much sense to work in parallel as the changes spans many files. What are the changes you work on?

 
  She has started to work on the merge to ensure that fixes done by you
  and Shahar on the gen2 trunk will not be lost.
 
  The mode of work we suggest is that she will work offline.
 
 Not sure by what you mean by offline here.
[EZ] Offline means she will do the entire merge and then commit. I propose she will commit the changes into a branch and then you can review it and do the merge to the main trunk yourself.

 
  When the merge will be completed a side branch will be opened under:
  https://openib.org/svn/gen2/branches/osm_1_8_0 and will made available
  for review and testing before merge into the main trunk.
 
 I would prefer small patches rather than a large merge if that were
 possible.
[EZ] I am afraid this is impossible due to the large difference in code. The changes affect many files and will require heavy testing to make sure they did not break anything.

The testing will be done at the end of the merge work.
We could however, let her commit small changes - one at a time - but that branch will be useless.


 
  Once all this is done, Yael will work on multiple new features
  including faster route time, PKey manager, MKey manager, and QoS. She
  will do so on branches off the main trunk - for each feature.
 
 OK. Sounds good.
 
  In parallel, Liran who owns the OpenSM verification will enhance
  osmtest and other testing utilities to achieve better test coverage of
  SM handover, SL2VL, VLArb and PKey. Any new feature will get covered
  by new tests.
 
 OK.
 
  I myself will work on making sure the IB management simulator is well
  integrated with the stack
 
 What do you mean by stack here ?
[EZ] I mean OpenIB
 
  and the available simulator based tests as well as new tests can be
  run daily.
 
  We do have some issues with respect to the current osm tree:
 
  1. All header files were moved from their relative location under
  the opensm, complib, iba directories and placed under the include
  directory. Although this seems reasonable for a install tree - it is
  not very common for development trees. Normally I would expect the
  Makefile.am of each sub directory of the osm project to define which
  header files are to be installed into the $prefix/include dir. We will
  revert that hierarchy change in our merged branch.
 
 Are you expecting the reverted hierarchy to make it back to the trunk ?
[EZ] Yes. Explained why before. If you need examples for how this is done in many other GNU projects we can provide it. 

 
  2. osmtest was just introduced back into the osm tree. I think
  osmtest should be placed under a test tree where all the tests of
  the ULPs core etc will be located. I would expect a location like:
 
  https://openib.org/svn/gen2/trunk/test/userspace/management/osm
 
 It can be moved when it is agreed on its location. There are other
 places being proposed for this (talk to Amit).
[EZ] OK
 
  3. osmtest needs cleanup from VAPI stuff - we should let Liran
  who is the owner of this code development a clear AR to clean it up.
 
 Yes. Can he send patches for this ?
[EZ] Yes he will
 
  4. For some reason I saw that you have added Voltaire copyright
  to the osmtest code. I do not think it makes sense as no work was done
  on this code by a Voltaire developer. Or I might be wrong?
 
 There was some minor work done in terms of OpenIB. I removed this.
 
  Needless to say the 1.8.0 version of OpenSM brings with it a long set
  of bug fixes and enhancements.
 
 Once the OpenSM work is completed, will OpenSM development by Mellanox
 be done incrementally and in the open rather than drops ? Will patches
 be suppplied ?
[EZ] Yes. After the merge is done all enhancements described above will be done on OpenIB. Assuming we resume our maintainer position and are able to commit directly.

 
 -- Hal



___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

[openib-general] Re: [PATCH 1/2] [IB/cm]: Correct CM port redirect reject codes

2005-08-04 Thread Michael S. Tsirkin
Quoting r. yhlu [EMAIL PROTECTED]:
 Subject: Re: [PATCH 1/2] [IB/cm]: Correct CM port redirect reject codes
 
 Roland,
 
 In LinuxBIOS, If I enable the prefmem64 to use real 64 range. the IB
 driver in Kernel can not be loaded.

Are you using the latest firmware on the HCA card?

-- 
MST
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] IPoIB -- connected mode update

2005-08-04 Thread Vivek Kashyap

Attached is an udpated draft (will be posting to internet drafts after the
current ietf ends) for ipoib-connected mode based on the discussions on
ipoib wg, openib (IB on Linux), and other communications. Two threads
that saw good discussion are given below. I believe the attached updated
draft captures all the discussions. Please comment.

http://openib.org/pipermail/openib-general/2005-May/006751.html
http://www1.ietf.org/mail-archive/web/ipoverib/current/msg01212.html

thanks,

Vivek




   IP over InfiniBand: Connected Mode

Abstract

This document specifies a method for transmitting IPv4/IPv6
packets and address resolution over the connected modes of
InfiniBand.

Table of Contents

1.0   Introduction
2.0   IPoIB-connected mode
2.1   Multicasting
2.2   Outline of Address Resolution
2.3   Outline of Connection Setup
3.0   Address Resolution
3.1   Link-layer Address
3.2   IB Connection Setup
3.3   Service-ID
4.0   Frame Format
5.0   Maximum Transmission Unit
5.1   Per-Connection MTU
6.0   IPoIB-CM Considerations
6.1   A Cautionary Note on IPoIB-RC
7.0   Security Considerations
8.0   IANA Considerations
9.0   References

1.0 Introduction

The InfiniBand specification [IB_ARCH] can be found at
www.infinibandta.org.  The document [IPoIB_ARCH] provides a
short overview of InfiniBand architecture along with
consideration for specifying IP over InfiniBand networks.

The InfiniBand architecture (IBA) defines multiple modes of
transports. Of these the unreliable datagram (UD) transport
method best matches the needs of IP. IP over InfiniBand (IPoIB)
over UD is described in [IPoIB_UD]. This document describes
IP transmission over the connected modes of IBA.

IBA defines two connected modes:

 1. Reliable Connected (RC)
 2. Unreliable Connected (UC)

As is evident from the nomenclature, the two modes differ mainly
in providing reliability of data delivery across the connection.
This document applies equally to both the connected modes.
IPoIB over these two modes is referred to as IPoIB-CM (connected
mode) in this document.  For clarity IPoIB over the unreliable
datagram mode, as described in [IPoIB_UD] is referred to as
IPoIB-UD.

IBA requires that all Host Channel Adapters (HCAs) support the
reliable and unreliable connected modes [IB_ARCH]. It is
optional for Target Channel Adapters (TCAs) to support the
connected modes.

The connected modes offer link MTUs of up to 2^31 octets in
length.  Thus the use of connected modes can offer significant
benefits by supporting reasonably large MTUs. The datagram modes
of InfiniBand Architecture (IBA) are limited to 4096 octets.

Reliability is also enhanced if the underlying feature of
automatic path migration supported by the connected modes is
utilized.

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL
NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and
OPTIONAL in this document are to be interpreted as described
in RFC 2119.

2.0 IPoIB-connected mode

Every IPoIB implementation MUST support IPoIB-UD. The IPoIB-CM
support is OPTIONAL.

This document extensively refers to [IPoIB_UD] and extends IPoIB
description given in [IPoIB_UD] to IPoIB-CM. Therefore, only
additional requirements or enhancements needed to enable IPoIB-
CM are described.

The IP encapsulation, default MTU, link layer address format and
the IPv6 stateless autoconfiguration mechanism apply to IPoIB-CM
exactly as described in [IPoIB_UD].

2.1 Multicasting

The connected modes of IBA define a non-broadcast, multiple
access network. The connected modes of IBA do not support
multicasting though every node can communicate with every other
node if desired.

This requires that multicasting be emulated in some form by the
network.  However, in the case of an InfiniBand network, instead
of an emulation, an unreliable datagram (UD)  queue pair (QP)
can be used to support multicasting while the connected mode  QP
is used for unicast traffic.  Since every IPoIB implementation
is required to support the UD mode, every implementation
supporting IPoIB-CM will be able to utilize the coexisting
IPoIB-UD QP for all broadcast/multicast communications.

Multicast mapping, transmission and reception of multicast
packets and multicast routing MUST use the IPoIB-UD QP
associated 

[openib-general] 32b openib applications on 64b kernel

2005-08-04 Thread Steve Wise
Does the openib code support a 32b app using user-mode IB verbs on a 64b
distro/kernel?  IE: The app was compiled on a 32b distro/kernel, then run on
the 64b distro/kernel. 


Steve.


___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] OpenMPI question

2005-08-04 Thread Steve Wise
Will the various MPI implementations be ported to the openIB user verbs API?
Or uDAPL?  From reading the FAQ it appears that MVAPICH2 will remain on
udapl.   I'm curious about Open-MPI and LA-MPI?  


Steve. 

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


RE: [openib-general] RE: OpenSM Work

2005-08-04 Thread Eitan Zahavi
Title: RE: [openib-general] RE: OpenSM Work





Hi Matt,


The offline work is only expected for the task of merging of the current 1.8.0 release into OpenIB. It should be completed by end of next week.

It would involve the following parts:
1. Merging changes done by Hal/Shahar on the 1.6.1 and 1.7.0 into the 1.8.0 code.
2. Moving headers back into place and adding Makefile.am install directives to move the headers during install to the prefix/include dir

3. Adding osm_vendor_sa_api.h and accompany implementation for that API.
4. Adding Simulator vendor


After that point we wish to continue OpenSM development on the OpenIB repository.
To be able to do that we need to open a branch for each new feature we develop, qualify it and then we can provide diffs to the main thread so everybody can review it before the merge.

Actually with the amount of work we put already into OpenSM, once we move into gen2 environment we should become the active maintainers of this code.

The development work plan for OpenSM was posted more then once to the OpenIB mailing list even before we started merging with gen2 (attached to this mail).

We will appreciate feedback for our plans and will adjust accordingly.
So far I did not get any response for my previous mails describing our plans.
I hope this will change.


Eitan Zahavi
Design Technology Director
Mellanox Technologies LTD
Tel:+972-4-9097208
Fax:+972-4-9593245
P.O. Box 586 Yokneam 20692 ISRAEL



 -Original Message-
 From: Matt Leininger [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, August 04, 2005 4:26 PM
 To: Eitan Zahavi
 Cc: openib-general@openib.org; 'Hal Rosenstock'
 Subject: Re: [openib-general] RE: OpenSM Work
 
 On Thu, 2005-08-04 at 09:09 +0300, Eitan Zahavi wrote:
 
   
The mode of work we suggest is that she will work offline.
  
   Not sure by what you mean by offline here.
  [EZ] Offline means she will do the entire merge and then commit. I
  propose she will commit the changes into a branch and then you can
  review it and do the merge to the main trunk yourself.
 
 Eitan,
 
 I'm glad to see the continued interest in OpenSM. Thanks for the
 help.
 
 Please submit OpenSM changes as patches to the mail list so that Hal
 and others in the community can review them. No sense in doing a bunch
 of work until we know what things you are trying to add. Start with
 header files and work out from there.
 
 My understanding of your offline is that it is closed development
 followed by open release. That's not how OpenIB works. Please submit
 the patches to the list so everyone can follow and commit on the OpenSM
 code changes.
 
 Thanks,
 
  - Matt





---BeginMessage---
Title: OpenSM work





Hi All,

FYI: Mellanox is focusing on the following items on OpenSM development for the last few weeks:

1. Stability testing over the IB management simulator:
a. Randomly pick bad links with high packet drop statistics - success is SUBNET UP
b. Route using up/down algorithm - success is no credit loops


2. Semi-static LID assignment:
a. Developed an interface for persistent storage of arbitrary data. The goal is to enable further development of LDAP (ala Troy's request) or SQL module. Please see osm_db.h attached

 osm_db.h 

b. Developed file based implementation for osm_db.h
c. Modify osm_lid_mgr (lid assignment algorithm) to use the LIDs stored in the persistent storage. Handle all cases of bad file and new LIDs on the fabric. The -r flag now lets OpenSM overwrite the known data. Persistent Guid to LIDs data is kept even if the GUID disappears for a while. The code also handles LID assignment for LMC  0 in a way better then the previous algorithm: It used to assign 2^LMC LIDs for every port - even for switches port 0. Now it will only preserve 1 LID for switch port 0.

3. Irresponsive port:
a. The phenomenon is: A port does not respond to the SM during the discovery stage. OpenSM can not obtain enough data about the port and thus it does not appear in the final database. Since OpenSM uses light sweeps when there is no "change detected" it will not query the port until either a switch sets its "change bit" or send a trap. So that irresponsive port will never be polled again if there is no heavy sweep.

b. The solution: 
i. During discovery track ports (physical ports) that have their logical link state != DOWN but the port on the other side of the link is not known to the SM. 

ii. During light sweep: not only scan the switches "change bit" but also test to see if the port on the other side on these ports (from i) is responding. If it does - issue a heavy sweep.

4. Head of Queue Life:
a. Problem: In cases of PCI hardware failure HCAs can not complete RDMA requests and loose all credits from their input ports (in other words: their input buffers are filled). So they create back pressure on the fabric. 

b. Solution: use a fast head of queue time limit on every switch port that drives an HCA.


5. SA queries stress testing:
a. We are exploring max performance 

Re: [openib-general] OpenMPI question

2005-08-04 Thread Hal Rosenstock
On Thu, 2005-08-04 at 09:52, Steve Wise wrote:
 Will the various MPI implementations be ported to the openIB user verbs API?
 Or uDAPL?  From reading the FAQ it appears that MVAPICH2 will remain on
 udapl.  

OSU MVAPICH2 is being ported now to OpenIB uverbs.

It's Intel's MPI which is over uDAPL.

  I'm curious about Open-MPI and LA-MPI?  

OpenMPI is working with OpenIB uverbs now (in point to point mode) but
has not yet been released. Don't know about LA-MPI.

-- Hal

 
 Steve. 
 
 ___
 openib-general mailing list
 openib-general@openib.org
 http://openib.org/mailman/listinfo/openib-general
 
 To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


Re: [openib-general] [RFC] Move InfiniBand .h files

2005-08-04 Thread Roland Dreier
Grant Any thoughts on renaming drivers/infiniband to drivers/rdma
Grant at the same time?

Grant If you are going to churn...don't be shy about it :^)

Well, I'd rather avoid churn for purely political reasons.  The main
point of my proposal is to move the includes from drivers/ to
include/, but while we're at it me might as well pick a more neutral
directory name.

Moving drivers/infiniband to drivers/rdma has no technical merit right
now, so I'd rather wait and see how it makes sense to organize the
code we end up with.

 - R.
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: mthca and LinuxBIOS

2005-08-04 Thread Roland Dreier
yhlu i enable CCONFIG_INFINIBAND_MTHCA_DEBUG=y I didn't get any
yhlu more debug info, is that depend other setting?

It shouldn't depend on anything.  mthca_dbg() gets turned into
dev_dbg(), which just does dev_printk(KERN_DEBUG,...).  Perhaps you
have to change your console level to see KERN_DEBUG messages?

Since you're getting to the call to mthca_init_qp_table(), there are
mthca_dbg() calls that you should definitely be getting output from.

 - R.
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [RFC] Move InfiniBand .h files

2005-08-04 Thread Roland Dreier
Roland Also, drivers/infiniband/include doesn't get put into the
Roland /lib/modules/ver/build directory,

Arjan that is a symlink not a directory, and a symlink to the
Arjan full source...

Sorry, I was too terse about the problem.  You're right, but typical
distros don't ship full kernel source in their support kernel builds
package.  And if I use an external build directory (ie O=) then
the symlink just points to my external build directory, which doesn't
include the source to drivers/, just links to include/

 - R.
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [RFC] Move InfiniBand .h files

2005-08-04 Thread Sam Ravnborg
On Thu, Aug 04, 2005 at 11:57:55AM -0700, Roland Dreier wrote:
 Roland Also, drivers/infiniband/include doesn't get put into the
 Roland /lib/modules/ver/build directory,
 
 Arjan that is a symlink not a directory, and a symlink to the
 Arjan full source...
 
 Sorry, I was too terse about the problem.  You're right, but typical
 distros don't ship full kernel source in their support kernel builds
 package.  And if I use an external build directory (ie O=) then
 the symlink just points to my external build directory, which doesn't
 include the source to drivers/, just links to include/

If the external module uses a Kbuild file as explained in
Documentation/kbuild/makefiles.txt and then uses both O= and M=
when compiling the module there is no issue.

With respect to moving the .h files - please do so.
drivers/infiniband should only include header used in that same
directory. Not header files potentially uased by fs/.

Sam
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: mthca and LinuxBIOS

2005-08-04 Thread yhlu
ib_mthca: Mellanox InfiniBand HCA driver v0.06 (June 23, 2005)
ib_mthca: Initializing Mellanox Technologies MT25208 InfiniHost III Ex
(Tavor compatibility mode) (:04:00.0)
ib_mthca :04:00.0: FW version 000400060002, max commands 64
ib_mthca :04:00.0: FW size 6143 KB (start fcefa0, end fcefff)
ib_mthca :04:00.0: HCA memory size 262143 KB (start fce000,
end fcefff)
ib_mthca :04:00.0: Max QPs: 16777216, reserved QPs: 1024, entry size: 256
ib_mthca :04:00.0: Max CQs: 16777216, reserved CQs: 128, entry size: 64
ib_mthca :04:00.0: Max EQs: 64, reserved EQs: 1, entry size: 64
ib_mthca :04:00.0: reserved MPTs: 16, reserved MTTs: 16
ib_mthca :04:00.0: Max PDs: 16777216, reserved PDs: 0, reserved UARs: 1
ib_mthca :04:00.0: Max QP/MCG: 16777216, reserved MGMs: 0
ib_mthca :04:00.0: Flags: 00370347
ib_mthca :04:00.0: profile[ 0]--10/20 @ 0x  fce000 (size 0x 400)
ib_mthca :04:00.0: profile[ 1]-- 0/16 @ 0x  fce400 (size 0x 100)
ib_mthca :04:00.0: profile[ 2]-- 7/18 @ 0x  fce500 (size 0x  80)
ib_mthca :04:00.0: profile[ 3]-- 9/17 @ 0x  fce580 (size 0x  80)
ib_mthca :04:00.0: profile[ 4]-- 3/16 @ 0x  fce600 (size 0x  40)
ib_mthca :04:00.0: profile[ 5]-- 4/16 @ 0x  fce640 (size 0x  20)
ib_mthca :04:00.0: profile[ 6]--12/15 @ 0x  fce660 (size 0x  10)
ib_mthca :04:00.0: profile[ 7]-- 8/13 @ 0x  fce670 (size 0x   8)
ib_mthca :04:00.0: profile[ 8]--11/11 @ 0x  fce678 (size 0x   1)
ib_mthca :04:00.0: profile[ 9]-- 6/ 5 @ 0x  fce679 (size 0x 800)
ib_mthca :04:00.0: HCA memory: allocated 106050 KB/256000 KB
(149950 KB free)
ib_mthca :04:00.0: Allocated EQ 1 with 65536 entries
ib_mthca :04:00.0: Allocated EQ 2 with 128 entries
ib_mthca :04:00.0: Allocated EQ 3 with 128 entries
ib_mthca :04:00.0: Setting mask 000f43fe for eqn 2
ib_mthca :04:00.0: Setting mask 0400 for eqn 3
ib_mthca :04:00.0: NOP command IRQ test passed
--stuck
30s
ib_mthca :04:00.0: Failed to initialize queue pair table, aborting.
ib_mthca :04:00.0: Clearing mask 000f43fe for eqn 2
ib_mthca :04:00.0: Clearing mask 0400 for eqn 3
ib_mthca: probe of :04:00.0 failed with error -16


On 8/4/05, Roland Dreier [EMAIL PROTECTED] wrote:
 yhlu i enable CCONFIG_INFINIBAND_MTHCA_DEBUG=y I didn't get any
 yhlu more debug info, is that depend other setting?
 
 It shouldn't depend on anything.  mthca_dbg() gets turned into
 dev_dbg(), which just does dev_printk(KERN_DEBUG,...).  Perhaps you
 have to change your console level to see KERN_DEBUG messages?
 
 Since you're getting to the call to mthca_init_qp_table(), there are
 mthca_dbg() calls that you should definitely be getting output from.
 
  - R.
 -
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


Re: [openib-general] Re: [RFC] Move InfiniBand .h files

2005-08-04 Thread Arjan van de Ven
On Thu, 2005-08-04 at 11:26 -0700, Grant Grundler wrote:
 On Thu, Aug 04, 2005 at 07:53:58PM +0200, Arjan van de Ven wrote:
  On Thu, 2005-08-04 at 10:32 -0700, Roland Dreier wrote:
   I would like to get people's reactions to moving the InfiniBand .h
   files from their current location in drivers/infiniband/include/ to
   include/linux/rdma/.  If we agree that this is a good idea then I'll
   push this change as soon as 2.6.14 starts.
  
  please only put userspace clean headers here; the rest is more or less
  private headers for your subsystem. 
 
 Sorry...this smells like a rathole...but does this mean
 linus agrees the kernel subsystems should export headers suitable for
 both user space and kernel driver modules?
 
 Historical, I thought glibc and other user space libs were expected to
 maintain their own set of header files. Maybe I'm just confused...

there is a definite requirement for the kernel to expose SOME things to
userspace. Well for SOMETHING to expose them. Right now most distros
ship a hacked up version of the kernel headers (eg removed of all the
kernel specific stuff and all the gpl inline code etc). A good part of
making such an external project possible is to make a clean separation
between userspace shared stuff and pure kernel internals.


___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [RFC] Move InfiniBand .h files

2005-08-04 Thread Arjan van de Ven
On Thu, 2005-08-04 at 11:57 -0700, Roland Dreier wrote:
 Roland Also, drivers/infiniband/include doesn't get put into the
 Roland /lib/modules/ver/build directory,
 
 Arjan that is a symlink not a directory, and a symlink to the
 Arjan full source...
 
 Sorry, I was too terse about the problem.  You're right, but typical
 distros don't ship full kernel source in their support kernel builds
 package.

so what makes you think they will ship include/infiniband ?


___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [RFC] Move InfiniBand .h files

2005-08-04 Thread Christopher Friesen

Sam Ravnborg wrote:

On Thu, Aug 04, 2005 at 11:57:55AM -0700, Roland Dreier wrote:



Sorry, I was too terse about the problem.  You're right, but typical
distros don't ship full kernel source in their support kernel builds
package.  And if I use an external build directory (ie O=) then
the symlink just points to my external build directory, which doesn't
include the source to drivers/, just links to include/



If the external module uses a Kbuild file as explained in
Documentation/kbuild/makefiles.txt and then uses both O= and M=
when compiling the module there is no issue.

With respect to moving the .h files - please do so.
drivers/infiniband should only include header used in that same
directory. Not header files potentially uased by fs/.


I think Roland was talking about the case where the running kernel was 
built with O=, in which case the /lib/modules.../build symlink points 
to the build directory rather than the original source tree.


Does Kbuild handle this case properly?

Chris
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [RFC] Move InfiniBand .h files

2005-08-04 Thread Sam Ravnborg
On Thu, Aug 04, 2005 at 01:54:56PM -0600, Christopher Friesen wrote:
 Sam Ravnborg wrote:
 On Thu, Aug 04, 2005 at 11:57:55AM -0700, Roland Dreier wrote:
 
 Sorry, I was too terse about the problem.  You're right, but typical
 distros don't ship full kernel source in their support kernel builds
 package.  And if I use an external build directory (ie O=) then
 the symlink just points to my external build directory, which doesn't
 include the source to drivers/, just links to include/
 
 
 If the external module uses a Kbuild file as explained in
 Documentation/kbuild/makefiles.txt and then uses both O= and M=
 when compiling the module there is no issue.
 
 With respect to moving the .h files - please do so.
 drivers/infiniband should only include header used in that same
 directory. Not header files potentially uased by fs/.
 
 I think Roland was talking about the case where the running kernel was 
 built with O=, in which case the /lib/modules.../build symlink points 
 to the build directory rather than the original source tree.
 
 Does Kbuild handle this case properly?

Yes it does.
/lib/modules/.../ contains two symlinks these days:

build - always point to the directory containing the output of the build
source - always point to the kernel source

In the 'make' case where the kernel is built without using O= they point
to the same directory.
In the 'make O=' case they point to different directories.

SUSE does ship with a make O= build kernel these days.
Fedora IIRC has done an ugly hack and just copied over a number of files
so a compile works in most cases - but then also use both symlink.

It has never been easier to build a module if the target is only the
running kernel. Only when you adds backwards compatibility it gets messy :-(

Sam
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


RE: [openib-general] [PATCH 1/2] kDAPL: remove inline functions

2005-08-04 Thread James Lentini



On Thu, 4 Aug 2005, Tom Duffy wrote:


On Thu, 2005-08-04 at 20:30 +0300, Or Gerlitz wrote:
This is almost exactly what is there now.  Not really a change. 
I don't like the multiple indirections to get to the function 
table, but this can be simplified later.


Indeed, it can be simplified a little, but why not having this 
simplification in the kdapl registry level (dat) as it is in 
ib_core calling ib_verbs and libibverbs calling libmthca, while the 
verbs consumer does not have to go into those indirections at all 
but rather just call a well understood/defined api? are you 
suggesting to apply such a chance also to the verbs?


I don't understand what you mean?  What change would happen in verbs?


I think Or is asking if similar changes should be made to the verbs 
(i.e. should ib_alloc_pd() be remove and replaced in each verb's user 
by device-alloc_pd(..), etc.). Is that right Or?


In kDAPL, the inline dat_* functions just perform a function call.

In the case of the verbs, there are some operations performed by the 
verbs core in addition to calling the function. For 
example, ib_alloc_pd() intiailizes the ib_pd fields in addition to 
calling the device specific alloc_pd function.


Due to the additional functionality, I don't think this convention 
would extend to the IB verbs.


In terms of kDAPL, I share Or's concern that this will make the API 
harder for consumers to use. Picture someone who wants to use the 
kDAPL API for the first time. Today that person would scan the kDAPL 
header and see all of the functions available and get a pretty clear 
picture of what each functions parameters are for just by looking at 
the parameter names. We'd loose that documentation with this change.


With respect to the struct file_operations analogy, is a struct 
file_operations embedded in any other structure besides struct file? 
In kDAPL, the function table is embedded in several different objects.

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


RE: [openib-general][kdapl]: vmalloc instead of kmalloc

2005-08-04 Thread James Lentini



On Thu, 4 Aug 2005, Guy German wrote:


James,

I see what you mean.
The allocation of the event vector is derived from evd-qlen.
In DTO ev'd, however, qlen is also the parameter passed to
ib_create_cq.
Since we don't want to limit DAPL consumers to an
unnecessary small completion queue size, maybe we
could differentiate between DTO supporting evd's and
CONN evd's, when allocating the events vector.

if evd supports CONN only, leave it :
event = kmalloc(evd-qlen * sizeof *event)
(Relying on the consumer he knows what he is doing)
if evd is DTO only :
don't allocate an event buffer, at all
if evd supports both :
event = kmalloc(DEFAULT_4_CONN * sizeof *event)


And dynamically add additional events up to qlen as needed?



if DEFAULT_4_CONN=256, that's a 3 pages allocation.

How does that sound to you ?


I'd prefer that the EVDs were uniform. I would worry about bugs 
otherwise.


The eventual solution has to support qlen generated events (connection 
request, connection, disconnect, software) if those event types are 
supported by the EVD (even if the EVD is being used for both generated 
events and DTOs).

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] RE: some questions/comments on gen2 udapl code

2005-08-04 Thread Davis, Arlin R
Or,

We need to have these discussions on openib-general.

-Original Message-
From: Or Gerlitz [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 04, 2005 6:55 AM
To: Davis, Arlin R
Cc: James Lentini
Subject: RE: some questions/comments on gen2 udapl code

 Arlin writes:
 I take this back. With the current verbs event mechanisms, a
 dedicated thread for uAT, uCM, and uCQ is the only way to process
 multi-threaded application requests. Let's say an application opens
 the device and then kicks off separate threads to connect and send to
 many different endpoints. Each thread will be waiting on the same
 event mechanisms. I see no good way to multiplex properly outside of
 a dedicated processing thread.

 If the verbs AT, CM, and CQ event mechanisms change then we can
 re-visit.

I am not sure there's is no good way - but i guess not sure is not
enough, i need to send a
patch that allows for it (ie work under multi-threaded app (eg
udapltest) with each thread having
diff conn/dto/cr evd)...

Patch would be great. I moved to a dedicated CQ thread approach after
struggling with the many multi-threaded issues with direct waits. See 
comments in dapls_ib_wait_object_wait() in dapl_ib_cq.c. 


The thing is that the current implementation is not optimal in
delivering CQ interrupts latency,
since there's one extra context switch. Also the udapl provider

I agree that this is not optimal and we want the CQ_WAIT_OBJECT
mapped directly to a CQ fd to avoid the extra context switch. 
But with one CQ FD per device how do you optimally multiplex 
the user's CQ context across multiple waiters without a dedicated
processing thread?

It seems just as inefficient to have 4 waiters on different CQ's 
all waking up, processing an event that may or may not be theirs.
How do you deliver the event that was not yours? What if the 
event was directed to a thread that already woke and went back 
to sleep? Do you wake them all up again? This is why I went 
back to the dedicated CQ thread.  

We need some help from verbs to make this uDAPL CQ mapping work:

Either

 support multiple CQ FD's, one per CQ.

or

 modify call ibv_get_cq_event() and allow the user to supply the
 specific ibv_cq event to get, not just the first one on the event
queue.


library opens 3 dedicated
threads (uat/ucm/ucq) and for getting async event we will probably add
uasync thread - which

I can work on rolling up the uat/ucm/uasync processing into one thread.

-arlin

would be better if we can avoid doing (opening so many threads).

Or.
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] ib_memory_register() equivalent in gen2

2005-08-04 Thread PAulN

Hi,
I'm looking for the memory registration function which takes a vaddr and
and length, not an array of physical buffers.   In gen1 this call is
ib_memory_register().  The closest thing I can find is the reg_user_mr stuff
which is used by uverbs.  Could someone please tell me if req_user_mr is
the right place to start?
Thanks,
Paul

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] SDP and uCM.

2005-08-04 Thread Libor Michalek

  At the end of this week I will be leaving Cisco and will no longer
have the time, or access to the equipment, needed to maintain the SDP
or uCM code. It would seem ideal for Sean Hefty to take over the uCM
code if he has the time and desire. I also think that Tom Duffy would
be the right person to maintain the SDP code, unless he doesn't think
he has the time. In which case Michael Tsirkin knows the code very well
and would hopefully consider taking over the code.

Thank you all.

-Libor
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: SDP and uCM.

2005-08-04 Thread Tom Duffy
On Thu, 2005-08-04 at 14:26 -0700, Libor Michalek wrote:
   At the end of this week I will be leaving Cisco and will no longer
 have the time, or access to the equipment, needed to maintain the SDP
 or uCM code. It would seem ideal for Sean Hefty to take over the uCM
 code if he has the time and desire. I also think that Tom Duffy would
 be the right person to maintain the SDP code, unless he doesn't think
 he has the time. In which case Michael Tsirkin knows the code very well
 and would hopefully consider taking over the code.

Libor, do you plan on checking anything else into SDP before you give
over maintainership?

-tduffy


signature.asc
Description: This is a digitally signed message part
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

RE: [openib-general] SDP and uCM.

2005-08-04 Thread Sean Hefty
or uCM code. It would seem ideal for Sean Hefty to take over the uCM

I can maintain the uCM code along with the kCM.

Good luck with your new endeavor!

- Sean

___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: SDP and uCM.

2005-08-04 Thread Libor Michalek
On Thu, Aug 04, 2005 at 02:46:47PM -0700, Tom Duffy wrote:
 On Thu, 2005-08-04 at 14:26 -0700, Libor Michalek wrote:
At the end of this week I will be leaving Cisco and will no longer
  have the time, or access to the equipment, needed to maintain the SDP
  or uCM code. It would seem ideal for Sean Hefty to take over the uCM
  code if he has the time and desire. I also think that Tom Duffy would
  be the right person to maintain the SDP code, unless he doesn't think
  he has the time. In which case Michael Tsirkin knows the code very well
  and would hopefully consider taking over the code.
 
 Libor, do you plan on checking anything else into SDP before you give
 over maintainership?

  No. I don't have any private patches to commit, and it does not look
like I'll have time to look at and test all the patches that have been
posted. Sorry.


-Libor
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [PATCH updated] sdp: cancel read with no iocb

2005-08-04 Thread Libor Michalek
On Mon, Aug 01, 2005 at 04:14:45PM +0300, Michael S. Tsirkin wrote:
 Quoting r. Michael S. Tsirkin [EMAIL PROTECTED]:
  Subject: sdp: cancel read with no iocb
  
  Libor, I'm seeing these messages:
  
  ib_sdp WARN: Cancel read with no IOCB. 2:0:0005
  
  It seems that this warning is printed in a legal state where
  a deferred iocb is canceled. Shouldnt this sdp_warn be replaced
  with sdp_dbg_ctrl?

  You're right, this should have been a sdp_dbg_ctrl all along, since
it's even possible, although much less likely, when the completion is
performed in irq context. The write cancel in sdp_send.c should be
changed as well.

-Libor


___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: [PATCH] remove in_atomic

2005-08-04 Thread Libor Michalek
On Mon, Aug 01, 2005 at 09:35:29AM +0300, Michael S. Tsirkin wrote:
 in_atomic isnt a reliable way to check that we are in an atomic context.
 Just schedule work, always, since most cq polling is currently done under
 a spinlock, anyway.

  I agree this patch is correct, but did you see any performance change?
With it applied I'm seeing a lot more variance in performance from run
to run. I believe the differences look to do with timing and how
frequently we are using source rdma advertisement vs. the sink. I believe
the slow start algorithm for src_avails needs improvment.

-Libor
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


RE: [openib-general] [iSER]How to use the iSER with the UNH iSCSI

2005-08-04 Thread Yaron Haviv
Ian,

Currently the UNH iSCSI doesn’t support the Datamover API which is a new API 
defined in IETF and enable iSCSI to run over offload technologies such as iSER

In addition the iSER code that is in OpenIB covers the Initiator side 
The Target code is (and being) integrated into few commercial products, or can 
be provided under some licensing  

There are few that intend to enable the datamover API in the UNH iSCSI and 
integrate it with iSER, they would be happy to see more helping hands, if you 
are interested I can hook you up with them 

Yaron 

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:openib-general-
 [EMAIL PROTECTED] On Behalf Of Ian Jiang
 Sent: Thursday, August 04, 2005 3:10 AM
 To: openib-general@openib.org
 Subject: [openib-general] [iSER]How to use the iSER with the UNH iSCSI
 
 Hi, everybody!
 Thanks for all the replis to my How to get the dat_headers_1_1.tgz!
 I downloaded the dapl_beta2.06.tgz as Itamar told me.
 And I made some modification to the iSER to use it on the x86_64 platform.
 
 I got through the compiling finally, but here is another question:
 How to use the iSER with the UNH iSCSI? I have the UNH iSCSI running on my
 system at present. Need I modify it and reinstall?
 
 And I'm not sure if the dapl_beta2.06 has to be installed to run the iSER.
 In fact, I did not compile or install the dapl before installing the iSER.
 
 Any suggestion is appriciated!
 
 Ian Jiang
 [EMAIL PROTECTED]
 
 Computer Architecture Laboratory
 Institute of Computing Technology
 Chinese Academy of Sciences
 Beijing,P.R.China
 Zip code: 100080
 Tel: +86-10-62564394(office)
 
 _
 免费下载 MSN Explorer:   http://explorer.msn.com/lccn
 
 ___
 openib-general mailing list
 openib-general@openib.org
 http://openib.org/mailman/listinfo/openib-general
 
 To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-
 general
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


[openib-general] Re: mthca and LinuxBIOS

2005-08-04 Thread Roland Dreier
Hmm, that output all looks fine.  Can you run with the patch below to
see exactly where the QP table initialization fails?  (I haven't
actually compiled this patch so you may have to fix a typo or two)

I'm guessing that the CONF_SPECIAL_QP command is failing, but let's
make sure.

Thanks,
  Roland

diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c 
b/drivers/infiniband/hw/mthca/mthca_qp.c
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -2214,13 +2214,16 @@ int __devinit mthca_init_qp_table(struct
   (1  24) - 1,
   dev-qp_table.sqp_start +
   MTHCA_MAX_PORTS * 2);
-   if (err)
+   if (err) {
+   mthca_err(dev, mthca_init_qp_table: mthca_alloc_init failed 
(%d)\n, err);
return err;
+   }
 
err = mthca_array_init(dev-qp_table.qp,
   dev-limits.num_qps);
if (err) {
mthca_alloc_cleanup(dev-qp_table.alloc);
+   mthca_err(dev, mthca_init_qp_table: mthca_array_init failed 
(%d)\n, err);
return err;
}
 
@@ -2228,8 +2231,10 @@ int __devinit mthca_init_qp_table(struct
err = mthca_CONF_SPECIAL_QP(dev, i ? IB_QPT_GSI : IB_QPT_SMI,
dev-qp_table.sqp_start + i * 2,
status);
-   if (err)
+   if (err) {
+   mthca_err(dev, mthca_init_qp_table: 
mthca_CONF_SPECIAL_QP failed for %d/%d (%d)\n, i, dev-qp_table.sqp_start + i 
* 2, err);
goto err_out;
+   }
if (status) {
mthca_warn(dev, CONF_SPECIAL_QP returned 
   status %02x, aborting.\n,
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


Re: [openib-general] ib_memory_register() equivalent in gen2

2005-08-04 Thread Roland Dreier
pauln Hi, I'm looking for the memory registration function which
pauln takes a vaddr and and length, not an array of physical
pauln buffers.  In gen1 this call is ib_memory_register().  The
pauln closest thing I can find is the reg_user_mr stuff which is
pauln used by uverbs.  Could someone please tell me if
pauln req_user_mr is the right place to start?

No, reg_user_mr is used to register userspace memory.

There is no memory registration function for kernel consumers that
takes a virtual address and a length.  This is intentional, because
there is not a general way to translate a kernel virtual address to a
bus address that can be passed to a device.  In fact, not every kernel
virtual address may be used for DMA, and not every piece of DMA-able
memory has a kernel virtual address.

Every kernel consumer needs to handle the mapping of its memory to bus
addresses (note -- _not_ physical addresses).

 - R.
___
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general