[openib-general] Re: tog Phar amacy

2006-01-23 Thread Nirvana Dammann




http://www.lovinsiter.com

SA
C
VXV
om
I
AaI

m
bALn
A

a
iL
I
a
G
eIUxR

nSMA
$$$
$$
12
3
$
1
3
,,,
1
,
,
18
7,4
3
295223___
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] respect CFLAGS in OSM

2006-01-23 Thread Hal Rosenstock
On Thu, 2006-01-19 at 16:50, Pete Wyckoff wrote:
 I do something like:
 
 CFLAGS=-g ./configure ...
 
 to build a debug tree from openib svn.
 
 Some places override this CFLAGS setting, though, applying
 optimization even though I explicitly do not want it.  This patch
 fixes that.  These apply to OSM below gen2/trunk/src/userspace/.

Thanks. Applied.

 Signed-off-by: Pete Wyckoff [EMAIL PROTECTED]


___
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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Subject: Re: Userspace testing results (many kernels,many svn trees)
 
 On 09.01.2006 [08:33:01 +0200], Michael S. Tsirkin wrote:
  Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
   Just like with the results I posted earlier, all the perftest results
   are seriously wrong for 32-bit clients (with both 32-bit and 64-bit
   servers). I am not sure who else to notify beyond the general list (is
   there a corresponding MAINTAINERS files like in the kernel proper for
   the OpenIB code?)
  
  That would be me - sorry about the delay, I'll take a look at this.
  Thanks a lot, Nishanth!
  This work is very much appreciated.
 
 No worries, hope the problem is not too hard to fix :)

OK, I'm going to concentrate on rdma_lat/rdma_bw for now.

# file ./rdma_bw
./rdma_bw: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for 
GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

# ./rdma_bw swlab155
  local address:  LID 0xd9, QPN 0x24040a, PSN 0x98e7f4 RKey 0xe0003f VAddr 
0x00556db000
  remote address: LID 0xd9, QPN 0x240406, PSN 0x952ea0, RKey 0xe00033 VAddr 
0x00556db000
Bandwidth peak (#0 to #999): 879.956 MB/sec
Bandwidth average: 879.954 MB/sec
Service Demand peak (#0 to #999): 3773 cycles/KB
Service Demand Avg  : 37 cycles/KB

Seems like I cant reproduce the problem. Which distribution
and CPU architecture is this, again?

-- 
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


RE: [openib-general] respect CFLAGS in OSM

2006-01-23 Thread Eitan Zahavi
Hi Pete,

I have looked again at this patch and what it is changing. 
My understanding is that you found the -g -O2 CLFAGS (provided through
the specific target CFLAGS) unneeded. You also think they will interfere
with settings you might want to provide from the command line. 

I have just double checked what I new to be the rule for autoconf:
If the user provides CFLAGS or LDFLAGS from the command like - they are
appended to the compile or link flags. The impact on gcc is that the
later settings - i.e. those provided by the user take precedence over
the flags provided at the beginning of the command line. So the patch
below is actually not needed. 

Just to convince you I attach some gcc traces showing that -O0 -O2 acts
like -O2 and 
-O2 -O0 acts like -O0.

Bottom line I would like to keep the code as it is without any change
such that default installation will use the -O2 mode.


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

swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0 -O2
-version -o /tmp/ccet3OkS.s
GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
GGC heuristics: --param ggc-min-expand=99 --param
ggc-min-heapsize=129317
options passed:  -auxbase -O0 -O2
options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
 -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
 -fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
 -fdelete-null-pointer-checks -feliminate-unused-debug-types
 -fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse -fgcse-lm
 -fguess-branch-probability -fident -fif-conversion -fif-conversion2
 -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize
 -floop-optimize2 -fmath-errno -fmerge-constants
-foptimize-register-move
 -foptimize-sibling-calls -fpcc-struct-return -fpeephole -fpeephole2
 -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop
 -frerun-loop-opt -fsched-interblock -fsched-spec
-fsched-stalled-insns-dep
 -fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
-fthread-jumps
 -ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
 -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
 -ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs -ftree-pre
-ftree-sra
 -ftree-ter -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss
 -m80387 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
 -mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386

swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2 -O0
-version -o /tmp/ccet3OkS.s
GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
GGC heuristics: --param ggc-min-expand=99 --param
ggc-min-heapsize=129317
options passed:  -auxbase -O2 -O0
options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
 -fcommon -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
-fident
 -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize2
 -fmath-errno -fpcc-struct-return -fpeephole -fsched-interblock
 -fsched-spec -fsched-stalled-insns-dep -fsplit-ivs-in-unroller
 -ftrapping-math -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
 -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -m80387
 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387 -mno-red-zone
 -mtls-direct-seg-refs -mtune=i386 -march=i386

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:openib-general-
 [EMAIL PROTECTED] On Behalf Of Pete Wyckoff
 Sent: Thursday, January 19, 2006 11:50 PM
 To: openib-general@openib.org
 Subject: [openib-general] respect CFLAGS in OSM
 
 I do something like:
 
 CFLAGS=-g ./configure ...
 
 to build a debug tree from openib svn.
 
 Some places override this CFLAGS setting, though, applying
 optimization even though I explicitly do not want it.  This patch
 fixes that.  These apply to OSM below gen2/trunk/src/userspace/.
 
 Signed-off-by: Pete Wyckoff [EMAIL PROTECTED]
 
 Index: management/osm/libvendor/Makefile.am
 ===
 --- management/osm/libvendor/Makefile.am  (revision 5098)
 +++ management/osm/libvendor/Makefile.am  (working copy)
 @@ -3,8 +3,6 @@
 
  if DEBUG
  DBGFLAGS = -ggdb -D_DEBUG_
 -else
 -DBGFLAGS = -g -O2
  endif
 
  INCLUDES = $(OSMV_INCLUDES)
 Index: management/osm/complib/Makefile.am
 ===
 --- management/osm/complib/Makefile.am(revision 5098)
 +++ management/osm/complib/Makefile.am(working copy)
 @@ -5,8 +5,6 @@
 
  if DEBUG
  DBGFLAGS = -ggdb -D_DEBUG_
 -else
 -DBGFLAGS = -g -O2
  endif
 
  libosmcomp_la_CFLAGS = -Wall $(DBGFLAGS) 

RE: [openib-general] respect CFLAGS in ibis/ibdm, fix missing file warning

2006-01-23 Thread Eitan Zahavi
Hi Pete,

Please see my response to the similar patch for OpenSM.
I think you can still apply your optimization flags simply by using the
CFLAGS at the command line.

Please double check and let me know.

Thanks

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: [EMAIL PROTECTED] [mailto:openib-general-
 [EMAIL PROTECTED] On Behalf Of Pete Wyckoff
 Sent: Thursday, January 19, 2006 11:53 PM
 To: openib-general@openib.org
 Subject: [openib-general] respect CFLAGS in ibis/ibdm,fix missing file
warning
 
 Avoid overriding CFLAGS in ibis and ibdm.  These apply to ibis and
 ibdm below gen2/utils/src/linux-user/.
 
 The third chunk below avoids a configure warning for a file
 osm_build_id.h that appears nowhere in my source or build tree.
 
 Signed-off-by: Pete Wyckoff [EMAIL PROTECTED]
 
 Index: ibis/src/Makefile.am
 ===
 --- ibis/src/Makefile.am  (revision 5098)
 +++ ibis/src/Makefile.am  (working copy)
 @@ -38,7 +38,7 @@
  if DEBUG
  DBG = -O0 -g -Wall -Werror
  else
 -DBG = -O2 -Wall
 +DBG = -Wall
  endif
 
  AM_CFLAGS = $(TCL_CPPFLAGS) $(OSM_CFLAGS) $(DBG) -fno-strict-aliasing
-
 fPIC
 Index: ibdm/datamodel/Makefile.am
 ===
 --- ibdm/datamodel/Makefile.am(revision 5098)
 +++ ibdm/datamodel/Makefile.am(working copy)
 @@ -60,8 +60,6 @@
  # Support debug mode through config variable
  if DEBUG
  DBG = -O0 -g
 -else
 -DBG = -O2
  endif
 
  # We have a special mode where we know the package will be eventually
moved
 Index: ibis/config/osm.m4
 ===
 --- ibis/config/osm.m4(revision 5098)
 +++ ibis/config/osm.m4(working copy)
 @@ -156,6 +156,8 @@
  AM_CONDITIONAL(OSM_VENDOR_SIM, test $OSM_VENDOR = sim)
  AM_CONDITIONAL(OSM_BUILD_OPENIB, test $OSM_BUILD = openib)
 
 +if test -f $osm_include_dir/opensm/osm_build_id.h; then
 +
  dnl validate the defined path - so the build id header is there
  AC_CHECK_FILE($osm_include_dir/opensm/osm_build_id.h,,
 AC_MSG_ERROR([OSM: could not find
 $with_osm/include/opensm/osm_build_id.h]))
 @@ -168,6 +170,9 @@
  else
 osm_debug_flags=
  fi
 +else
 +   osm_debug_flags=
 +fi
 
  OSM_CFLAGS=-I$osm_include_dir $osm_extra_includes $osm_debug_flags
 $osm_vendor_sel -D_XOPEN_SOURCE=600 -D_BSD_SOURCE=1
 
 ___
 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] respect CFLAGS in OSM

2006-01-23 Thread Hal Rosenstock
On Mon, 2006-01-23 at 08:27, Eitan Zahavi wrote:
 Hi Pete,
 
 I have looked again at this patch and what it is changing. 
 My understanding is that you found the -g -O2 CLFAGS (provided through
 the specific target CFLAGS) unneeded. You also think they will interfere
 with settings you might want to provide from the command line. 
 
 I have just double checked what I new to be the rule for autoconf:
 If the user provides CFLAGS or LDFLAGS from the command like - they are
 appended to the compile or link flags. The impact on gcc is that the
 later settings - i.e. those provided by the user take precedence over
 the flags provided at the beginning of the command line. So the patch
 below is actually not needed. 
 
 Just to convince you I attach some gcc traces showing that -O0 -O2 acts
 like -O2 and 
 -O2 -O0 acts like -O0.

Yes, it does override. What about the -g setting ? Should that stay or
go ?

-- Hal

 Bottom line I would like to keep the code as it is without any change
 such that default installation will use the -O2 mode.
 
 
 Eitan Zahavi
 Design Technology Director
 Mellanox Technologies LTD
 Tel:+972-4-9097208
 Fax:+972-4-9593245
 P.O. Box 586 Yokneam 20692 ISRAEL
 
 swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
 4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0 -O2
 -version -o /tmp/ccet3OkS.s
 GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
 compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
 GGC heuristics: --param ggc-min-expand=99 --param
 ggc-min-heapsize=129317
 options passed:  -auxbase -O0 -O2
 options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
  -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
  -fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
  -fdelete-null-pointer-checks -feliminate-unused-debug-types
  -fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse -fgcse-lm
  -fguess-branch-probability -fident -fif-conversion -fif-conversion2
  -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize
  -floop-optimize2 -fmath-errno -fmerge-constants
 -foptimize-register-move
  -foptimize-sibling-calls -fpcc-struct-return -fpeephole -fpeephole2
  -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop
  -frerun-loop-opt -fsched-interblock -fsched-spec
 -fsched-stalled-insns-dep
  -fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
 -fthread-jumps
  -ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
  -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
  -ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs -ftree-pre
 -ftree-sra
  -ftree-ter -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss
  -m80387 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
  -mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386
 
 swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
 4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2 -O0
 -version -o /tmp/ccet3OkS.s
 GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
 compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
 GGC heuristics: --param ggc-min-expand=99 --param
 ggc-min-heapsize=129317
 options passed:  -auxbase -O2 -O0
 options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
  -fcommon -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
 -fident
  -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize2
  -fmath-errno -fpcc-struct-return -fpeephole -fsched-interblock
  -fsched-spec -fsched-stalled-insns-dep -fsplit-ivs-in-unroller
  -ftrapping-math -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
  -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -m80387
  -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387 -mno-red-zone
  -mtls-direct-seg-refs -mtune=i386 -march=i386
 
  -Original Message-
  From: [EMAIL PROTECTED] [mailto:openib-general-
  [EMAIL PROTECTED] On Behalf Of Pete Wyckoff
  Sent: Thursday, January 19, 2006 11:50 PM
  To: openib-general@openib.org
  Subject: [openib-general] respect CFLAGS in OSM
  
  I do something like:
  
  CFLAGS=-g ./configure ...
  
  to build a debug tree from openib svn.
  
  Some places override this CFLAGS setting, though, applying
  optimization even though I explicitly do not want it.  This patch
  fixes that.  These apply to OSM below gen2/trunk/src/userspace/.
  
  Signed-off-by: Pete Wyckoff [EMAIL PROTECTED]
  
  Index: management/osm/libvendor/Makefile.am
  ===
  --- management/osm/libvendor/Makefile.am(revision 5098)
  +++ management/osm/libvendor/Makefile.am(working copy)
  @@ -3,8 +3,6 @@
  
   if DEBUG
   DBGFLAGS = -ggdb -D_DEBUG_
  -else
  -DBGFLAGS = -g -O2
   endif
  
   INCLUDES = $(OSMV_INCLUDES)
  Index: management/osm/complib/Makefile.am
  ===
  --- 

RE: [openib-general] respect CFLAGS in OSM

2006-01-23 Thread Eitan Zahavi
 
  Just to convince you I attach some gcc traces showing that -O0 -O2
acts
  like -O2 and
  -O2 -O0 acts like -O0.
 
 Yes, it does override. What about the -g setting ? Should that stay or
 go ?
[EZ] If -g is the problem we could easily remove the -g . However I
would recommend having OpenSM compile -O2 by default and not rely on the
user to provide that.
 
 -- Hal
 
  Bottom line I would like to keep the code as it is without any
change
  such that default installation will use the -O2 mode.
 
 
  Eitan Zahavi
  Design Technology Director
  Mellanox Technologies LTD
  Tel:+972-4-9097208
  Fax:+972-4-9593245
  P.O. Box 586 Yokneam 20692 ISRAEL
 
 
swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
  4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0 -O2
  -version -o /tmp/ccet3OkS.s
  GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
  compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
  GGC heuristics: --param ggc-min-expand=99 --param
  ggc-min-heapsize=129317
  options passed:  -auxbase -O0 -O2
  options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
   -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
   -fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
   -fdelete-null-pointer-checks -feliminate-unused-debug-types
   -fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse
-fgcse-lm
   -fguess-branch-probability -fident -fif-conversion -fif-conversion2
   -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize
   -floop-optimize2 -fmath-errno -fmerge-constants
  -foptimize-register-move
   -foptimize-sibling-calls -fpcc-struct-return -fpeephole -fpeephole2
   -fregmove -freorder-blocks -freorder-functions
-frerun-cse-after-loop
   -frerun-loop-opt -fsched-interblock -fsched-spec
  -fsched-stalled-insns-dep
   -fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
  -fthread-jumps
   -ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
   -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
   -ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs -ftree-pre
  -ftree-sra
   -ftree-ter -funit-at-a-time -fvar-tracking
-fzero-initialized-in-bss
   -m80387 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
   -mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386
 
 
swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
  4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2 -O0
  -version -o /tmp/ccet3OkS.s
  GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
  compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
  GGC heuristics: --param ggc-min-expand=99 --param
  ggc-min-heapsize=129317
  options passed:  -auxbase -O2 -O0
  options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
   -fcommon -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
  -fident
   -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize2
   -fmath-errno -fpcc-struct-return -fpeephole -fsched-interblock
   -fsched-spec -fsched-stalled-insns-dep -fsplit-ivs-in-unroller
   -ftrapping-math -ftree-loop-im -ftree-loop-ivcanon
-ftree-loop-optimize
   -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -m80387
   -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
-mno-red-zone
   -mtls-direct-seg-refs -mtune=i386 -march=i386
 
   -Original Message-
   From: [EMAIL PROTECTED] [mailto:openib-general-
   [EMAIL PROTECTED] On Behalf Of Pete Wyckoff
   Sent: Thursday, January 19, 2006 11:50 PM
   To: openib-general@openib.org
   Subject: [openib-general] respect CFLAGS in OSM
  
   I do something like:
  
   CFLAGS=-g ./configure ...
  
   to build a debug tree from openib svn.
  
   Some places override this CFLAGS setting, though, applying
   optimization even though I explicitly do not want it.  This patch
   fixes that.  These apply to OSM below gen2/trunk/src/userspace/.
  
   Signed-off-by: Pete Wyckoff [EMAIL PROTECTED]
  
   Index: management/osm/libvendor/Makefile.am
  
===
   --- management/osm/libvendor/Makefile.am  (revision 5098)
   +++ management/osm/libvendor/Makefile.am  (working copy)
   @@ -3,8 +3,6 @@
  
if DEBUG
DBGFLAGS = -ggdb -D_DEBUG_
   -else
   -DBGFLAGS = -g -O2
endif
  
INCLUDES = $(OSMV_INCLUDES)
   Index: management/osm/complib/Makefile.am
  
===
   --- management/osm/complib/Makefile.am(revision 5098)
   +++ management/osm/complib/Makefile.am(working copy)
   @@ -5,8 +5,6 @@
  
if DEBUG
DBGFLAGS = -ggdb -D_DEBUG_
   -else
   -DBGFLAGS = -g -O2
endif
  
libosmcomp_la_CFLAGS = -Wall $(DBGFLAGS) -D_XOPEN_SOURCE=600 -
   D_BSD_SOURCE=1
   Index: management/osm/opensm/Makefile.am
  
===
   --- management/osm/opensm/Makefile.am (revision 5098)
   +++ 

RE: [openib-general] respect CFLAGS in OSM

2006-01-23 Thread Hal Rosenstock
On Mon, 2006-01-23 at 08:39, Hal Rosenstock wrote:
 On Mon, 2006-01-23 at 08:27, Eitan Zahavi wrote:
  Hi Pete,
  
  I have looked again at this patch and what it is changing. 
  My understanding is that you found the -g -O2 CLFAGS (provided through
  the specific target CFLAGS) unneeded. You also think they will interfere
  with settings you might want to provide from the command line. 
  
  I have just double checked what I new to be the rule for autoconf:
  If the user provides CFLAGS or LDFLAGS from the command like - they are
  appended to the compile or link flags. The impact on gcc is that the
  later settings - i.e. those provided by the user take precedence over
  the flags provided at the beginning of the command line. So the patch
  below is actually not needed. 
  
  Just to convince you I attach some gcc traces showing that -O0 -O2 acts
  like -O2 and 
  -O2 -O0 acts like -O0.
 
 Yes, it does override. 

Actually I'm not sure about this. I too see both but can't tell which
was honored and didn't see the specific text in gcc to indicate the
precedence here. Is it first option or last option of the same or
something else ?

-- Hal

 What about the -g setting ? Should that stay or
 go ?
 
 -- Hal
 
  Bottom line I would like to keep the code as it is without any change
  such that default installation will use the -O2 mode.
  
  
  Eitan Zahavi
  Design Technology Director
  Mellanox Technologies LTD
  Tel:+972-4-9097208
  Fax:+972-4-9593245
  P.O. Box 586 Yokneam 20692 ISRAEL
  
  swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
  4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0 -O2
  -version -o /tmp/ccet3OkS.s
  GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
  compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
  GGC heuristics: --param ggc-min-expand=99 --param
  ggc-min-heapsize=129317
  options passed:  -auxbase -O0 -O2
  options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
   -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
   -fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
   -fdelete-null-pointer-checks -feliminate-unused-debug-types
   -fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse -fgcse-lm
   -fguess-branch-probability -fident -fif-conversion -fif-conversion2
   -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize
   -floop-optimize2 -fmath-errno -fmerge-constants
  -foptimize-register-move
   -foptimize-sibling-calls -fpcc-struct-return -fpeephole -fpeephole2
   -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop
   -frerun-loop-opt -fsched-interblock -fsched-spec
  -fsched-stalled-insns-dep
   -fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
  -fthread-jumps
   -ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
   -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
   -ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs -ftree-pre
  -ftree-sra
   -ftree-ter -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss
   -m80387 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
   -mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386
  
  swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
  4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2 -O0
  -version -o /tmp/ccet3OkS.s
  GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
  compiled by GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8).
  GGC heuristics: --param ggc-min-expand=99 --param
  ggc-min-heapsize=129317
  options passed:  -auxbase -O2 -O0
  options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
   -fcommon -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
  -fident
   -fivopts -fkeep-static-consts -fleading-underscore -floop-optimize2
   -fmath-errno -fpcc-struct-return -fpeephole -fsched-interblock
   -fsched-spec -fsched-stalled-insns-dep -fsplit-ivs-in-unroller
   -ftrapping-math -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
   -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -m80387
   -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387 -mno-red-zone
   -mtls-direct-seg-refs -mtune=i386 -march=i386
  
   -Original Message-
   From: [EMAIL PROTECTED] [mailto:openib-general-
   [EMAIL PROTECTED] On Behalf Of Pete Wyckoff
   Sent: Thursday, January 19, 2006 11:50 PM
   To: openib-general@openib.org
   Subject: [openib-general] respect CFLAGS in OSM
   
   I do something like:
   
   CFLAGS=-g ./configure ...
   
   to build a debug tree from openib svn.
   
   Some places override this CFLAGS setting, though, applying
   optimization even though I explicitly do not want it.  This patch
   fixes that.  These apply to OSM below gen2/trunk/src/userspace/.
   
   Signed-off-by: Pete Wyckoff [EMAIL PROTECTED]
   
   Index: management/osm/libvendor/Makefile.am
   ===
   --- 

RE: [openib-general] respect CFLAGS in OSM

2006-01-23 Thread Eitan Zahavi
 
 Actually I'm not sure about this. I too see both but can't tell which
 was honored and didn't see the specific text in gcc to indicate the
 precedence here. Is it first option or last option of the same or
 something else ?
[EZ] This is exactly why I have added the traces from running gcc with
the two options.
If you look just below you will see the verbose report from cc1 showing
that the last option wins by showing the exact list of optimization
options used by the compiler. I have tested that on multiple gcc
versions. (The command line itself is reported when you run gcc -v. Then
you need to remove the -quite flag to get the correct level of
verbosity. )
  
  
swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
   4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0 -O2
   -version -o /tmp/ccet3OkS.s
   GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
   compiled by GNU C version 4.0.0 20050519 (Red Hat
4.0.0-8).
   GGC heuristics: --param ggc-min-expand=99 --param
   ggc-min-heapsize=129317
   options passed:  -auxbase -O0 -O2
   options enabled:  -falign-loops -fargument-alias
-fbranch-count-reg
-fcaller-saves -fcommon -fcprop-registers -fcrossjumping
-fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
-fdelete-null-pointer-checks -feliminate-unused-debug-types
-fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse
-fgcse-lm
-fguess-branch-probability -fident -fif-conversion
-fif-conversion2
-fivopts -fkeep-static-consts -fleading-underscore
-floop-optimize
-floop-optimize2 -fmath-errno -fmerge-constants
   -foptimize-register-move
-foptimize-sibling-calls -fpcc-struct-return -fpeephole
-fpeephole2
-fregmove -freorder-blocks -freorder-functions
-frerun-cse-after-loop
-frerun-loop-opt -fsched-interblock -fsched-spec
   -fsched-stalled-insns-dep
-fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
   -fthread-jumps
-ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
-ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
-ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs -ftree-pre
   -ftree-sra
-ftree-ter -funit-at-a-time -fvar-tracking
-fzero-initialized-in-bss
-m80387 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
-mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386
  
  
swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
   4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2 -O0
   -version -o /tmp/ccet3OkS.s
   GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
   compiled by GNU C version 4.0.0 20050519 (Red Hat
4.0.0-8).
   GGC heuristics: --param ggc-min-expand=99 --param
   ggc-min-heapsize=129317
   options passed:  -auxbase -O2 -O0
   options enabled:  -falign-loops -fargument-alias
-fbranch-count-reg
-fcommon -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
   -fident
-fivopts -fkeep-static-consts -fleading-underscore
-floop-optimize2
-fmath-errno -fpcc-struct-return -fpeephole -fsched-interblock
-fsched-spec -fsched-stalled-insns-dep -fsplit-ivs-in-unroller
-ftrapping-math -ftree-loop-im -ftree-loop-ivcanon
-ftree-loop-optimize
-funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -m80387
-mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
-mno-red-zone
-mtls-direct-seg-refs -mtune=i386 -march=i386
  
___
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] Opensm - running with console option

2006-01-23 Thread Hal Rosenstock
On Sun, 2006-01-22 at 07:29, Yael Kalka wrote:
 Hi Hal,
 
 I've noticed that when running opensm with --console, it exits with a
 message that option `-console' requires an argument. But I saw in the
 main.c that such argument isn't used.
 The following patch removes this dependency.
 
 Thanks,
 Yael

Thanks. Applied.

 Signed-off-by:  Yael Kalka [EMAIL PROTECTED]


___
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] respect CFLAGS in OSM

2006-01-23 Thread Hal Rosenstock
On Mon, 2006-01-23 at 09:10, Eitan Zahavi wrote:
  
  Actually I'm not sure about this. I too see both but can't tell which
  was honored and didn't see the specific text in gcc to indicate the
  precedence here. Is it first option or last option of the same or
  something else ?
 [EZ] This is exactly why I have added the traces from running gcc with
 the two options.
 If you look just below you will see the verbose report from cc1 showing
 that the last option wins by showing the exact list of optimization
 options used by the compiler. I have tested that on multiple gcc
 versions. (The command line itself is reported when you run gcc -v. Then
 you need to remove the -quite flag to get the correct level of
 verbosity. )

Got it. It's all the extra -f options that are enabled by -O2.

I will revert the patch to the OSM makefiles.

-- Hal

   
   
 swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0 -O2
-version -o /tmp/ccet3OkS.s
GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
compiled by GNU C version 4.0.0 20050519 (Red Hat
 4.0.0-8).
GGC heuristics: --param ggc-min-expand=99 --param
ggc-min-heapsize=129317
options passed:  -auxbase -O0 -O2
options enabled:  -falign-loops -fargument-alias
 -fbranch-count-reg
 -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
 -fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
 -fdelete-null-pointer-checks -feliminate-unused-debug-types
 -fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse
 -fgcse-lm
 -fguess-branch-probability -fident -fif-conversion
 -fif-conversion2
 -fivopts -fkeep-static-consts -fleading-underscore
 -floop-optimize
 -floop-optimize2 -fmath-errno -fmerge-constants
-foptimize-register-move
 -foptimize-sibling-calls -fpcc-struct-return -fpeephole
 -fpeephole2
 -fregmove -freorder-blocks -freorder-functions
 -frerun-cse-after-loop
 -frerun-loop-opt -fsched-interblock -fsched-spec
-fsched-stalled-insns-dep
 -fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
-fthread-jumps
 -ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
 -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
 -ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs -ftree-pre
-ftree-sra
 -ftree-ter -funit-at-a-time -fvar-tracking
 -fzero-initialized-in-bss
 -m80387 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
 -mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386
   
   
 swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2 -O0
-version -o /tmp/ccet3OkS.s
GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8) (i386-redhat-linux)
compiled by GNU C version 4.0.0 20050519 (Red Hat
 4.0.0-8).
GGC heuristics: --param ggc-min-expand=99 --param
ggc-min-heapsize=129317
options passed:  -auxbase -O2 -O0
options enabled:  -falign-loops -fargument-alias
 -fbranch-count-reg
 -fcommon -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
-fident
 -fivopts -fkeep-static-consts -fleading-underscore
 -floop-optimize2
 -fmath-errno -fpcc-struct-return -fpeephole -fsched-interblock
 -fsched-spec -fsched-stalled-insns-dep -fsplit-ivs-in-unroller
 -ftrapping-math -ftree-loop-im -ftree-loop-ivcanon
 -ftree-loop-optimize
 -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -m80387
 -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
 -mno-red-zone
 -mtls-direct-seg-refs -mtune=i386 -march=i386
   

___
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] respect CFLAGS in OSM

2006-01-23 Thread Eitan Zahavi
 
 On Mon, 2006-01-23 at 09:10, Eitan Zahavi wrote:
  
   Actually I'm not sure about this. I too see both but can't tell
which
   was honored and didn't see the specific text in gcc to indicate
the
   precedence here. Is it first option or last option of the same or
   something else ?
  [EZ] This is exactly why I have added the traces from running gcc
with
  the two options.
  If you look just below you will see the verbose report from cc1
showing
  that the last option wins by showing the exact list of optimization
  options used by the compiler. I have tested that on multiple gcc
  versions. (The command line itself is reported when you run gcc -v.
Then
  you need to remove the -quite flag to get the correct level of
  verbosity. )
 
 Got it. It's all the extra -f options that are enabled by -O2.
 
 I will revert the patch to the OSM makefiles.
[EZ] Let's wait for Pete's response.
 
 -- Hal
 


 
swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
 4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O0
-O2
 -version -o /tmp/ccet3OkS.s
 GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8)
(i386-redhat-linux)
 compiled by GNU C version 4.0.0 20050519 (Red Hat
  4.0.0-8).
 GGC heuristics: --param ggc-min-expand=99 --param
 ggc-min-heapsize=129317
 options passed:  -auxbase -O0 -O2
 options enabled:  -falign-loops -fargument-alias
  -fbranch-count-reg
  -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
  -fcse-follow-jumps -fcse-skip-blocks -fdefer-pop
  -fdelete-null-pointer-checks -feliminate-unused-debug-types
  -fexpensive-optimizations -fforce-mem -ffunction-cse -fgcse
  -fgcse-lm
  -fguess-branch-probability -fident -fif-conversion
  -fif-conversion2
  -fivopts -fkeep-static-consts -fleading-underscore
  -floop-optimize
  -floop-optimize2 -fmath-errno -fmerge-constants
 -foptimize-register-move
  -foptimize-sibling-calls -fpcc-struct-return -fpeephole
  -fpeephole2
  -fregmove -freorder-blocks -freorder-functions
  -frerun-cse-after-loop
  -frerun-loop-opt -fsched-interblock -fsched-spec
 -fsched-stalled-insns-dep
  -fsplit-ivs-in-unroller -fstrength-reduce -fstrict-aliasing
 -fthread-jumps
  -ftrapping-math -ftree-ccp -ftree-ch -ftree-copyrename
-ftree-dce
  -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
  -ftree-loop-ivcanon -ftree-loop-optimize -ftree-lrs
-ftree-pre
 -ftree-sra
  -ftree-ter -funit-at-a-time -fvar-tracking
  -fzero-initialized-in-bss
  -m80387 -mhard-float -mno-soft-float -mieee-fp
-mfp-ret-in-387
  -mno-red-zone -mtls-direct-seg-refs -mtune=i386 -march=i386


 
swlab25:/home/eitan/SW/work/examples/usr/libexec/gcc/i386-redhat-linux/
 4.0.0/cc1 getHostName.c getHostName.c -auxbase getHostName -O2
-O0
 -version -o /tmp/ccet3OkS.s
 GNU C version 4.0.0 20050519 (Red Hat 4.0.0-8)
(i386-redhat-linux)
 compiled by GNU C version 4.0.0 20050519 (Red Hat
  4.0.0-8).
 GGC heuristics: --param ggc-min-expand=99 --param
 ggc-min-heapsize=129317
 options passed:  -auxbase -O2 -O0
 options enabled:  -falign-loops -fargument-alias
  -fbranch-count-reg
  -fcommon -feliminate-unused-debug-types -ffunction-cse
-fgcse-lm
 -fident
  -fivopts -fkeep-static-consts -fleading-underscore
  -floop-optimize2
  -fmath-errno -fpcc-struct-return -fpeephole
-fsched-interblock
  -fsched-spec -fsched-stalled-insns-dep
-fsplit-ivs-in-unroller
  -ftrapping-math -ftree-loop-im -ftree-loop-ivcanon
  -ftree-loop-optimize
  -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss
-m80387
  -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
  -mno-red-zone
  -mtls-direct-seg-refs -mtune=i386 -march=i386

 
 ___
 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] [PATCH] devinfo multiple device support

2006-01-23 Thread Michael S. Tsirkin
For devinfo, it makes sense to report all available devices
if the user did not specify a specific one.

---

Make ibv_devinfo list all IB devices, rather than the first device, by default.

Signed-off-by: Dotan Barak [EMAIL PROTECTED]
Signed-off-by: Michael S. Tsirkin [EMAIL PROTECTED]

Index: last_stable/src/userspace/libibverbs/examples/devinfo.c
===
--- last_stable.orig/src/userspace/libibverbs/examples/devinfo.c
2006-01-22 13:19:22.0 +0200
+++ last_stable/src/userspace/libibverbs/examples/devinfo.c 2006-01-22 
13:18:23.0 +0200
@@ -403,7 +403,10 @@
fprintf(stderr, No IB devices found\n);
return -1;
}
-   ret |= print_hca_cap(*dev_list, ib_port);
+   while (*dev_list) {
+   ret |= print_hca_cap(*dev_list, ib_port);
+   ++dev_list;
+   }
}
 
if (ib_devname)

-- 
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] Re: [PATCH] devinfo multiple device support

2006-01-23 Thread Roland Dreier
thanks, applied.
___
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] [PATCH] RFC: mthca handling of signals

2006-01-23 Thread Michael S. Tsirkin
We have run into the following problem: if a task receives
a signal while in the process of e.g. destroying a resource
(which could be because the relevant file was closed)
mthca could bail out from trying to take a command
interface semaphore without performing the appropriate
command to tell hardware that the resource is being destroyed.

As a result we see messages like
 ib_mthca :04:00.0: HW2SW_CQ failed (-4)

In this case, hardware could access the resource after the memory has been
freed, possibly causing memory corruption.

A simple solution is to replace down_interruptible by down in command
interface activation.

A more elegant, but much bigger, change would involve making
resource allocation command interruptible, while keeping
resource cleanup commands uninterruptible.

---

Its not safe to cancel a command upon a signal.

Signed-off-by: Michael S. Tsirkin [EMAIL PROTECTED]

Index: openib/drivers/infiniband/hw/mthca/mthca_cmd.c
===
--- openib/drivers/infiniband/hw/mthca/mthca_cmd.c  (revision 5121)
+++ openib/drivers/infiniband/hw/mthca/mthca_cmd.c  (working copy)
@@ -199,8 +199,7 @@ static int mthca_cmd_post(struct mthca_d
 {
int err = 0;
 
-   if (down_interruptible(dev-cmd.hcr_sem))
-   return -EINTR;
+   down(dev-cmd.hcr_sem);
 
if (event) {
unsigned long end = jiffies + GO_BIT_TIMEOUT;
@@ -255,8 +254,7 @@ static int mthca_cmd_poll(struct mthca_d
int err = 0;
unsigned long end;
 
-   if (down_interruptible(dev-cmd.poll_sem))
-   return -EINTR;
+   down(dev-cmd.poll_sem);
 
err = mthca_cmd_post(dev, in_param,
 out_param ? *out_param : 0,
@@ -333,8 +331,7 @@ static int mthca_cmd_wait(struct mthca_d
int err = 0;
struct mthca_cmd_context *context;
 
-   if (down_interruptible(dev-cmd.event_sem))
-   return -EINTR;
+   down(dev-cmd.event_sem);
 
spin_lock(dev-cmd.context_lock);
BUG_ON(dev-cmd.free_head  0);

-- 
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] [git pull] InfiniBand fixes for 2.6.16

2006-01-23 Thread Roland Dreier
Linus, please pull from

master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git for-linus

This tree is also available from kernel.org mirrors at:

git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git 
for-linus

The pull will get the following changes:

Michael S. Tsirkin:
  IPoIB: Make sure path is fully initialized before using it
  IB/uverbs: Flush scheduled work before unloading module
  IB/sa_query: Flush scheduled work before unloading module
  IPoIB: Lock accesses to multicast packet queues
  IB/mthca: Use correct GID in MADs sent on port 2

 drivers/infiniband/core/sa_query.c |2 ++
 drivers/infiniband/core/uverbs_main.c  |1 +
 drivers/infiniband/hw/mthca/mthca_av.c |2 +-
 drivers/infiniband/ulp/ipoib/ipoib_main.c  |4 ++--
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c |   25 +---
 5 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/core/sa_query.c 
b/drivers/infiniband/core/sa_query.c
index acda7d6..501cc05 100644
--- a/drivers/infiniband/core/sa_query.c
+++ b/drivers/infiniband/core/sa_query.c
@@ -956,6 +956,8 @@ static void ib_sa_remove_one(struct ib_d
 
ib_unregister_event_handler(sa_dev-event_handler);
 
+   flush_scheduled_work();
+
for (i = 0; i = sa_dev-end_port - sa_dev-start_port; ++i) {
ib_unregister_mad_agent(sa_dev-port[i].agent);
kref_put(sa_dev-port[i].sm_ah-ref, free_sm_ah);
diff --git a/drivers/infiniband/core/uverbs_main.c 
b/drivers/infiniband/core/uverbs_main.c
index 96ea79b..903f85a 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -902,6 +902,7 @@ static void __exit ib_uverbs_cleanup(voi
unregister_filesystem(uverbs_event_fs);
class_destroy(uverbs_class);
unregister_chrdev_region(IB_UVERBS_BASE_DEV, IB_UVERBS_MAX_DEVICES);
+   flush_scheduled_work();
idr_destroy(ib_uverbs_pd_idr);
idr_destroy(ib_uverbs_mr_idr);
idr_destroy(ib_uverbs_mw_idr);
diff --git a/drivers/infiniband/hw/mthca/mthca_av.c 
b/drivers/infiniband/hw/mthca/mthca_av.c
index a14eed0..a19e0ed 100644
--- a/drivers/infiniband/hw/mthca/mthca_av.c
+++ b/drivers/infiniband/hw/mthca/mthca_av.c
@@ -184,7 +184,7 @@ int mthca_read_ah(struct mthca_dev *dev,
ah-av-sl_tclass_flowlabel  cpu_to_be32(0xf);
ib_get_cached_gid(dev-ib_dev,
  be32_to_cpu(ah-av-port_pd)  24,
- ah-av-gid_index,
+ ah-av-gid_index % dev-limits.gid_table_len,
  header-grh.source_gid);
memcpy(header-grh.destination_gid.raw,
   ah-av-dgid, 16);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c 
b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index fd3f5c8..c3b5f79 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -505,7 +505,7 @@ static void neigh_add_path(struct sk_buf
 
list_add_tail(neigh-list, path-neigh_list);
 
-   if (path-pathrec.dlid) {
+   if (path-ah) {
kref_get(path-ah-ref);
neigh-ah = path-ah;
 
@@ -591,7 +591,7 @@ static void unicast_arp_send(struct sk_b
return;
}
 
-   if (path-pathrec.dlid) {
+   if (path-ah) {
ipoib_dbg(priv, Send unicast ARP to %04x\n,
  be16_to_cpu(path-pathrec.dlid));
 
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 
b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 98039da..ccaa0c3 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -97,6 +97,7 @@ static void ipoib_mcast_free(struct ipoi
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_neigh *neigh, *tmp;
unsigned long flags;
+   int tx_dropped = 0;
 
ipoib_dbg_mcast(netdev_priv(dev),
deleting multicast group  IPOIB_GID_FMT \n,
@@ -123,8 +124,14 @@ static void ipoib_mcast_free(struct ipoi
if (mcast-ah)
ipoib_put_ah(mcast-ah);
 
-   while (!skb_queue_empty(mcast-pkt_queue))
+   while (!skb_queue_empty(mcast-pkt_queue)) {
+   ++tx_dropped;
dev_kfree_skb_any(skb_dequeue(mcast-pkt_queue));
+   }
+
+   spin_lock_irqsave(priv-tx_lock, flags);
+   priv-stats.tx_dropped += tx_dropped;
+   spin_unlock_irqrestore(priv-tx_lock, flags);
 
kfree(mcast);
 }
@@ -276,8 +283,10 @@ static int ipoib_mcast_join_finish(struc
}
 
/* actually send any queued packets */
+   spin_lock_irq(priv-tx_lock);
while (!skb_queue_empty(mcast-pkt_queue)) {
struct sk_buff *skb = skb_dequeue(mcast-pkt_queue);
+   

Re: [openib-general] respect CFLAGS in OSM

2006-01-23 Thread Pete Wyckoff
[EMAIL PROTECTED] wrote on Mon, 23 Jan 2006 15:27 +0200:
 I have looked again at this patch and what it is changing. 
 My understanding is that you found the -g -O2 CLFAGS (provided through
 the specific target CFLAGS) unneeded. You also think they will interfere
 with settings you might want to provide from the command line. 
 
 I have just double checked what I new to be the rule for autoconf:
 If the user provides CFLAGS or LDFLAGS from the command like - they are
 appended to the compile or link flags. The impact on gcc is that the
 later settings - i.e. those provided by the user take precedence over
 the flags provided at the beginning of the command line. So the patch
 below is actually not needed. 
 
 Just to convince you I attach some gcc traces showing that -O0 -O2 acts
 like -O2 and 
 -O2 -O0 acts like -O0.
 
 Bottom line I would like to keep the code as it is without any change
 such that default installation will use the -O2 mode.

Yes, later -O options do override previous ones.  I didn't think
of explicitly disabling optimization with -O0 in my build script.
The implication is that you want me to do the following to compile a
debugging version of osm:

CFLAGS=-g -O0 ./configure ...

rather than what I expected to work:

CFLAGS=-g ./configure ...

I can deal with that, and it's not a big enough concern to me now
that you've pointed out this work-around.  Feel free to ignore my
suggestion, then: it's your code.

My surprise comes from having become accustomed to autoconf-based
programs that always use the user-specified CFLAGS exactly if
given.  AC_PROG_CC sets it to -g -O2 by default for gcc only if no
CFLAGS was set by the user.  If I don't want -g or don't want -O2,
usually it is easy to make that happen without editing files.

-- Pete
___
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] [PATCH] uar size != 8M

2006-01-23 Thread Michael S. Tsirkin
There are some cards around that have UAR size different from 8M.
As a sanity check, compare it against the device reported limit instead.

Signed-off-by: Michael S. Tsirkin [EMAIL PROTECTED]

Index: linux-2.6.15/drivers/infiniband/hw/mthca/mthca_main.c
===
--- linux-2.6.15.orig/drivers/infiniband/hw/mthca/mthca_main.c  2006-01-12 
12:05:35.0 +0200
+++ linux-2.6.15/drivers/infiniband/hw/mthca/mthca_main.c   2006-01-23 
21:06:47.0 +0200
@@ -155,6 +155,13 @@ static int __devinit mthca_dev_lim(struc
return -ENODEV;
}
 
+   if (dev_lim-uar_size  pci_resource_len(mdev-pdev, 2)) {
+   mthca_err(mdev, HCA reported UAR size of 0x%x bigger than 
+ PCI resource 2 size of 0x%lx, aborting.\n,
+ dev_lim-uar_size, pci_resource_len(mdev-pdev, 2));
+   return -ENODEV;
+   }
+
mdev-limits.num_ports  = dev_lim-num_ports;
mdev-limits.vl_cap = dev_lim-max_vl;
mdev-limits.mtu_cap= dev_lim-max_mtu;
@@ -976,8 +983,7 @@ static int __devinit mthca_init_one(stru
err = -ENODEV;
goto err_disable_pdev;
}
-   if (!(pci_resource_flags(pdev, 2)  IORESOURCE_MEM) ||
-   pci_resource_len(pdev, 2) != 1  23) {
+   if (!(pci_resource_flags(pdev, 2)  IORESOURCE_MEM)) {
dev_err(pdev-dev, Missing UAR, aborting.\n);
err = -ENODEV;
goto err_disable_pdev;

-- 
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] Re: Repost [PATCH 1 of 3] move destructor to struct neigh_parms

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Michael S. Tsirkin [EMAIL PROTECTED]:
 Move destructor from neigh_ops (which is shared between devices)
 to neigh_parms which is not, so that multiple drivers can set
 it safely.

I posted this on netdev and lkml on Wednesday, but there was no
response. I guess this patch is non-controverisal since no one else
in kernel uses the destructor.

Do you think we can push this into mainline?

-- 
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] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [15:19:59 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Subject: Re: Userspace testing results (many kernels,many svn trees)
  
  On 09.01.2006 [08:33:01 +0200], Michael S. Tsirkin wrote:
   Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
Just like with the results I posted earlier, all the perftest results
are seriously wrong for 32-bit clients (with both 32-bit and 64-bit
servers). I am not sure who else to notify beyond the general list (is
there a corresponding MAINTAINERS files like in the kernel proper for
the OpenIB code?)
   
   That would be me - sorry about the delay, I'll take a look at this.
   Thanks a lot, Nishanth!
   This work is very much appreciated.
  
  No worries, hope the problem is not too hard to fix :)
 
 OK, I'm going to concentrate on rdma_lat/rdma_bw for now.
 
 # file ./rdma_bw
 ./rdma_bw: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for 
 GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
 
 # ./rdma_bw swlab155
   local address:  LID 0xd9, QPN 0x24040a, PSN 0x98e7f4 RKey 0xe0003f VAddr 
 0x00556db000
   remote address: LID 0xd9, QPN 0x240406, PSN 0x952ea0, RKey 0xe00033 VAddr 
 0x00556db000
 Bandwidth peak (#0 to #999): 879.956 MB/sec
 Bandwidth average: 879.954 MB/sec
 Service Demand peak (#0 to #999): 3773 cycles/KB
 Service Demand Avg  : 37 cycles/KB
 
 Seems like I cant reproduce the problem. Which distribution
 and CPU architecture is this, again?

The machines are running ppc64 kernels. They are both SLES9-SP2
userspace setups, with the infiniband components being updated to the
current svn.

Bah, I just noticed that perftests doesn't even build right now (svn
5130).

on ppc32 machines:

/usr/local/autobench/var/tmp/gen2-trunk/userspace/perftest
patching file Makefile
gcc -m32 -m32 -I/usr/local/autobench/var/tmp/out/ppc32/include -Wall -O2 -g 
-D_GNU_SOURCE   -m32 -L/lib -L/usr/local/autobench/var/tmp/out/ppc32/lib   
rdma_lat.c get_clock.c -libverbs  -o rdma_lat
In file included from rdma_lat.c:57:
get_clock.h:50:27: operator '||' has no right operand
get_clock.h:73:2: warning: #warning get_cycles not implemented for this 
architecture: attempt asm/timex.h
rdma_lat.c:517: error: parse error before get_median
rdma_lat.c:517: error: parse error before cycles_t
rdma_lat.c:518: warning: return type defaults to `int'
rdma_lat.c: In function `get_median':
rdma_lat.c:519: error: `n' undeclared (first use in this function)
rdma_lat.c:519: error: (Each undeclared identifier is reported only once
rdma_lat.c:519: error: for each function it appears in.)
rdma_lat.c:520: error: `delta' undeclared (first use in this function)
rdma_lat.c: In function `cycles_compare':
rdma_lat.c:527: error: syntax error before '*' token
rdma_lat.c:528: error: syntax error before '*' token
rdma_lat.c:529: error: `a' undeclared (first use in this function)
rdma_lat.c:529: error: `b' undeclared (first use in this function)
rdma_lat.c: At top level:
rdma_lat.c:535: error: parse error before cycles_t
rdma_lat.c: In function `print_report':
rdma_lat.c:538: error: `cycles_t' undeclared (first use in this function)
rdma_lat.c:538: error: parse error before median
rdma_lat.c:541: error: `delta' undeclared (first use in this function)
rdma_lat.c:541: error: `iters' undeclared (first use in this function)
rdma_lat.c:549: error: `tstamp' undeclared (first use in this function)
rdma_lat.c:552: error: `options' undeclared (first use in this function)
rdma_lat.c:574: error: `median' undeclared (first use in this function)
rdma_lat.c: In function `main':
rdma_lat.c:605: error: `cycles_t' undeclared (first use in this function)
rdma_lat.c:605: error: `tstamp' undeclared (first use in this function)
rdma_lat.c:747: warning: implicit declaration of function `get_cycles'
make: *** [rdma_lat] Error 1

on ppc64 machines:

gcc -m64 -m64 -I/usr/local/autobench/var/tmp/out/ppc64/include -Wall -O2 -g 
-D_GNU_SOURCE   -m64 -L/lib64 -L/usr/local/autobench/var/tmp/out/ppc64/lib   
rdma_lat.c get_clock.c -libverbs  -o rdma_lat
In file included from rdma_lat.c:57:
get_clock.h:50:27: operator '||' has no right operand
get_clock.h:73:2: warning: #warning get_cycles not implemented for this 
architecture: attempt asm/timex.h
make: *** [rdma_lat] Error 1

Once we get that sorted out, I can re-verify that perftest is/isn't
broken still.

Thanks,
Nish
___
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: ipoib_mcast_send.patch

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]:
 Also should we count dropped packets here?

Right. And since it seems that we cant get by with just one bit,
here's the original patch again, with dropped packet counter fixed.


---

Fix the following race scenario:
Device is up.
Port event or set mcast list triggers ipoib_mcast_stop_thread,
this cancels the query and waits on mcast done completion.
Completion is called and done is set.
Meanwhile, ipoib_mcast_send arrives and starts a new query,
re-initializing done.

Further, there's an additional issue that I saw in testing:
ipoib_mcast_send may get called when priv-broadcast is NULL
(e.g. if the device was downed and then upped internally because
of a port event).
If this happends and the sendonly join request gets completed before
priv-broadcast is set, we get an oops


Do not send multicasts if mcast thread is stopped or if
priv-broadcast is not set.

Signed-off-by: Michael S. Tsirkin [EMAIL PROTECTED]

Index: linux-2.6.15/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
===
--- linux-2.6.15.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
2006-01-23 21:24:10.0 +0200
+++ linux-2.6.15/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2006-01-23 
21:25:19.0 +0200
@@ -600,6 +600,10 @@ int ipoib_mcast_start_thread(struct net_
queue_work(ipoib_workqueue, priv-mcast_task);
mutex_unlock(mcast_mutex);
 
+   spin_lock_irq(priv-lock);
+   set_bit(IPOIB_MCAST_STARTED, priv-flags);
+   spin_unlock_irq(priv-lock);
+
return 0;
 }
 
@@ -610,6 +614,10 @@ int ipoib_mcast_stop_thread(struct net_d
 
ipoib_dbg_mcast(priv, stopping multicast thread\n);
 
+   spin_lock_irq(priv-lock);
+   clear_bit(IPOIB_MCAST_STARTED, priv-flags);
+   spin_unlock_irq(priv-lock);
+
mutex_lock(mcast_mutex);
clear_bit(IPOIB_MCAST_RUN, priv-flags);
cancel_delayed_work(priv-mcast_task);
@@ -692,6 +700,12 @@ void ipoib_mcast_send(struct net_device 
 */
spin_lock(priv-lock);
 
+   if (!test_bit(IPOIB_MCAST_STARTED, priv-flags) || !priv-broadcast) {
+   ++priv-stats.tx_dropped;
+   dev_kfree_skb_any(skb);
+   goto unlock;
+   }
+
mcast = __ipoib_mcast_find(dev, mgid);
if (!mcast) {
/* Let's create a new send only group now */
@@ -753,6 +767,7 @@ out:
ipoib_send(dev, skb, mcast-ah, IB_MULTICAST_QPN);
}
 
+unlock:
spin_unlock(priv-lock);
 }
 
Index: linux-2.6.15/drivers/infiniband/ulp/ipoib/ipoib.h
===
--- linux-2.6.15.orig/drivers/infiniband/ulp/ipoib/ipoib.h  2006-01-23 
21:24:10.0 +0200
+++ linux-2.6.15/drivers/infiniband/ulp/ipoib/ipoib.h   2006-01-23 
21:24:46.0 +0200
@@ -85,6 +85,7 @@ enum {
IPOIB_FLAG_SUBINTERFACE   = 4,
IPOIB_MCAST_RUN   = 5,
IPOIB_STOP_REAPER = 6,
+   IPOIB_MCAST_STARTED   = 7,
 
IPOIB_MAX_BACKOFF_SECONDS = 16,
 

-- 
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


Re: [openib-general] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Bah, I just noticed that perftests doesn't even build right now (svn
 5130).

Fixed, thanks.

-- 
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


Re: [openib-general] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [18:46:42 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Bah, I just noticed that perftests doesn't even build right now (svn
  5130).
 
 Fixed, thanks.

Great! What svn revision is it fixed in? 5159 is running the tests now,
but I can cancel and resubmit if it was fixed after that.

Thanks,
Nish
___
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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting Nishanth Aravamudan [EMAIL PROTECTED]:
 The machines are running ppc64 kernels.

BTW, does this configuration (ppc32 on ppc64) support the mftb instruction?


-- 
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] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
 
 On 23.01.2006 [18:46:42 +0200], Michael S. Tsirkin wrote:
  Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
   Bah, I just noticed that perftests doesn't even build right now (svn
   5130).
  
  Fixed, thanks.
 
 Great! What svn revision is it fixed in? 5159 is running the tests now,
 but I can cancel and resubmit if it was fixed after that.
 
 Thanks,
 Nish
 

This one:


r5162 | mst | 2006-01-23 18:51:34 +0200 (Mon, 23 Jan 2006) | 3 lines

typo fix


-- 
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] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [18:53:19 +0200], Michael S. Tsirkin wrote:
 Quoting Nishanth Aravamudan [EMAIL PROTECTED]:
  The machines are running ppc64 kernels.
 
 BTW, does this configuration (ppc32 on ppc64) support the mftb instruction?

Good question :)

How would I go about checking?

Thanks,
Nish
___
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: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [18:53:58 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
  
  On 23.01.2006 [18:46:42 +0200], Michael S. Tsirkin wrote:
   Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
Bah, I just noticed that perftests doesn't even build right now (svn
5130).
   
   Fixed, thanks.
  
  Great! What svn revision is it fixed in? 5159 is running the tests now,
  but I can cancel and resubmit if it was fixed after that.
  
  Thanks,
  Nish
  
 
 This one:
 
 
 r5162 | mst | 2006-01-23 18:51:34 +0200 (Mon, 23 Jan 2006) | 3 lines
 
 typo fix

Ok, running the tests again with 5162 -- will take some time to get to a
set of sizes (32/64) that we are interested in, but will post again once
they finish.

Thanks,
Nish
___
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: Repost [PATCH 1 of 3] move destructor to struct neigh_parms

2006-01-23 Thread Roland Dreier
Michael I posted this on netdev and lkml on Wednesday, but there
Michael was no response. I guess this patch is non-controverisal
Michael since no one else in kernel uses the destructor.

Michael Do you think we can push this into mainline?

Let me resend to Dave Miller directly and then it should be OK.

 - 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


Re: [openib-general] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Roland Dreier
Michael BTW, does this configuration (ppc32 on ppc64) support the
Michael mftb instruction?

I have some ppc64 machines around -- let me do some perftest checking.

 - 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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Subject: Re: Userspace testing results (many kernels,many svn trees)
 
 On 23.01.2006 [18:53:19 +0200], Michael S. Tsirkin wrote:
  Quoting Nishanth Aravamudan [EMAIL PROTECTED]:
   The machines are running ppc64 kernels.
  
  BTW, does this configuration (ppc32 on ppc64) support the mftb instruction?
 
 Good question :)
 
 How would I go about checking?
 
 Thanks,
 Nish

This seems to imply we are ok
http://www-128.ibm.com/developerworks/eserver/articles/archguide.html

Apple used to have some good ppc documentation but I couldnt locate it
at the moment.


-- 
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] [ANNOUNCE] libibverbs 1.0-rc5 released

2006-01-23 Thread Roland Dreier
I just tagged a 1.0-rc5 release of libibverbs and pushed it out to the
relevant channels, which means that it should appear on 
http://openib.org/downloads/
shortly.  Once the Fedora project build system is fixed, I will also
kick off builds for Fedora Extras, so binary packages for Fedora 4 and
5 will appear on standard Fedora mirrors in a few days

Changes since 1.0-rc4 include:

 - Change from dlist-based ibv_get_devices() API to simpler
   array-based ibv_get_device_list() API.  This breaks source
   compatibility with 1.0-rc4.
 - Add Sean Hefty's user/kernel marshalling functions.
 - Lots of fixes for pingpong examples.

See the ChangeLog in the package for full details.

I think we're getting close to a full 1.0 release with a frozen API
and ABI.  My plans for getting there are the following:

 - As of now, the only changes to the API that I will accept are pure
   additions that do not break source compatibility with existing
   consumer or provider code.  Any exceptions to this will have to be
   extremely well justified.

 - In about 3-4 weeks, I'll release 1.0-rc6.  This release will add
   support for resizing CQs and (if the code appears in time) query QP
   and query SRQ support from Dotan Barak at Mellanox.

 - Once 1.0-rc6 is out, I'll consider the API and ABI absolutely
   frozen.  In other words, any binary applications or device provider
   libraries built against 1.0-rc6 will continue to work aganst any
   later release in the 1.0 series.  This means that any changes that
   affect source or binary compatibility with existing consumer or
   provider code will have to have end-of-the-world type consequences
   for me to accept them.

 - Bug fixes are of course always welcome at any point in the
   development cycle.

 - Depending on how testing feedback looks, 3-4 weeks after 1.0-rc6,
   I'll release either a full 1.0, or if we're unlucky, 1.0-rc7.

 - Once 1.0 is out, I'll continue to accept changes that don't affect
   compatibility, and continue to do 1.0.1, 1.0.2, etc. releases as
   necessary.

 - When API or ABI breaking changes become necessary, I'll kick off a
   1.1 release series and we can go nuts again.
___
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: Repost [PATCH 1 of 3] move destructor tostruct neigh_parms

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]:
 Subject: Re: Repost [PATCH 1 of 3] move destructor tostruct neigh_parms
 
 Michael I posted this on netdev and lkml on Wednesday, but there
 Michael was no response. I guess this patch is non-controverisal
 Michael since no one else in kernel uses the destructor.
 
 Michael Do you think we can push this into mainline?
 
 Let me resend to Dave Miller directly and then it should be OK.
 
  - R.

Ok. I guess we'll want a trunk patch with an ifdef,
to use until 2.6.16 is released?

-- 
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] ANNOUNCE: mstflint update

2006-01-23 Thread Michael S. Tsirkin
Hi!
I have updated mstflint tool with code from mellanox MFT 1.0.1 package.
mstflint is a stand-alone firmware burning tool for Mellanox manufactured HCA
cards. Some success has been reported with cards from Topspin/Cisco.
See the README file under src/userspace/mstflint for more info.

Changes:
* bug fixes
* more flash types supported
* new flag -skip_is to allow safe firmware updates even if
  new firmware includes initial sector update (by updating
  all firmware except the IS)
* portability cleanups: use stdio instead of low level file descriptor
  operations

This code has been tested on x86 and x86_64, on PCI-X and PCI-Express cards.
I'd appreciate feedback and testing on other platforms.

You can help by testing this tool even if you dont have IB cards, or if you
dont want to burn firmware, as described below.

Thanks,
MST

---

To build:
cd src/userspace/mstflint
make

---
Ways to test the tool (without accessing device):

# ./mstflint -i ~/fw-25218-5_1_0-rc22-lion-cub.bin q
Image type:  Failsafe
I.S. Version:1
Chip Revision:   A0
GUID Des:Node Port1Port2Sys image
GUIDs:   0002c9000100d050 0002c9000100d051 0002c9000100d052 
0002c9000100d050
Board ID: (MT_014001)
VSD:
PSID:MT_014001

# ./mstflint -i ~/fw-25218-5_1_0-rc22-lion-cub.bin v

Failsafe image:

Invariant   /0x0028-0x095f (0x000938)/ (BOOT2) - OK

Primary   Image /0x0001-0x00010107 (0x000108)/ (Pointer Sector)- OK
/0x00030028-0x000308af (0x000888)/ (BOOT2) - OK
/0x000308b0-0x00035ae7 (0x005238)/ (BOOT2) - OK
/0x00035ae8-0x000380cf (0x0025e8)/ (Configuration) - OK
/0x000380d0-0x00038103 (0x34)/ (GUID) - OK
/0x00038104-0x00046b87 (0x00ea84)/ (DDR) - OK
/0x00046b88-0x0004fb1b (0x008f94)/ (DDR) - OK
/0x0004fb1c-0x00067ca3 (0x018188)/ (DDR) - OK
/0x00067ca4-0x0007fc53 (0x017fb0)/ (DDR) - OK
/0x0007fc54-0x0008245b (0x002808)/ (DDR) - OK
/0x0008245c-0x000839c3 (0x001568)/ (DDR) - OK
/0x000839c4-0x000839d7 (0x14)/ (Configuration) - OK
/0x000839d8-0x00083a1b (0x44)/ (Jump addresses) - OK
/0x00083a1c-0x0008e1cb (0x00a7b0)/ (EMT Service) - OK

Secondary Image /0x0002-0x00020107 (0x000108)/ (Pointer Sector)- OK
/0x00090028-0x000908af (0x000888)/ (BOOT2) - OK
/0x000908b0-0x00095ae7 (0x005238)/ (BOOT2) - OK
/0x00095ae8-0x000980cf (0x0025e8)/ (Configuration) - OK
/0x000980d0-0x00098103 (0x34)/ (GUID) - OK
/0x00098104-0x000a6b87 (0x00ea84)/ (DDR) - OK
/0x000a6b88-0x000afb1b (0x008f94)/ (DDR) - OK
/0x000afb1c-0x000c7ca3 (0x018188)/ (DDR) - OK
/0x000c7ca4-0x000dfc53 (0x017fb0)/ (DDR) - OK
/0x000dfc54-0x000e245b (0x002808)/ (DDR) - OK
/0x000e245c-0x000e39c3 (0x001568)/ (DDR) - OK
/0x000e39c4-0x000e39d7 (0x14)/ (Configuration) - OK
/0x000e39d8-0x000e3a1b (0x44)/ (Jump addresses) - OK
/0x000e3a1c-0x000ee1cb (0x00a7b0)/ (EMT Service) - OK

FW Image verification succeeded. Image is OK.



More ways to test the tool (read flash but do not burn anything to the device):

# ./mstflint -d /sys/class/infiniband/mthca0/device/resource0 q
Image type:  Failsafe
I.S. Version:1
Chip Revision:   A0
GUID Des:Node Port1Port2Sys image
GUIDs:   0a66b492c901 0a66b4910002c901 0a66b4920002c901 
0a66b4930002c901
Board ID: (MT_00A001)
VSD:
PSID:MT_00A001

# ./mstflint -d /sys/class/infiniband/mthca0/device/resource0 v

Failsafe image:

Invariant   /0x0028-0x095f (0x000938)/ (BOOT2) - OK

Primary   Image /0x0001-0x00010107 (0x000108)/ (Pointer Sector)- OK
/0x00030028-0x000308af (0x000888)/ (BOOT2) - OK
/0x000308b0-0x00034baf (0x004300)/ (BOOT2) - OK
/0x00034bb0-0x00035a93 (0x000ee4)/ (Configuration) - OK
/0x00035a94-0x00035ac7 (0x34)/ (GUID) - OK
/0x00035ac8-0x0003e2bb (0x0087f4)/ (DDR) - OK
/0x0003e2bc-0x0004c2e3 (0x00e028)/ (DDR) - OK
/0x0004c2e4-0x0004f213 (0x002f30)/ (DDR) - OK
/0x0004f214-0x00050907 (0x0016f4)/ (DDR) - OK
/0x00050908-0x000693e7 (0x018ae0)/ (DDR) - OK
/0x000693e8-0x0007d307 (0x013f20)/ (DDR) - OK
/0x0007d308-0x0007d31b (0x14)/ (Configuration) - OK
/0x0007d31c-0x0007d35f (0x44)/ (Jump addresses) - OK

Re: [openib-general] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Shirley Ma

PPC Architecture defines a 64-bit Time
Base register (2-32bit regs in 32 
bit mode). Below link is the documentation.

http://www-128.ibm.com/developerworks/eserver/articles/archguide.html
Book II: PowerPC Virtual Environment
Architecture Page 30


Thanks
Shirley Ma
IBM Linux Technology Center
15300 SW Koll Parkway
Beaverton, OR 97006-6063
Phone(Fax): (503) 578-7638___
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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Shirley Ma [EMAIL PROTECTED]:
 Subject: Re: [openib-general] Re: Userspace testing results (many 
 kernels,?many svn trees)
 
 
 PPC Architecture defines a 64-bit Time Base register (2-32bit regs in 32 
 bit mode). Below link is the documentation. 
 
 http://www-128.ibm.com/developerworks/eserver/articles/archguide.html 
 Book II: PowerPC Virtual Environment Architecture Page 30 
 
 
 Thanks
 Shirley Ma
 IBM Linux Technology Center

So am I right when I say that mftb returns a 32 bit register on
ppc32 and a 64 bit register on ppc64?

If true, it seems that this line
 typedef unsigned long long cycles_t;
should be replaced by
 typedef unsigned long cycles_t;

-- 
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


Re: [openib-general] Re: Repost [PATCH 1 of 3] move destructor to struct neigh_parms

2006-01-23 Thread Shirley Ma

You can resend the patch to Dave Miller
(network maintainer) and ask him for inputs directly.

Thanks
Shirley Ma
IBM Linux Technology Center
15300 SW Koll Parkway
Beaverton, OR 97006-6063
Phone(Fax): (503) 578-7638___
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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Shirley Ma

If true, it seems that this line
typedef unsigned long long cycles_t;
should be replaced by
typedef unsigned long cycles_t;

Yes.

Thanks
Shirley Ma
IBM Linux Technology Center
15300 SW Koll Parkway
Beaverton, OR 97006-6063
Phone(Fax): (503) 578-7638

___
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: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Shirley Ma [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,?many svn trees)
 
 
 If true, it seems that this line
 typedef unsigned long long cycles_t;
 should be replaced by
 typedef unsigned long cycles_t; 
 
 Yes. 

OK, I did it this way.
# svn ci get_clock.h
 Sendingget_clock.h
 Transmitting file data .
 Committed revision 5163.

You might want to try this rev out.

-- 
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


Re: [openib-general] Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Shirley Ma

I read the documentation again, I think I was wrong.
It returns 64 bit always.

Thanks
Shirley Ma
IBM Linux Technology Center
15300 SW Koll Parkway
Beaverton, OR 97006-6063
Phone(Fax): (503) 578-7638___
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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Shirley Ma [EMAIL PROTECTED]:
 Subject: Re: [openib-general] Re: Userspace testing results (many 
 kernels,?many svn trees)
 
 
 I read the documentation again, I think I was wrong. It returns 64 bit 
 always. 
 
 Thanks
 Shirley Ma
 IBM Linux Technology Center
 15300 SW Koll Parkway
 Beaverton, OR 97006-6063
 Phone(Fax): (503) 578-7638
 

I reverted it, if this change is needed you know what to do.

-- 
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


RE: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Caitlin Bestler
[EMAIL PROTECTED] wrote:
 Sean I haven't seen anyone object to merging the other changes.
 Sean Roland, Hal - any opinion?
 
 I don't see much urgency in merging it now.  When svn
 diverges from what's upstream in the kernel, it makes my life
 harder because I have to figure out which patches belong
 upstream and sometimes merge things by hand (when they hit
 the divergent regions).
 
 Also I can't say I'm thrilled by adding
 
   +  struct iw_cm_verbs*iwcm;
 
 to struct ib_device -- we still really haven't answered the
 issue of how iWARP connections interact with the host network
 stack, we've just pushed it off into low-level driver code
 where we can't see it.
 

My understanding is that this is a partial answer, not a 
deferred one.


What is fully addressed is how the iWARP device accepts or
initiates a connection that will start the transition to
MPA mode immediately.

In that mode, there is no integration with the host network
TCP layer required -- only co-ordination with the host
network IP layer. Linking to the net device does that.

Deferred entry into MPA mode is indeed a complex issue,
which is why Tom did not propose an immediate solution.
The initial model is IB compatible, deals with the needs
of virtually all RDMA applications, and is very simple.

Locking down this first step, to enable transport neutral
application development, is important. It should not have
to wait for the entire stack integration problem to be
solved.

The latter is a complex issue that includes things like
compliance with netfilter rules that need to apply to
*all* connections with IP semantics, including SDP.
That complexity will take some time to work out properly.
Meanwhile we can establish a very workable baseline.


___
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: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
 Quoting r. Shirley Ma [EMAIL PROTECTED]:
  Subject: Re: Re: Userspace testing results (many kernels,?many svn trees)
  
  
  If true, it seems that this line
  typedef unsigned long long cycles_t;
  should be replaced by
  typedef unsigned long cycles_t; 
  
  Yes. 
 
 OK, I did it this way.
 # svn ci get_clock.h
  Sendingget_clock.h
  Transmitting file data .
  Committed revision 5163.
 
 You might want to try this rev out.

heh, ok. I'm going to let the 5162 version of a 32/32 setup finish, then
run 5163.

Thanks,
Nish
___
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] Add -m option to ping pong programs to set path MTU

2006-01-23 Thread Ralph Campbell
Looks fine to me.

On Fri, 2006-01-20 at 16:48 -0800, Roland Dreier wrote:
 Thanks, I applied my own version of this.  Please make sure that the
 svn tree still works for you.
 
 (This patch was the one that pushed me over the edge with code
 duplication in the pingpong examples, so I put the MTU switch
 statement into a new pingpong.c file...)
 
  - R.
-- 
Ralph Campbell [EMAIL PROTECTED]

___
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: [PATCH] CMA and iWARP

2006-01-23 Thread Sean Hefty

Steve Wise wrote:
Is it possible to just go ahead and push the core iwarp stuff into 
kernel.org?


I don't think that makes sense or would be accepted.  This would be asking for 
changes to the kernel code that nothing else in the kernel would use.


- 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


RE: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Caitlin Bestler
[EMAIL PROTECTED] wrote:
 Steve Wise wrote:
 Is it possible to just go ahead and push the core iwarp stuff into
 kernel.org?
 
 I don't think that makes sense or would be accepted.  This
 would be asking for changes to the kernel code that nothing else in
 the kernel would use. 
 

But there are solid precedents for creating an extensible/flexible
interface even if there is only a single user of that interface
currently. For example the scsi_transport_iscsi defines an very
general interface to an iscsi transport layer even though iscsi_tcp
is the only instantiation of that transport.

___
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: [PATCH] CMA and iWARP

2006-01-23 Thread Steve Wise
On Mon, 2006-01-23 at 10:50 -0800, Caitlin Bestler wrote:
 [EMAIL PROTECTED] wrote:
  Steve Wise wrote:
  Is it possible to just go ahead and push the core iwarp stuff into
  kernel.org?
  
  I don't think that makes sense or would be accepted.  This
  would be asking for changes to the kernel code that nothing else in
  the kernel would use. 
  
 
 But there are solid precedents for creating an extensible/flexible
 interface even if there is only a single user of that interface
 currently. For example the scsi_transport_iscsi defines an very
 general interface to an iscsi transport layer even though iscsi_tcp
 is the only instantiation of that transport.

And the name change for the include directory from include/infiniband to
include/rmda was also a precursor to full RDMA support for more than
just IB.  

But I'm no expert on what the criteria is for pushing openib change sets
into kernel.org, so I can only voice my opinion (and ask lots of
questions :)...

Roland, can you help clarify this?

Also, what _is_ the criteria in your mind for pulling iwarp support
into: 1) openib trunk, and 2) kernel.org?


Thanks,

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: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Roland Dreier
Shirley I read the documentation again, I think I was wrong. It
Shirley returns 64 bit always.

I don't think that's correct.  How could mftb return a 64-bit value on
a CPU with 32-bit registers?

The best thing to look at is the definition of get_tb() in
asm-powerpc/time.h in the kernel tree.  I think that should give
something that always works.

 - 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


Re: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Roland Dreier
Steve Roland, can you help clarify this?

Steve Also, what _is_ the criteria in your mind for pulling iwarp
Steve support into: 1) openib trunk, and 2) kernel.org?

It's a judgement call that involves everyone.  One thing that would
really help me feel more comfortable would be seeing a driver for some
other piece of hardware (NetEffect?).  I don't want to push a design
based on one piece of hardware and then find out that all the new
hardware wants something else.  Maybe hearing Chelsio's opinion would
be helpful as well, as they have been dealing with similar issues from
a different direction.

 - 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


Re: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Roland Dreier
Caitlin But there are solid precedents for creating an
Caitlin extensible/flexible interface even if there is only a
Caitlin single user of that interface currently. For example the
Caitlin scsi_transport_iscsi defines an very general interface to
Caitlin an iscsi transport layer even though iscsi_tcp is the
Caitlin only instantiation of that transport.

Sure, but we're talking about creating an interface with zero users.
And even when there is one user, we want to avoid premature and
incorrect abstraction.

 - 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


Re: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Roland Dreier
Caitlin What is fully addressed is how the iWARP device accepts
Caitlin or initiates a connection that will start the transition
Caitlin to MPA mode immediately.

Caitlin In that mode, there is no integration with the host
Caitlin network TCP layer required -- only co-ordination with the
Caitlin host network IP layer. Linking to the net device does
Caitlin that.

I disagree.  The proposed interface says that accepting a connection
is completely the responsibility of the low-level driver, with no
hooks for central policy, bypassing packet filtering, etc, etc.
That's possibly a legitimate decision but it is a pretty major
decision as well.

 - 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: [PATCH] CMA and iWARP

2006-01-23 Thread Roland Dreier
Tom I agree there are more elegant approaches, however, the
Tom design criteria was to minimize changes to ib_verbs and the
Tom risk of IB functional regression. I think this approach
Tom accomplishes that goal.

What would the more elegant approach be?

I don't think minimizing changes is really the dimension to optimize
on.  The luxury of Linux development is that we can choose the best
solution, even if it means breaking the world (although of course the
costs of churn in terms of risk and effort do need to be weighed).

 - 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


Re: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Tom Tucker
On Mon, 2006-01-23 at 11:07 -0800, Roland Dreier wrote:
 Steve Roland, can you help clarify this?
 
 Steve Also, what _is_ the criteria in your mind for pulling iwarp
 Steve support into: 1) openib trunk, and 2) kernel.org?
 
 It's a judgement call that involves everyone.  One thing that would
 really help me feel more comfortable would be seeing a driver for some
 other piece of hardware (NetEffect?).  I don't want to push a design
 based on one piece of hardware and then find out that all the new
 hardware wants something else.  Maybe hearing Chelsio's opinion would
 be helpful as well, as they have been dealing with similar issues from
 a different direction.

I think these are very good points. I'll see if I can't get some other
folks to weigh in on this. 


  - 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 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] CMA and iWARP

2006-01-23 Thread Tom Tucker
On Mon, 2006-01-23 at 11:11 -0800, Roland Dreier wrote:
 Tom I agree there are more elegant approaches, however, the
 Tom design criteria was to minimize changes to ib_verbs and the
 Tom risk of IB functional regression. I think this approach
 Tom accomplishes that goal.
 
 What would the more elegant approach be?

Phase III

 
 I don't think minimizing changes is really the dimension to optimize
 on.  The luxury of Linux development is that we can choose the best
 solution, even if it means breaking the world (although of course the
 costs of churn in terms of risk and effort do need to be weighed).

The discussions from back at IDF advocated a phased approach. From my 
recollection:

Phase I   - iWARP device driver that mapped RNIC events and DTO to IB
events and DTOs. Very small change required to core
in the form of a new node type.  [done]

Phase II  - Transport independent connection management. This
milestone was to begin merge with trunk since it required
more significant core changes.  [done]

Phase III - Transport neutral naming, pluggable transports, etc...
Sonoma is a great place to dig into these discussions.

Phases I and II are complete in the branch, were demonstrated at SC'05,
and have now been submitted as a patch to the trunk.

 
  - 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: [PATCH] CMA and iWARP

2006-01-23 Thread Sean Hefty

Tom Tucker wrote:

Phases I and II are complete in the branch, were demonstrated at SC'05,
and have now been submitted as a patch to the trunk.


To add to this, the patch makes fairly minor changes (a couple to only a few 
lines) to ib_verbs, ib_mad, ib_addr, and ib_cm.  Some work was done to ib_addr 
and rdma_cm to simplify iWarp support.  The largest changes in the patch were 
adding iWarp specific files, and modifications to the rdma_cm.  I wanted to 
defer merging the iWarp changes into the rdma_cm until we could get feedback 
from the kernel developers first, which we've now had the chance to receive.


- 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: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,?many svn trees)
 
 On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
  Quoting r. Shirley Ma [EMAIL PROTECTED]:
   Subject: Re: Re: Userspace testing results (many kernels,?many svn trees)
   
   
   If true, it seems that this line
   typedef unsigned long long cycles_t;
   should be replaced by
   typedef unsigned long cycles_t; 
   
   Yes. 
  
  OK, I did it this way.
  # svn ci get_clock.h
   Sendingget_clock.h
   Transmitting file data .
   Committed revision 5163.
  
  You might want to try this rev out.
 
 heh, ok. I'm going to let the 5162 version of a 32/32 setup finish, then
 run 5163.

Well, Shirley Ma here said its a mistake, so I reverted the change - no need
to re-run it.

-- 
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] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [10:24:12 -0800], Nishanth Aravamudan wrote:
 On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
  Quoting r. Shirley Ma [EMAIL PROTECTED]:
   Subject: Re: Re: Userspace testing results (many kernels,?many svn trees)
   
   
   If true, it seems that this line
   typedef unsigned long long cycles_t;
   should be replaced by
   typedef unsigned long cycles_t; 
   
   Yes. 
  
  OK, I did it this way.
  # svn ci get_clock.h
   Sendingget_clock.h
   Transmitting file data .
   Committed revision 5163.
  
  You might want to try this rev out.
 
 heh, ok. I'm going to let the 5162 version of a 32/32 setup finish,
 then run 5163.

Looks like 5162/5163 is fine building wise. Here is what I got for
rdma_lat for a 32-bit server and 32-bit client:

loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
0x2340032 VAddr 0x0010019001
  remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
0x0010019001
  Latency typical: 3.25746e+09 usec
  Latency best   : 3.19975e+09 usec
  Latency worst  : 4.21767e+10 usec

and for rdma_bw:

loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 RKey 
0x23a0032 VAddr 0x00f7fce000
  remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 VAddr 
0x00f7fb8000
  Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
  Bandwidth average: 4.3446e-07 MB/sec
  Service Demand peak (#0 to #999): 17301 cycles/KB
  Service Demand Avg  : 0 cycles/KB

So it's still present...

Thanks,
Nish
___
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: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
 
 On 23.01.2006 [10:24:12 -0800], Nishanth Aravamudan wrote:
  On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
   Quoting r. Shirley Ma [EMAIL PROTECTED]:
Subject: Re: Re: Userspace testing results (many kernels,?many svn 
trees)


If true, it seems that this line
typedef unsigned long long cycles_t;
should be replaced by
typedef unsigned long cycles_t; 

Yes. 
   
   OK, I did it this way.
   # svn ci get_clock.h
Sendingget_clock.h
Transmitting file data .
Committed revision 5163.
   
   You might want to try this rev out.
  
  heh, ok. I'm going to let the 5162 version of a 32/32 setup finish,
  then run 5163.
 
 Looks like 5162/5163 is fine building wise. Here is what I got for
 rdma_lat for a 32-bit server and 32-bit client:
 
 loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
 0x2340032 VAddr 0x0010019001
   remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
 0x0010019001
   Latency typical: 3.25746e+09 usec
   Latency best   : 3.19975e+09 usec
   Latency worst  : 4.21767e+10 usec
 
 and for rdma_bw:
 
 loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 RKey 
 0x23a0032 VAddr 0x00f7fce000
   remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 VAddr 
 0x00f7fb8000
   Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
   Bandwidth average: 4.3446e-07 MB/sec
   Service Demand peak (#0 to #999): 17301 cycles/KB
   Service Demand Avg  : 0 cycles/KB
 
 So it's still present...
 
 Thanks,
 Nish

Hmm. Could you please try running e.g. rdma_lat with -H to get all the results?

-- 
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] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [23:22:45 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
  
  On 23.01.2006 [10:24:12 -0800], Nishanth Aravamudan wrote:
   On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
Quoting r. Shirley Ma [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,?many svn 
 trees)
 
 
 If true, it seems that this line
 typedef unsigned long long cycles_t;
 should be replaced by
 typedef unsigned long cycles_t; 
 
 Yes. 

OK, I did it this way.
# svn ci get_clock.h
 Sendingget_clock.h
 Transmitting file data .
 Committed revision 5163.

You might want to try this rev out.
   
   heh, ok. I'm going to let the 5162 version of a 32/32 setup finish,
   then run 5163.
  
  Looks like 5162/5163 is fine building wise. Here is what I got for
  rdma_lat for a 32-bit server and 32-bit client:
  
  loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
  0x2340032 VAddr 0x0010019001
remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
  0x0010019001
Latency typical: 3.25746e+09 usec
Latency best   : 3.19975e+09 usec
Latency worst  : 4.21767e+10 usec
  
  and for rdma_bw:
  
  loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 RKey 
  0x23a0032 VAddr 0x00f7fce000
remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 
  VAddr 0x00f7fb8000
Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
Bandwidth average: 4.3446e-07 MB/sec
Service Demand peak (#0 to #999): 17301 cycles/KB
Service Demand Avg  : 0 cycles/KB
  
  So it's still present...
  
  Thanks,
  Nish
 
 Hmm. Could you please try running e.g. rdma_lat with -H to get all the 
 results?

Sure, let me modify the script I use to run the jobs and resubmit the
job.

Thanks,
Nish
___
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] [PATCH] net: Move destructor from neigh-ops to neigh_params

2006-01-23 Thread Roland Dreier
This is a resend of a patch written by Michael S. Tsirkin
[EMAIL PROTECTED].  I'd like to get an ACK or NAK of it from Dave
and other networking people, so that we can either merge it upstream
or try a different approach.  There definitely is a problem with
neighbour destructors that IP-over-IB is running into.

It would be good to know what the design was behind putting the
destructor method in neigh-ops in the first place.

Dave, if you want to merge this directly, that's fine.  Or I'm fine
with merging this through the IB tree if you'd prefer (if you want me
to do that, let me know if you think it's 2.6.16 material).

Thanks,
  Roland



struct neigh_ops currently has a destructor field, which no in-kernel
drivers outside of infiniband use.  The infiniband/ulp/ipoib in-tree
driver stashes some info in the neighbour structure (the results of
the second-stage lookup from ARP results to real link-level path), and
it uses neigh-ops-destructor to get a callback so it can clean up
this extra info when a neighbour is freed.  We've run into problems
with this: since the destructor is in an ops field that is shared
between neighbours that may belong to different net devices, there's
no way to set/clear it safely.

The following patch moves this field to neigh_parms where it can be
safely set, together with its twin neigh_setup.  Two additional
patches in the patch series update ipoib to use this new interface.

Signed-off-by: Michael S. Tsirkin [EMAIL PROTECTED]
Signed-off-by: Roland Dreier [EMAIL PROTECTED]

---

diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 6fa9ae1..b0666d6 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -68,6 +68,7 @@ struct neigh_parms
struct net_device *dev;
struct neigh_parms *next;
int (*neigh_setup)(struct neighbour *);
+   void(*neigh_destructor)(struct neighbour *);
struct neigh_table *tbl;
 
void*sysctl_table;
@@ -145,7 +146,6 @@ struct neighbour
 struct neigh_ops
 {
int family;
-   void(*destructor)(struct neighbour *);
void(*solicit)(struct neighbour *, struct sk_buff*);
void(*error_report)(struct neighbour *, struct 
sk_buff*);
int (*output)(struct sk_buff*);
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index e68700f..3489e23 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -586,8 +586,8 @@ void neigh_destroy(struct neighbour *nei
kfree(hh);
}
 
-   if (neigh-ops  neigh-ops-destructor)
-   (neigh-ops-destructor)(neigh);
+   if (neigh-parms-neigh_destructor)
+   (neigh-parms-neigh_destructor)(neigh);
 
skb_queue_purge(neigh-arp_queue);
 
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c 
b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index fd3f5c8..9588124 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -247,7 +247,6 @@ static void path_free(struct net_device 
if (neigh-ah)
ipoib_put_ah(neigh-ah);
*to_ipoib_neigh(neigh-neighbour) = NULL;
-   neigh-neighbour-ops-destructor = NULL;
kfree(neigh);
}
 
@@ -530,7 +529,6 @@ static void neigh_add_path(struct sk_buf
 err:
*to_ipoib_neigh(skb-dst-neighbour) = NULL;
list_del(neigh-list);
-   neigh-neighbour-ops-destructor = NULL;
kfree(neigh);
 
++priv-stats.tx_dropped;
@@ -769,21 +767,9 @@ static void ipoib_neigh_destructor(struc
ipoib_put_ah(ah);
 }
 
-static int ipoib_neigh_setup(struct neighbour *neigh)
-{
-   /*
-* Is this kosher?  I can't find anybody in the kernel that
-* sets neigh-destructor, so we should be able to set it here
-* without trouble.
-*/
-   neigh-ops-destructor = ipoib_neigh_destructor;
-
-   return 0;
-}
-
 static int ipoib_neigh_setup_dev(struct net_device *dev, struct neigh_parms 
*parms)
 {
-   parms-neigh_setup = ipoib_neigh_setup;
+   parms-neigh_destructor = ipoib_neigh_destructor;
 
return 0;
 }
___
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] RFC: mthca handling of signals

2006-01-23 Thread Roland Dreier
This is a good catch, and I think this is the right solution.  One
question: does the mutex use in mthca_multicast_detach() suffer from
the same problem?  It seems that we might call to detach from a
multicast group during process exit with a signal pending, and end up
failing there when we shouldn't.

 - 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


Re: [openib-general] Re: [PATCH] CMA and iWARP

2006-01-23 Thread Grant Grundler
On Mon, Jan 23, 2006 at 11:10:15AM -0800, Roland Dreier wrote:
 I disagree.  The proposed interface says that accepting a connection
 is completely the responsibility of the low-level driver, with no
 hooks for central policy, bypassing packet filtering, etc, etc.
 That's possibly a legitimate decision but it is a pretty major
 decision as well.

Yes, but we need to start somewhere. Until someone submits
a driver that does all the things you mention, it makes
sense to move forward with what has been proposed to date.

Isn't there a chance the proposed interface is the right approach anyway?
Or does RDMA infrastructure need to directly meddle with NETFILTER?

grant
___
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: [PATCH] RFC: mthca handling of signals

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]:
 Subject: [openib-general] Re: [PATCH] RFC: mthca handling of signals
 
 This is a good catch, and I think this is the right solution. One
 question: does the mutex use in mthca_multicast_detach() suffer from
 the same problem?  It seems that we might call to detach from a
 multicast group during process exit with a signal pending, and end up
 failing there when we shouldn't.

Looks like it's the same problem, although I didnt see it failing here.

-- 
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] Re: [PATCH] net: Move destructor from neigh-ops to neigh_params

2006-01-23 Thread David S. Miller
From: Roland Dreier [EMAIL PROTECTED]
Date: Mon, 23 Jan 2006 13:27:32 -0800

 I'd like to get an ACK or NAK of it from Dave

Dave is in New Zealand at linux.conf.au, don't expect him to
be too active for at least a week...

___
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] [PATCH] RFC: net: Neighbour, Route and Redirect Notifiers

2006-01-23 Thread Tom Tucker

Enclosed is a patch for notifying registered modules 
of neighbour updates, route changes, and redirect events. 
I'm submitting this first to this list for commentary since
I am presuming that OpenIB needs this functionality.

Something like this will be needed for iWARP support. 
The issue is that for an IP network, the next hop to
the remote peer can change dynamically. This patch provides 
a mechanism for the provider/core to be notified so that it can
change the next hop hardware mac in the RNIC. There are various
ways it can change, thus the different events. It could be 
argued that route change events are not needed. I included it 
here so that the argument can be had. 

Also PathMTU change needs to be added. The code that does 
this, however, is nasty and scattered about. I'll submit it 
after this has been looked at if people agree that this is a 
good general approach.

Thanks,

Signed-off-by: Tom Tucker [EMAIL PROTECTED]

diff -u -r -x '.*' --new-file linux-2.6.14.5/include/net/netevent.h 
linux-2.6.14.5.tom/include/net/netevent.h
--- linux-2.6.14.5/include/net/netevent.h   1969-12-31 18:00:00.0 
-0600
+++ linux-2.6.14.5.tom/include/net/netevent.h   2006-01-23 15:41:21.0 
-0600
@@ -0,0 +1,40 @@
+#ifndef _NET_EVENT_H
+#define _NET_EVENT_H
+
+/*
+ * Generic netevent notifiers
+ *
+ * Authors:
+ *  Tom Tucker  [EMAIL PROTECTED]
+ *
+ * Changes:
+ */
+
+#ifdef __KERNEL__
+
+#include net/dst.h
+
+struct netevent_redirect {
+   struct dst_entry *old;
+   struct dst_entry *new;
+};
+
+struct netevent_route_change {
+int event;
+struct fib_info *fib_info;
+};
+
+enum netevent_notif_type {
+   NETEVENT_NEIGH_UPDATE = 1, /* arg is * struct neighbour */
+   NETEVENT_ROUTE_UPDATE, /* arg is * struct netevent_route_change */
+   NETEVENT_REDIRECT, /* arg is * struct netevent_redirect */
+};
+
+extern int register_netevent_notifier(struct notifier_block *nb);
+extern int unregister_netevent_notifier(struct notifier_block *nb);
+extern int call_netevent_notifiers(unsigned long val, void *v);
+
+#endif
+#endif
+
+
diff -u -r -x '.*' --new-file linux-2.6.14.5/net/core/Makefile 
linux-2.6.14.5.tom/net/core/Makefile
--- linux-2.6.14.5/net/core/Makefile2005-12-26 18:26:33.0 -0600
+++ linux-2.6.14.5.tom/net/core/Makefile2006-01-16 13:41:42.0 
-0600
@@ -7,7 +7,7 @@
 
 obj-$(CONFIG_SYSCTL) += sysctl_net_core.o
 
-obj-y   += dev.o ethtool.o dev_mcast.o dst.o \
+obj-y   += dev.o ethtool.o dev_mcast.o dst.o netevent.o \
neighbour.o rtnetlink.o utils.o link_watch.o filter.o
 
 obj-$(CONFIG_XFRM) += flow.o
diff -u -r -x '.*' --new-file linux-2.6.14.5/net/core/neighbour.c 
linux-2.6.14.5.tom/net/core/neighbour.c
--- linux-2.6.14.5/net/core/neighbour.c 2005-12-26 18:26:33.0 -0600
+++ linux-2.6.14.5.tom/net/core/neighbour.c 2006-01-16 13:41:42.0 
-0600
@@ -30,9 +30,11 @@
 #include net/neighbour.h
 #include net/dst.h
 #include net/sock.h
+#include net/netevent.h
 #include linux/rtnetlink.h
 #include linux/random.h
 #include linux/string.h
+#include linux/notifier.h
 
 #define NEIGH_DEBUG 1
 
@@ -756,6 +758,7 @@
NEIGH_PRINTK2(neigh %p is suspected.\n, neigh);
neigh-nud_state = NUD_STALE;
neigh_suspect(neigh);
+   call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
}
} else if (state  NUD_DELAY) {
if (time_before_eq(now, 
@@ -763,6 +766,7 @@
NEIGH_PRINTK2(neigh %p is now reachable.\n, neigh);
neigh-nud_state = NUD_REACHABLE;
neigh_connect(neigh);
+   call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
next = neigh-confirmed + neigh-parms-reachable_time;
} else {
NEIGH_PRINTK2(neigh %p is probed.\n, neigh);
@@ -781,6 +785,7 @@
 
neigh-nud_state = NUD_FAILED;
notify = 1;
+   call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
NEIGH_CACHE_STAT_INC(neigh-tbl, res_failed);
NEIGH_PRINTK2(neigh %p is failed.\n, neigh);
 
@@ -1051,6 +1056,9 @@
(neigh-flags | NTF_ROUTER) :
(neigh-flags  ~NTF_ROUTER);
}
+
+   call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
+
write_unlock_bh(neigh-lock);
 #ifdef CONFIG_ARPD
if (notify  neigh-parms-app_probes)
diff -u -r -x '.*' --new-file linux-2.6.14.5/net/core/netevent.c 
linux-2.6.14.5.tom/net/core/netevent.c
--- linux-2.6.14.5/net/core/netevent.c  1969-12-31 18:00:00.0 -0600
+++ linux-2.6.14.5.tom/net/core/netevent.c  2006-01-16 13:50:25.0 
-0600
@@ -0,0 +1,69 @@
+/*
+ * Network event notifiers
+ *
+ * Authors:
+ *  Tom Tucker

Re: [openib-general] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Looks like 5162/5163 is fine building wise. Here is what I got for
 rdma_lat for a 32-bit server and 32-bit client:
 
 loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
 0x2340032 VAddr 0x0010019001
   remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
 0x0010019001
   Latency typical: 3.25746e+09 usec
   Latency best   : 3.19975e+09 usec
   Latency worst  : 4.21767e+10 usec
 
 and for rdma_bw:
 
 loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 RKey 
 0x23a0032 VAddr 0x00f7fce000
   remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 VAddr 
 0x00f7fb8000
   Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
   Bandwidth average: 4.3446e-07 MB/sec
   Service Demand peak (#0 to #999): 17301 cycles/KB
   Service Demand Avg  : 0 cycles/KB
 
 So it's still present...
 

I have just uploaded a simple utility which I called clock_test which
measures a clock once a second: this way you'll know whether mtfb 
is measuring time properly.

Update to the latest bits and give it a try.


-- 
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] Re: [PATCH] RFC: mthca handling of signals

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Roland Dreier [EMAIL PROTECTED]:
 Subject: Re: [PATCH] RFC: mthca handling of signals
 
 This is a good catch, and I think this is the right solution.  One
 question: does the mutex use in mthca_multicast_detach() suffer from
 the same problem?  It seems that we might call to detach from a
 multicast group during process exit with a signal pending, and end up
 failing there when we shouldn't.
 
  - R.

While this isnt a probem, we probably want to change the one in mcast_attach as
well, for consistency.

-- 
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] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 23.01.2006 [23:22:45 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
  
  On 23.01.2006 [10:24:12 -0800], Nishanth Aravamudan wrote:
   On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
Quoting r. Shirley Ma [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,?many svn 
 trees)
 
 
 If true, it seems that this line
 typedef unsigned long long cycles_t;
 should be replaced by
 typedef unsigned long cycles_t; 
 
 Yes. 

OK, I did it this way.
# svn ci get_clock.h
 Sendingget_clock.h
 Transmitting file data .
 Committed revision 5163.

You might want to try this rev out.
   
   heh, ok. I'm going to let the 5162 version of a 32/32 setup finish,
   then run 5163.
  
  Looks like 5162/5163 is fine building wise. Here is what I got for
  rdma_lat for a 32-bit server and 32-bit client:
  
  loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
  0x2340032 VAddr 0x0010019001
remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
  0x0010019001
Latency typical: 3.25746e+09 usec
Latency best   : 3.19975e+09 usec
Latency worst  : 4.21767e+10 usec
  
  and for rdma_bw:
  
  loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 RKey 
  0x23a0032 VAddr 0x00f7fce000
remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 
  VAddr 0x00f7fb8000
Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
Bandwidth average: 4.3446e-07 MB/sec
Service Demand peak (#0 to #999): 17301 cycles/KB
Service Demand Avg  : 0 cycles/KB
  
  So it's still present...
  
  Thanks,
  Nish
 
 Hmm. Could you please try running e.g. rdma_lat with -H to get all the 
 results?

rdma_lat -H:

loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x304b04 RKey 
0x2340032 VAddr 0x0010019001
  remote address: LID 0x08 QPN 0x140406 PSN 0xc99ca RKey 0x2340032 VAddr 
0x0010019001
#, usec
1, 3.20378e+09
2, 3.20646e+09
3, 3.21451e+09
4, 3.21586e+09
5, 3.2172e+09
6, 3.21854e+09
7, 3.21854e+09
8, 3.21988e+09
9, 3.21988e+09
10, 3.22123e+09
11, 3.22123e+09
12, 3.22123e+09
13, 3.22123e+09
14, 3.22123e+09
15, 3.22123e+09
16, 3.22257e+09
17, 3.22257e+09
18, 3.22257e+09
19, 3.22257e+09
20, 3.22391e+09
21, 3.22391e+09
22, 3.22391e+09
23, 3.22391e+09
24, 3.22391e+09
25, 3.22391e+09
26, 3.22391e+09
27, 3.22391e+09
28, 3.22391e+09
29, 3.22391e+09
30, 3.22391e+09
31, 3.22525e+09
32, 3.22525e+09
33, 3.22525e+09
34, 3.22525e+09
35, 3.22525e+09
36, 3.22525e+09
37, 3.22525e+09
38, 3.22659e+09
39, 3.22659e+09
40, 3.22659e+09
41, 3.22659e+09
42, 3.22659e+09
43, 3.22659e+09
44, 3.22659e+09
45, 3.22659e+09
46, 3.22794e+09
47, 3.22794e+09
48, 3.22794e+09
49, 3.22794e+09
50, 3.22794e+09
51, 3.22794e+09
52, 3.22794e+09
53, 3.22794e+09
54, 3.22794e+09
55, 3.22794e+09
56, 3.22794e+09
57, 3.22794e+09
58, 3.22794e+09
59, 3.22794e+09
60, 3.22794e+09
61, 3.22928e+09
62, 3.22928e+09
63, 3.22928e+09
64, 3.22928e+09
65, 3.22928e+09
66, 3.22928e+09
67, 3.22928e+09
68, 3.22928e+09
69, 3.22928e+09
70, 3.22928e+09
71, 3.22928e+09
72, 3.23062e+09
73, 3.23062e+09
74, 3.23062e+09
75, 3.23196e+09
76, 3.23196e+09
77, 3.23196e+09
78, 3.23196e+09
79, 3.23196e+09
80, 3.23196e+09
81, 3.23196e+09
82, 3.23196e+09
83, 3.23196e+09
84, 3.23196e+09
85, 3.23196e+09
86, 3.23196e+09
87, 3.23331e+09
88, 3.23331e+09
89, 3.23331e+09
90, 3.23331e+09
91, 3.23331e+09
92, 3.23331e+09
93, 3.23331e+09
94, 3.23465e+09
95, 3.23465e+09
96, 3.23465e+09
97, 3.23465e+09
98, 3.23465e+09
99, 3.23465e+09
100, 3.23465e+09
101, 3.23465e+09
102, 3.23465e+09
103, 3.23465e+09
104, 3.23465e+09
105, 3.23465e+09
106, 3.23465e+09
107, 3.23599e+09
108, 3.23599e+09
109, 3.23599e+09
110, 3.23599e+09
111, 3.23599e+09
112, 3.23599e+09
113, 3.23599e+09
114, 3.23599e+09
115, 3.23599e+09
116, 3.23599e+09
117, 3.23599e+09
118, 3.23599e+09
119, 3.23599e+09
120, 3.23599e+09
121, 3.23599e+09
122, 3.23599e+09
123, 3.23733e+09
124, 3.23733e+09
125, 3.23733e+09
126, 3.23733e+09
127, 3.23733e+09
128, 3.23733e+09
129, 3.23733e+09
130, 3.23733e+09
131, 3.23733e+09
132, 3.23733e+09
133, 3.23733e+09
134, 3.23733e+09
135, 3.23733e+09
136, 3.23733e+09
137, 3.23733e+09
138, 3.23733e+09
139, 3.23733e+09
140, 3.23733e+09
141, 3.23867e+09
142, 3.23867e+09
143, 3.23867e+09
144, 3.23867e+09
145, 3.23867e+09
146, 3.23867e+09
147, 3.23867e+09
148, 3.23867e+09
149, 3.23867e+09
150, 3.23867e+09
151, 3.23867e+09
152, 3.23867e+09
153, 3.23867e+09
154, 3.23867e+09
155, 3.23867e+09
156, 3.23867e+09
157, 3.23867e+09
158, 3.23867e+09
159, 3.24002e+09
160, 3.24002e+09
161, 3.24002e+09
162, 3.24002e+09
163, 3.24002e+09
164, 3.24002e+09
165, 3.24002e+09
166, 3.24002e+09
167, 3.24002e+09
168, 3.24002e+09
169, 3.24002e+09
170, 3.24002e+09
171, 3.24002e+09
172, 3.24002e+09
173, 3.24002e+09
174, 3.24002e+09
175, 3.24002e+09
176, 

[openib-general] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
 Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
 
 On 23.01.2006 [23:22:45 +0200], Michael S. Tsirkin wrote:
  Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
   Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
   
   On 23.01.2006 [10:24:12 -0800], Nishanth Aravamudan wrote:
On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
 Quoting r. Shirley Ma [EMAIL PROTECTED]:
  Subject: Re: Re: Userspace testing results (many kernels,?many svn 
  trees)
  
  
  If true, it seems that this line
  typedef unsigned long long cycles_t;
  should be replaced by
  typedef unsigned long cycles_t; 
  
  Yes. 
 
 OK, I did it this way.
 # svn ci get_clock.h
  Sendingget_clock.h
  Transmitting file data .
  Committed revision 5163.
 
 You might want to try this rev out.

heh, ok. I'm going to let the 5162 version of a 32/32 setup finish,
then run 5163.
   
   Looks like 5162/5163 is fine building wise. Here is what I got for
   rdma_lat for a 32-bit server and 32-bit client:
   
   loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
   0x2340032 VAddr 0x0010019001
 remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
   0x0010019001
 Latency typical: 3.25746e+09 usec
 Latency best   : 3.19975e+09 usec
 Latency worst  : 4.21767e+10 usec
   
   and for rdma_bw:
   
   loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 
   RKey 0x23a0032 VAddr 0x00f7fce000
 remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 
   VAddr 0x00f7fb8000
 Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
 Bandwidth average: 4.3446e-07 MB/sec
 Service Demand peak (#0 to #999): 17301 cycles/KB
 Service Demand Avg  : 0 cycles/KB
   
   So it's still present...
   
   Thanks,
   Nish
  
  Hmm. Could you please try running e.g. rdma_lat with -H to get all the 
  results?
 
 rdma_lat -H:
 
 loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x304b04 RKey 
 0x2340032 VAddr 0x0010019001
   remote address: LID 0x08 QPN 0x140406 PSN 0xc99ca RKey 0x2340032 VAddr 
 0x0010019001
 #, usec
 Latency typical: 3.25746e+09 usec
 Latency best   : 3.20378e+09 usec
 Latency worst  : 4.0715e+10 usec

Could the high/low bits be swapped?
What happends if you change cycles_t from long long to long?
Could you try running the clock_test utility?

-- 
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


Re: [openib-general] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 24.01.2006 [01:01:32 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Looks like 5162/5163 is fine building wise. Here is what I got for
  rdma_lat for a 32-bit server and 32-bit client:
  
  loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e RKey 
  0x2340032 VAddr 0x0010019001
remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 VAddr 
  0x0010019001
Latency typical: 3.25746e+09 usec
Latency best   : 3.19975e+09 usec
Latency worst  : 4.21767e+10 usec
  
  and for rdma_bw:
  
  loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 RKey 
  0x23a0032 VAddr 0x00f7fce000
remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 
  VAddr 0x00f7fb8000
Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
Bandwidth average: 4.3446e-07 MB/sec
Service Demand peak (#0 to #999): 17301 cycles/KB
Service Demand Avg  : 0 cycles/KB
  
  So it's still present...
  
 
 I have just uploaded a simple utility which I called clock_test which
 measures a clock once a second: this way you'll know whether mtfb 
 is measuring time properly.

Will it get built by running make in the perftest directory?

Any special usage I should know about?

Thanks,
Nish
___
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: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Michael S. Tsirkin
Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  I have just uploaded a simple utility which I called clock_test which
  measures a clock once a second: this way you'll know whether mtfb 
  is measuring time properly.
 
 Will it get built by running make in the perftest directory?
Yes.

 Any special usage I should know about?

Look at its source, you'll see.

You just run it for a while and it will print out the time
tkaen from mtfb each second.
Kill it with CRTL-C.

-- 
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] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Nishanth Aravamudan
On 24.01.2006 [01:39:07 +0200], Michael S. Tsirkin wrote:
 Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
  Subject: Re: Re: Userspace testing results (many kernels,many svn trees)
  
  On 23.01.2006 [23:22:45 +0200], Michael S. Tsirkin wrote:
   Quoting r. Nishanth Aravamudan [EMAIL PROTECTED]:
Subject: Re: Re: Userspace testing results (many kernels,many svn trees)

On 23.01.2006 [10:24:12 -0800], Nishanth Aravamudan wrote:
 On 23.01.2006 [19:55:05 +0200], Michael S. Tsirkin wrote:
  Quoting r. Shirley Ma [EMAIL PROTECTED]:
   Subject: Re: Re: Userspace testing results (many kernels,?many 
   svn trees)
   
   
   If true, it seems that this line
   typedef unsigned long long cycles_t;
   should be replaced by
   typedef unsigned long cycles_t; 
   
   Yes. 
  
  OK, I did it this way.
  # svn ci get_clock.h
   Sendingget_clock.h
   Transmitting file data .
   Committed revision 5163.
  
  You might want to try this rev out.
 
 heh, ok. I'm going to let the 5162 version of a 32/32 setup finish,
 then run 5163.

Looks like 5162/5163 is fine building wise. Here is what I got for
rdma_lat for a 32-bit server and 32-bit client:

loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x253f3e 
RKey 0x2340032 VAddr 0x0010019001
  remote address: LID 0x08 QPN 0x140406 PSN 0xa79d77 RKey 0x2340032 
VAddr 0x0010019001
  Latency typical: 3.25746e+09 usec
  Latency best   : 3.19975e+09 usec
  Latency worst  : 4.21767e+10 usec

and for rdma_bw:

loading libehca  local address:  LID 0x0d, QPN 0x150406, PSN 0x1b3ee5 
RKey 0x23a0032 VAddr 0x00f7fce000
  remote address: LID 0x08, QPN 0x150406, PSN 0x2fa0a9, RKey 0x23a0032 
VAddr 0x00f7fb8000
  Bandwidth peak (#0 to #999): 4.3446e-07 MB/sec
  Bandwidth average: 4.3446e-07 MB/sec
  Service Demand peak (#0 to #999): 17301 cycles/KB
  Service Demand Avg  : 0 cycles/KB

So it's still present...

Thanks,
Nish
   
   Hmm. Could you please try running e.g. rdma_lat with -H to get all the 
   results?
  
  rdma_lat -H:
  
  loading libehca   local address: LID 0x0d QPN 0x140406 PSN 0x304b04 RKey 
  0x2340032 VAddr 0x0010019001
remote address: LID 0x08 QPN 0x140406 PSN 0xc99ca RKey 0x2340032 VAddr 
  0x0010019001
  #, usec
  Latency typical: 3.25746e+09 usec
  Latency best   : 3.20378e+09 usec
  Latency worst  : 4.0715e+10 usec
 
 Could the high/low bits be swapped?

I was thinking that might be it, but wasn't sure.

 What happends if you change cycles_t from long long to long?
 Could you try running the clock_test utility?

I'll try the latter first (I found the usage from the file and it is
built by make). Could you send me a patch to do the former, in case I
need to? It can be a patch that applies directly in the perftest
directory.

Thanks,
Nish
___
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: [PATCH] CMA and iWARP

2006-01-23 Thread Roland Dreier
  Yes, but we need to start somewhere. Until someone submits
  a driver that does all the things you mention, it makes
  sense to move forward with what has been proposed to date.

I agree with this, and overall I am very much in favor of getting
iWARP support all the way upstream.

The reason I want to take time to make sure that we have the right
code before we merge it is that I get the feeling that there may be
elements of a) using the IB tree to get changes upstream that would be
vetoed on netdev and b) trying to get openib and the kernel community
to accept code just so a vendor can meet a product marketing deadline.

BTW, upon reflection, the best idea for moving this forward might be
to push the Ammasso driver along with the rest of the iWARP patches,
so that there's some more context for review.  Just because a vendor
is out of business is no reason for Linux not to have a driver for a
piece of hardware.

 - 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] DAT 2.0 immediate data proposal

2006-01-23 Thread Davis, Arlin R








Arkady,



Response
inline













From: Kanevsky, Arkady
[mailto:[EMAIL PROTECTED] 
Sent: Tuesday, January 17, 2006
7:16 AM
To: Davis, Arlin R; Lentini, James
Cc: [EMAIL PROTECTED];
openib-general@openib.org
Subject: RE: [RFC] DAT 2.0
immediate data proposal





Arlin,

a few things need to be addressed.



1. correlation with local and remote
invalidate

This potentially effects both DAT_DTOs and
post operations





How does
this differ from normal sends or writes?





2. Need a precise defintion for
CONFIRM_FLAG definition in a transport independent fashion.

What guarantees DAT Provider
provides on successful local completion?

Remote end guarantee?



My understanding what you are trying to do
is create 2 models one IB and one for iWARP.

So for IB Consumers will use CONFIRM_FLAG
and for iWARP IMMED_FLAG.

Provider will indicate in Provider_attr
which model it supports.



The issue I have with it is that I do not
see a model that Consumer can use to create

a transport independent code.

It looks like Immed_flag can be made
transport independent. But with sender specifying

the behavior a protocol extension is
needed for IB. IB will always deliver Immediate data

in the header not a payload and remote
Provider can control how it is delivered to a Consumer.

But this means that there is no need for
DTO_flags for Send side. Instead it can be

used for Recv side or controlled purely by
Provider.



Maybe we
need to just go back to one model and always deliver via the event? With the
post_recv_immed requirements, other transports have a mechanism to emulate and
create the necessary resources on the recv side to place idata and copy to
event when operation is completed. Would this work for iWARP?



Two different
models for receiving idata should be avoided if at all possible.



3. Need to define error behavior. for new
operations, async errors, EP behavior.



I will
work on updating the draft. post_send_immed will look much like post_send and
post_rdma_write_immed will look a lot like post_rdma_write with some additional
errors based on the post receive buffer requirement. 



4. Need to define DAT_Provider attributes
for immediate data and dto_flags behavior





5. Does Solicited_wait completion_flag
value now applicable for RDMA_write for immediate data?



yes,
applicable to send, send_immed, and write_immed



6. Is dto_completion_data xfer_length
include immediate_data size or not?



no



7. what memory privilages needed for a
recv buffer for immediate data?



Based on
the operation write_immed would require write privileges and send_immed
would require recv privileges.



8. SRQ interaction?



Good
question. all post_recv_immed or all post_recv? 



9. What happens of buffer for recv
operation NOT recv_immed is matched for incomming recv/rdma_write op?



The
rules should be:

Can receive
a send, send_immed, or write_immed with recv_immed. 

Cannot receive
send_immed or write_immed on a recv.



However,
I am not sure how you would enforce this on IB (DTO error on the receiving side?)
since the idata is delivered via CQ and does not require a special receive post
descriptor. 



10. Change dat_ep_post_write_immed to
dat_ep_post_rdma_write_immed to be consistent with current

terminology.



Ok



11. Need to cleanup operation description
to make it clear that Send|RDMA_write and immediate data part

is a single atomic operation. The current
followed by language is misleading.

Make it explicit that there is a single
local DTO completion and single remote DTO completion.



Ok, I will
clean that up



12. Is your intension that post_recv_immed
can ONLY except immediate data and is not

capable to recv any message?



No, the
intention is to extend the post_recv to handle 32bit idata which may arrive
with or without other send or rdma_write data.



Does it
make more sense to add a dto_flags to the existing post_recv?



13. size should be num_segments for
dat_ep_post_recv_immed()



ok










___
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] DAT 2.0 immediate data proposal

2006-01-23 Thread Caitlin Bestler

 
 
 
 Maybe we need to just go back to one model and always deliver
 via the event? With the post_recv_immed requirements, other
 transports have a mechanism to emulate and create the
 necessary resources on the recv side to place idata and copy
 to event when operation is completed. Would this work for iWARP?
 
 
 
 Two different models for receiving idata should be avoided if
 at all possible.
 
 
 

Always delivering by the event is not feasible for an iWARP vendor.
If you are working over RDMAC verbs then the work completion is no
longer accessible by the time the Work Completion is reaped. So copying
from the receive buffer to the event does not work since the location
of the receive buffer is now known only to the application.

The same problem exists in the opposite direction for InfiniBand HCAs
using standard verbs. They cannot copy from the CQE to the receive
buffer.

So the user is stuck checking a flag or the event type to know where
their data is. This is not terribly user friendly, but it is the best
that can be offered if we want to enable this optimization. The need
to check the flag does reduce the value of the optimization though.


 
 
 
 6. Is dto_completion_data xfer_length include immediate_data
 size or not?
 
 
 
 no
 
 
 

Then how does the receiver know how much data there is?

Even if an iWarp Provider attempts to optimize immediate
placement into the CQ, it will end up setting the xfer_length
whenever the packet is received out of order.

So it is far simpler for the application to simply know that
the data will be in the buffer, and that the xfer_length will
be set. It doesn't need to worry about whether they were set
by the cq_poll verb or by the hardware.

 
 
 
 11. Need to cleanup operation description to make it clear
 that Send|RDMA_write and immediate data part
 
 is a single atomic operation. The current followed by
 language is misleading.
 
 Make it explicit that there is a single local DTO completion
 and single remote DTO completion.
 
 
 
 Ok, I will clean that up
 
 

The best mapping available over RDMAC-compliant firmware for
an iWARP NIC would be to post two operations (RDMA Write followed
by a short Send). That would require additional spacein the send
and completion queues since a completion for the write can only
be suppressed for a successful completion.

Whether these extra slots were required would be an IA attribute.

And the requirement is that nothing for that QP can come between
the iWARP Write and the Send. How the provider does that is up
to it. Options include locking over both posts and a composite
work request. Anyone working over existing RDMAC-compliant
verbs will have to use the first approach.


 
 12. Is your intension that post_recv_immed can ONLY except
 immediate data and is not
 
 capable to recv any message?
 
 
 
 No, the intention is to extend the post_recv to handle 32bit
 idata which may arrive with or without other send or rdma_write data.
 
 
 
 Does it make more sense to add a dto_flags to the existing post_recv?
 


How does this map to iWARP?

When the data can be sent as an immediate OR as data, then when received
it can be placed into the receive buffer or even potentially directly
into the CQ when everything aligns just right.

But an iWARP sender has to place the immediate value as the first
four bytes of a Send message. There is no other mapping than makes
sense. Shoving the rest of the message up is complex, as is using
the last four bytes of the message since the last four bytes *could*
cross a DDP Segment boundary, and would require the user to provide
a buffer that was 4 bytes larger.
 



___
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: [PATCH] CMA and iWARP

2006-01-23 Thread Grant Grundler
On Mon, Jan 23, 2006 at 03:53:19PM -0800, Roland Dreier wrote:
   Yes, but we need to start somewhere. Until someone submits
   a driver that does all the things you mention, it makes
   sense to move forward with what has been proposed to date.
 
 I agree with this, and overall I am very much in favor of getting
 iWARP support all the way upstream.

*nod*

BTW, this is a message that needs to be repeated regularly until
iWARP support *is* upstream. The opposite perception is still lingering
in some places because of discussions from 1 and 2 years ago.

 The reason I want to take time to make sure that we have the right
 code before we merge it is that I get the feeling that there may be
 elements of a) using the IB tree to get changes upstream that would be
 vetoed on netdev

Yeah, that has happened before.  And I expect netdev folks might strongly
object (if they haven't already) to some sideband method of managing
TCP/IP config when TCP/IP is exclusively running on an RNIC (TOE with
RDMA front-end).  IMHO, that's seems like the hardest to fix issue
so everyone is happy. Most of the other details can be negotiated.

 and b) trying to get openib and the kernel community
 to accept code just so a vendor can meet a product marketing deadline.

TTM via kernel.org?  BWHAHAHA! :^)

Sorry, I can't take that serious. :)

 BTW, upon reflection, the best idea for moving this forward might be
 to push the Ammasso driver along with the rest of the iWARP patches,
 so that there's some more context for review.  Just because a vendor
 is out of business is no reason for Linux not to have a driver for a
 piece of hardware.

Exactly. says the co-maintainer of the parisc-linux port. :)

thanks,
grant
___
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] DAT 2.0 immediate data proposal

2006-01-23 Thread Kanevsky, Arkady



Arlin,
comments inline.






Arkady Kanevsky 
email: [EMAIL PROTECTED]
Network 
Appliance Inc. 
phone: 781-768-5395
1601 
Trapelo Rd. - Suite 16.Fax: 
781-895-1195
Waltham, MA 
02451 
central phone: 781-768-5300


  
  
  From: Davis, Arlin R 
  [mailto:[EMAIL PROTECTED] Sent: Monday, January 23, 2006 
  7:15 PMTo: Kanevsky, Arkady; Lentini, JamesCc: 
  openib-general@openib.org; [EMAIL PROTECTED]Subject: 
  RE: [RFC] DAT 2.0 immediate data proposal
  
  
  Arkady,
  
  Response 
  inline
  
  
  
  
  
  
  From: 
  Kanevsky, Arkady [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 17, 2006 7:16 
  AMTo: Davis, Arlin R; 
  Lentini, JamesCc: 
  [EMAIL PROTECTED]; openib-general@openib.orgSubject: RE: [RFC] DAT 2.0 immediate data 
  proposal
  
  Arlin,
  a few things need to 
  be addressed.
  
  1. correlation with 
  local and remote invalidate
  This potentially 
  effects both DAT_DTOs and post operations
  
  
  How 
  does this differ from normal sends or writes?[AK]We had added a new Send_with_Invalidate. 
  The completion also states
  whether RMR was invalidated and 
  which one. But the text for interaction
  is added through out the 
  completion and post operations.
  See the latest draft of uDAPL and 
  kDAPL 1.3 specs on the DAT reflector.
  
  
  2. Need a precise 
  defintion for CONFIRM_FLAG definition in a transport independent 
  fashion.
  What guarantees DAT 
  Provider "provides" on successful local 
  completion?
  Remote end 
  guarantee?
  
  My understanding what 
  you are trying to do is create 2 models one IB and one for 
  iWARP.
  So for IB Consumers 
  will use CONFIRM_FLAG and for iWARP IMMED_FLAG.
  Provider will 
  indicate in Provider_attr which model it 
supports.
  
  The issue I have with 
  it is that I do not see a model that Consumer can use to 
  create
  a transport 
  independent code.
  It looks like 
  Immed_flag can be made transport independent. But with "sender" 
  specifying
  the behavior a 
  protocol extension is needed for IB. IB will always deliver Immediate 
  data
  in the header not a 
  payload and remote Provider can control how it is delivered to a 
  Consumer.
  But this means that 
  there is no need for DTO_flags for Send side. Instead it can 
  be
  used for Recv side or 
  controlled purely by Provider.
  
  Maybe 
  we need to just go back to one model and always deliver via the event? With 
  the post_recv_immed requirements, other transports have a mechanism to emulate 
  and create the necessary resources on the recv side to place idata and copy to 
  event when operation is completed. Would this work for 
  iWARP?
  
  Two 
  different models for receiving idata should be avoided if at all 
  possible.[AK]Caitlin already responded to 
  this.
  
  3. Need to define 
  error behavior. for new operations, async errors, EP 
  behavior.
  
  I 
  will work on updating the draft. post_send_immed will look much like post_send 
  and post_rdma_write_immed will look a lot like post_rdma_write with some 
  additional errors based on the post receive buffer 
  requirement.[AK]Also consider if youwantto addremote 
  invalidate to the new operation.
  
  4. Need to define 
  DAT_Provider attributes for immediate data and dto_flags 
  behavior
  
  
  5. Does 
  Solicited_wait completion_flag value now applicable for RDMA_write for 
  immediate data?
  
  yes, 
  applicable to send, send_immed, and 
  write_immed
  
  6. Is 
  dto_completion_data xfer_length include immediate_data size or 
  not?
  
  no[AK]It can work both ways. 
  Either we include4 extra bytes for immediate dataor 
  not.
  Consumerjust have to know.The real data 
  alwaysstarts at 4 byte boundary into the buffer
  is immediate data is returned inline. We need to 
  state how immediate data is positioned
  if it is smaller than 4 
  bytes.
  7. what memory 
  privilages needed for a recv buffer for immediate data?
  
  Based 
  on the operation write_immed would require write privileges and send_immed 
  would require recv privileges.
  
  8. SRQ 
  interaction?
  
  Good 
  question. all post_recv_immed or all post_recv?[AK]Will this work for the 
  user model? Not supporting handling immediate recv and regular recv with 
  potential immediate data onone 
  SRQ.
  
  9. What happens of 
  buffer for recv operation NOT recv_immed is matched for incomming 
  recv/rdma_write op?
  
  The 
  rules should be:
  Can 
  receive a send, send_immed, or write_immed with recv_immed. 
  
  Cannot 
  receive send_immed or write_immed on a recv.
  
  However, 
  I am not sure how you would enforce this on IB (DTO error on the receiving 
  side?) since the idata is delivered via CQ and does not require a special 
  receive post descriptor.[AK]We can make 
  thisProvider attribute. Or we can state that if immed data is return in 
  event
  then there is no error for 
  recv.
  
  10. Change 
  dat_ep_post_write_immed to dat_ep_post_rdma_write_immed to be consistent with 
  current
  

Re: [openib-general] Re: Re: Userspace testing results (many kernels, many svn trees)

2006-01-23 Thread Roland Dreier
Michael Could the high/low bits be swapped?  What happends if you
Michael change cycles_t from long long to long?  Could you try
Michael running the clock_test utility?

What seems to be happening is that mftb is giving the low 32 bits of
the timebase (as expected on ppc32).  Since your get_cycles() is
returning a long long, those 32 bits get put in the most significant
32 bits of the return value, and the low 32 bits are garbage (ppc is
big endian).

If I compile clock_test for ppc32, I see that get_cycles() compiles to:

164c get_cycles:
164c:   7c 6c 42 e6 mftbr3
1650:   4e 80 00 20 blr

For comparison, a function like

unsigned long long blah(void) { return 0x10002ull; }

compiles to

 blah:
   0:   38 60 00 01 li  r3,1
   4:   38 80 00 02 li  r4,2
   8:   4e 80 00 20 blr

In other words the convention on ppc32 is that unsigned long long
return values have the high 32 bits in r3 and the low 32 bits in r4.

I think you want to use something like

typedef unsigned long long cycles_t;
static inline cycles_t get_cycles()
{
unsigned long low, hi, hi2;

do {
asm volatile (mftbu %0 : =r (hi));
asm volatile (mftb  %0 : =r (low));
asm volatile (mftbu %0 : =r (hi2));
} while (hi != hi2);

return ((unsigned long long) hi  32) | low;
}

for ppc32.  However, this is not quite enough to make things work on
all powerpc systems, because the timebase does not necessarily run at
the same speed as the CPU.  For example, on an IBM JS20 blade,
clock_test prints

1 sec = 6536.8 usec
1 sec = 6537.05 usec

(both as a 32-bit and 64-bit executable) because, as /proc/cpuinfo shows:

processor   : 0
cpu : PPC970FX, altivec supported
clock   : 2194.624509MHz
revision: 3.0

processor   : 1
cpu : PPC970FX, altivec supported
clock   : 2194.624509MHz
revision: 3.0

timebase: 14318000
machine : CHRP IBM,8842-P2C

the timebase runs at about 14.3 MHz, or approx 153 times slower than
the CPU clock.

I'm not sure how you want to fix this in perftest.

 - 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


Re: [openib-general] [PATCH] RFC: AMSO1100 iWARP Driver

2006-01-23 Thread Roland Dreier
Tom, thanks for posting this.  After thinking this over, I really
think the amso1100 driver belongs upstream.  If Linux is shipping
ARCnet and Sound Blaster CD-ROM support, then you've got a long wait
until your card is obsolete enough to forget about.  And having a real
iWARP driver just makes things a lot easier to justify and understand,
although I would still like to get buy-in from people like NetEffect
and Chelsio.

Anyway, some easy comments from a quick skim:

  +/*
  + * WARNING: If you change this file, also bump CC_IVN_BASE
  + * in common/include/clustercore/cc_ivn.h.
  + */

Uh, where's clustercore/cc_ivn.h?

  +typedef enum {
   ...
  +} cc_event_id_t;

  +typedef enum {
   ...
  +} cc_resource_indicator_t;

typedefs that create foo_t are strongly deprecated in the kernel.
Just do

enum cc_event_id {
 ...
};

and use enum cc_event_id everywhere.

  +switch (mq_index) {
  +case (0):

no need for parentheses here.  and can the magic (0), (1), (2) be
given names that say what they mean?

  +struct c2_mq_shared volatile *shared;

volatile declarations are almost always a bug... use proper locking or
memory barriers to say what you mean instead.

  +/*
  + * Now read back shared-armed to make the PCI
  + * write synchronous.  This is necessary for
  + * correct cq notification semantics.
  + */
  +{
  +volatile char c;
  +c  = shared-armed;
  +}

If you're reading across PCI you should be using readb().

  +qp-adapter_handle = reply-qp_handle;
  +qp-state = IB_QPS_RESET;
  +qp-send_sgl_depth = qp_attrs-cap.max_send_sge;
  +qp-rdma_write_sgl_depth = qp_attrs-cap.max_send_sge;
  +qp-recv_sgl_depth = qp_attrs-cap.max_recv_sge;

whitespace damage alert

  +#define assert(expr)  \
  +if(!(expr)) { \
  +printk(KERN_ERR PFX Assertion failed! %s, %s, %s, line %d\n,\
  +   #expr, __FILE__, __FUNCTION__, __LINE__);  \
  +}

probably just use BUG_ON() -- then you get a traceback too.

  +struct c2_adapter_pci_regs {
  +char reg_magic[8];
  +u32  version;
  +u32  ivn;
  +u32  pci_window_size;
  +u32  q0_q_size;

Indent with tabs not 4 spaces (lots of other places too)

  +static inline u32 c2_read32(const void __iomem *addr)
  +{
  +return readl(addr);
  +}

Any reason for not using readl() directly (and similarly for all the
other c2_readxx c2_writexx funcs)?

 - 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


Re: [openib-general] [PATCH] RFC: AMSO1100 iWARP Driver

2006-01-23 Thread Tom Tucker
Roland:

Thanks for the comments. I'll take a pass through given your review and
repost.

Thanks, again,

Tom

On Mon, 2006-01-23 at 22:07 -0800, Roland Dreier wrote:
 Tom, thanks for posting this.  After thinking this over, I really
 think the amso1100 driver belongs upstream.  If Linux is shipping
 ARCnet and Sound Blaster CD-ROM support, then you've got a long wait
 until your card is obsolete enough to forget about.  And having a real
 iWARP driver just makes things a lot easier to justify and understand,
 although I would still like to get buy-in from people like NetEffect
 and Chelsio.
 
 Anyway, some easy comments from a quick skim:
 
   +/*
   + * WARNING: If you change this file, also bump CC_IVN_BASE
   + * in common/include/clustercore/cc_ivn.h.
   + */
 
 Uh, where's clustercore/cc_ivn.h?

time-warp comment. 
 
   +typedef enum {
...
   +} cc_event_id_t;
 
   +typedef enum {
...
   +} cc_resource_indicator_t;
 
 typedefs that create foo_t are strongly deprecated in the kernel.
 Just do
 
 enum cc_event_id {
  ...
 };
 

got it.

 and use enum cc_event_id everywhere.
 
   +  switch (mq_index) {
   +  case (0):
 
 no need for parentheses here.  and can the magic (0), (1), (2) be
 given names that say what they mean?

yeah - I noticed this too.
 
   +  struct c2_mq_shared volatile *shared;
 
 volatile declarations are almost always a bug... use proper locking or
 memory barriers to say what you mean instead.

agreed. wmb()

 
   +  /*
   +   * Now read back shared-armed to make the PCI
   +   * write synchronous.  This is necessary for
   +   * correct cq notification semantics.
   +   */
   +  {
   +  volatile char c;
   +  c  = shared-armed;
   +  }
 
 If you're reading across PCI you should be using readb().

agreed.

 
   +  qp-adapter_handle = reply-qp_handle;
   +  qp-state = IB_QPS_RESET;
   +qp-send_sgl_depth = qp_attrs-cap.max_send_sge;
   +qp-rdma_write_sgl_depth = qp_attrs-cap.max_send_sge;
   +qp-recv_sgl_depth = qp_attrs-cap.max_recv_sge;
 
 whitespace damage alert

it's all over... vi vs. emacs wars.

 
   +#define assert(expr)  \
   +if(!(expr)) { \
   +printk(KERN_ERR PFX Assertion failed! %s, %s, %s, line %d\n,\
   +   #expr, __FILE__, __FUNCTION__, __LINE__);  \
   +}
 
 probably just use BUG_ON() -- then you get a traceback too.
 

yep.

   +struct c2_adapter_pci_regs {
   +char reg_magic[8];
   +u32  version;
   +u32  ivn;
   +u32  pci_window_size;
   +u32  q0_q_size;
 
 Indent with tabs not 4 spaces (lots of other places too)
 
   +static inline u32 c2_read32(const void __iomem *addr)
   +{
   +  return readl(addr);
   +}
 
 Any reason for not using readl() directly (and similarly for all the
 other c2_readxx c2_writexx funcs)?

we used to share firmware/device driver code... These could be reduced
to their Linux equivalent readl, etc

 
  - 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