Re: [ewg] RFC: Do we wish to take MPI out of OFED?

2009-06-03 Thread Pawel Dziekonski
On Tue, 02 Jun 2009 at 10:30:07PM +0300, Tziporet Koren wrote:

 Main reasons to keep MPI in OFED:
 - All participants test with the same MPI versions, and when installing 
 OFED it is ensured that MPI will work fine with this version.
 - Customers convenience in install (no need to go to more sites to get MPI)
 - MPI is an important RDMA ULP and although it is not developed in OFA it 
 is widely used by OFED customers

As a customer I strongly support above mentioned pros. It's a
guarantee for us that MPI is well tested with OFED release. I believe
that this effort saves a lot of troubles that would be raised from
separate releases of MPI and OFED distros.

thanks, Pawel
-- 
Pawel Dziekonski pawel.dziekon...@wcss.pl
Wroclaw Centre for Networking  Supercomputing, HPC Department
Politechnika Wr., pl. Grunwaldzki 9, bud. D2/101, 50-377 Wroclaw, POLAND
phone: +48 71 3202043, fax: +48 71 3225797, http://www.wcss.wroc.pl
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


[ewg] Re: [ofa-general] RFC: Do we wish to take MPI out of OFED?

2009-06-03 Thread Jeff Squyres
I'll state right up front that I'm in favor of removing MPI from  
OFED.  :-)



On Jun 2, 2009, at 3:30 PM, Tziporet Koren wrote:


Here are some of the reasons for keeping MPI in or out of OFED.

Main reasons to take MPI out of OFED:
- MPI is not developed under OFA
- Need to synchronize between different projects

  -- This point alone is hugely difficult.  OFED has been held up  
multiple times because of MPI release delays.  I would like to stress  
that the open source MPI implementations are entirely different  
software projects with minimal overlap of personnel between MPI and  
OFED.  Also, OFED is but one of the stacks that the MPI's support.


For example, many Open MPI members don't care about OpenFabrics at  
all.  It has sometimes been difficult to rationalize MPI schedule  
adjustments because of OFED.


- Some customers prefer to install a different MPI version then the  
one in OFED


- Also note that OFED only includes the open source MPI's; it's not a  
level playing field.


- Several of Open MPI's features are disabled in OFED builds (e.g.,  
scheduler / resource manager support), causing customers to re- 
download / re-build Open MPI anyway.  *** This is a fairly important  
point to us.




Main reasons to keep MPI in OFED:
- All participants test with the same MPI versions, and when  
installing OFED it is ensured that MPI will work fine with this  
version.


  -- I think we're all convinced that testing OFED with the various  
MPI implementations is a Good Thing -- nobody is suggesting that we  
remove that.  As discussed on the call, we can certainly all test the  
same version of the open source MPI's during OFED releases and include  
this information in the release notes (OFED x.y.z was tested with  
Open MPI a.b.c.).


The Open MPI project would be happy to contribute the MPI Testing Tool  
(MTT; which itself is also open source) to OFED.  The MTT was designed  
for almost exactly this purpose: a large, distributed set of  
organizations that all need to test the same versions of MPI and  
report the results to a central location.  The MTT is not specific to  
Open MPI; it can be used with any MPI implementation.  The MTT is  
essentially an engine to download/install MPI implementations, run a  
set of MPI tests (e.g., IMB, OSU and others), and then report the  
results to a central database.


FWIW: several OFA members are using MTT internally for their own MPI  
testing.


- Customers convenience in install (no need to go to more sites to  
get MPI)


  -- My $0.02 is that this is a dubious point.  In installing a  
production HPC cluster, you're getting 20 pieces of software and  
installing them together.  So if you have to get OFED *and* MPI (i.e.,  
21 pieces of software), I think it makes little difference.  Indeed,  
as noted above, MPI implementations move at a different speed than  
OFED, so many customers go install their own MPI's anyway (or, per an  
above point, need to re-install MPI's to enable features that the OFED  
packaging disables).


I think the biggest issue related to this point is going to be  
customers asking you *used* to bundle MPI, why don't do anymore?


- MPI is an important RDMA ULP and although it is not developed in  
OFA it is widely used by OFED customers


  -- This point is actually used as a crutch by the OFA: why develop  
your own comprehensive performance testing / monitoring tools when you  
have MPI with all of its tools?  Removing MPI may help motivate the  
OFA to have better networking tools than those provided by a ULP.   
(before you flame, I admit that this is a minor point, but it is still  
worth noting -- I've always thought it strange that people use MPI to  
monitor and test their OF-based networks...)


--
Jeff Squyres
Cisco Systems

___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


Re: [ewg] [PATCH OFED-1.5] NFSRDMA: NFS backport for SLES11

2009-06-03 Thread Vladimir Sokolovsky

Jon Mason wrote:

This patch provides the NFS backport for SLES11.  Since the RDMA
infrastructure has not been backports for this distro release, only TCP
support has been tested.  It passes Connectathon as a client and server.

Signed-Off-By: Jon Mason j...@opengridcomputing.com
---




Hi Jon,
This patch is broken and cannot be applied. Please fix.
In addition, this patch includes changes to files not related to NFS:

 kernel_patches/backport/2.6.27_sles11/mlx4_en_0010_do_not_use_netdev_ops.patch 
|   65
 kernel_patches/backport/2.6.27_sles11/mlx4_en_0030_lro_backport.patch  
|  606 --

All other patches were applied.

Regards,
Vladimir
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


Re: [ewg] RFC: Do we wish to take MPI out of OFED?

2009-06-03 Thread Doug Ledford

On Jun 3, 2009, at 3:39 AM, Pawel Dziekonski wrote:

On Tue, 02 Jun 2009 at 10:30:07PM +0300, Tziporet Koren wrote:


Main reasons to keep MPI in OFED:
- All participants test with the same MPI versions, and when  
installing

OFED it is ensured that MPI will work fine with this version.
- Customers convenience in install (no need to go to more sites to  
get MPI)
- MPI is an important RDMA ULP and although it is not developed in  
OFA it

is widely used by OFED customers


As a customer I strongly support above mentioned pros. It's a
guarantee for us that MPI is well tested with OFED release.


MPI makes an effective test bed for the RDMA stack whether it is  
shipped with it or not.  Removing the MPIs from the distribution would  
not, in all likelihood, change the fact that MPIs would be used to  
test the RDMA stack prior to release.



I believe
that this effort saves a lot of troubles that would be raised from
separate releases of MPI and OFED distros.


If you truly believe this, and you accept that shipping the MPI with  
the RDMA stack is an acceptable solution to the problem, then you are  
encouraging totally craptacular engineering as a customer.  Since you  
have a non-US email address, and since craptacular is a word I use  
frequently, but which I also sort of just made up, let me define  
that.  Sometimes, things are good.  When they are really good, they  
are spectacular.  Sometimes, things are crap.  When they are *really*  
crap, they are craptacular.


The RDMA stack provides an API.  The MPI stacks are nothing more than  
a consumer of that API.  This is no different than TCP sockets and MPI  
stacks: API provider/consumer relationship.  If there is a problem  
between the MPIs and the RDMA stacks from version to version, it means  
that one of them isn't adhering to the API.  The proper solution to  
that problem is *NOT* to put them together and throw the API out the  
window, it's to get the API provider and consumer to adhere to the API  
and to make sure that the API works.  Otherwise, the only solution is  
to bundle *every* consumer of that API with the API provider because  
the API stability is, you guessed it, craptacular.


If you aren't part of the solution, you're part of the problem.  Don't  
encourage craptacular engineering that throws the API out the window.




thanks, Pawel
--
Pawel Dziekonski pawel.dziekon...@wcss.pl
Wroclaw Centre for Networking  Supercomputing, HPC Department
Politechnika Wr., pl. Grunwaldzki 9, bud. D2/101, 50-377 Wroclaw,  
POLAND

phone: +48 71 3202043, fax: +48 71 3225797, http://www.wcss.wroc.pl
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg



--

Doug Ledford dledf...@redhat.com

GPG KeyID: CFBFF194
http://people.redhat.com/dledford

InfiniBand Specific RPMS
http://people.redhat.com/dledford/Infiniband






PGP.sig
Description: This is a digitally signed message part
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

[ewg] [PATCH] IB/ehca: Remove superfluous bitmasks from QP control block

2009-06-03 Thread Joachim Fenkes
All the fields in the control block are nicely right-aligned, so no masking
is necessary.

Signed-off-by: Joachim Fenkes fen...@de.ibm.com
---
 drivers/infiniband/hw/ehca/ehca_classes_pSeries.h |   28 -
 drivers/infiniband/hw/ehca/ehca_qp.c  |   18 +++-
 2 files changed, 5 insertions(+), 41 deletions(-)

diff --git a/drivers/infiniband/hw/ehca/ehca_classes_pSeries.h 
b/drivers/infiniband/hw/ehca/ehca_classes_pSeries.h
index 1798e64..689c357 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes_pSeries.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes_pSeries.h
@@ -165,7 +165,6 @@ struct hcp_modify_qp_control_block {
 #define MQPCB_MASK_ALT_P_KEY_IDXEHCA_BMASK_IBM( 7,  7)
 #define MQPCB_MASK_RDMA_ATOMIC_CTRL EHCA_BMASK_IBM( 8,  8)
 #define MQPCB_MASK_QP_STATE EHCA_BMASK_IBM( 9,  9)
-#define MQPCB_QP_STATE  EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_RDMA_NR_ATOMIC_RESP_RES  EHCA_BMASK_IBM(11, 11)
 #define MQPCB_MASK_PATH_MIGRATION_STATE EHCA_BMASK_IBM(12, 12)
 #define MQPCB_MASK_RDMA_ATOMIC_OUTST_DEST_QPEHCA_BMASK_IBM(13, 13)
@@ -176,60 +175,33 @@ struct hcp_modify_qp_control_block {
 #define MQPCB_MASK_RETRY_COUNT  EHCA_BMASK_IBM(18, 18)
 #define MQPCB_MASK_TIMEOUT  EHCA_BMASK_IBM(19, 19)
 #define MQPCB_MASK_PATH_MTU EHCA_BMASK_IBM(20, 20)
-#define MQPCB_PATH_MTU  EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_MAX_STATIC_RATE  EHCA_BMASK_IBM(21, 21)
-#define MQPCB_MAX_STATIC_RATE   EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_DLID EHCA_BMASK_IBM(22, 22)
-#define MQPCB_DLID  EHCA_BMASK_IBM(16, 31)
 #define MQPCB_MASK_RNR_RETRY_COUNT  EHCA_BMASK_IBM(23, 23)
-#define MQPCB_RNR_RETRY_COUNT   EHCA_BMASK_IBM(29, 31)
 #define MQPCB_MASK_SOURCE_PATH_BITS EHCA_BMASK_IBM(24, 24)
-#define MQPCB_SOURCE_PATH_BITS  EHCA_BMASK_IBM(25, 31)
 #define MQPCB_MASK_TRAFFIC_CLASSEHCA_BMASK_IBM(25, 25)
-#define MQPCB_TRAFFIC_CLASS EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_HOP_LIMITEHCA_BMASK_IBM(26, 26)
-#define MQPCB_HOP_LIMIT EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_SOURCE_GID_IDX   EHCA_BMASK_IBM(27, 27)
-#define MQPCB_SOURCE_GID_IDXEHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_FLOW_LABEL   EHCA_BMASK_IBM(28, 28)
-#define MQPCB_FLOW_LABELEHCA_BMASK_IBM(12, 31)
 #define MQPCB_MASK_DEST_GID EHCA_BMASK_IBM(30, 30)
 #define MQPCB_MASK_SERVICE_LEVEL_AL EHCA_BMASK_IBM(31, 31)
-#define MQPCB_SERVICE_LEVEL_AL  EHCA_BMASK_IBM(28, 31)
 #define MQPCB_MASK_SEND_GRH_FLAG_AL EHCA_BMASK_IBM(32, 32)
-#define MQPCB_SEND_GRH_FLAG_AL  EHCA_BMASK_IBM(31, 31)
 #define MQPCB_MASK_RETRY_COUNT_AL   EHCA_BMASK_IBM(33, 33)
-#define MQPCB_RETRY_COUNT_ALEHCA_BMASK_IBM(29, 31)
 #define MQPCB_MASK_TIMEOUT_AL   EHCA_BMASK_IBM(34, 34)
-#define MQPCB_TIMEOUT_ALEHCA_BMASK_IBM(27, 31)
 #define MQPCB_MASK_MAX_STATIC_RATE_AL   EHCA_BMASK_IBM(35, 35)
-#define MQPCB_MAX_STATIC_RATE_ALEHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_DLID_AL  EHCA_BMASK_IBM(36, 36)
-#define MQPCB_DLID_AL   EHCA_BMASK_IBM(16, 31)
 #define MQPCB_MASK_RNR_RETRY_COUNT_AL   EHCA_BMASK_IBM(37, 37)
-#define MQPCB_RNR_RETRY_COUNT_ALEHCA_BMASK_IBM(29, 31)
 #define MQPCB_MASK_SOURCE_PATH_BITS_AL  EHCA_BMASK_IBM(38, 38)
-#define MQPCB_SOURCE_PATH_BITS_AL   EHCA_BMASK_IBM(25, 31)
 #define MQPCB_MASK_TRAFFIC_CLASS_AL EHCA_BMASK_IBM(39, 39)
-#define MQPCB_TRAFFIC_CLASS_AL  EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_HOP_LIMIT_AL EHCA_BMASK_IBM(40, 40)
-#define MQPCB_HOP_LIMIT_AL  EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_SOURCE_GID_IDX_ALEHCA_BMASK_IBM(41, 41)
-#define MQPCB_SOURCE_GID_IDX_AL EHCA_BMASK_IBM(24, 31)
 #define MQPCB_MASK_FLOW_LABEL_ALEHCA_BMASK_IBM(42, 42)
-#define MQPCB_FLOW_LABEL_AL EHCA_BMASK_IBM(12, 31)
 #define MQPCB_MASK_DEST_GID_AL  EHCA_BMASK_IBM(44, 44)
 #define MQPCB_MASK_MAX_NR_OUTST_SEND_WR EHCA_BMASK_IBM(45, 45)
-#define MQPCB_MAX_NR_OUTST_SEND_WR  EHCA_BMASK_IBM(16, 31)
 #define MQPCB_MASK_MAX_NR_OUTST_RECV_WR EHCA_BMASK_IBM(46, 46)
-#define MQPCB_MAX_NR_OUTST_RECV_WR  EHCA_BMASK_IBM(16, 31)
 #define MQPCB_MASK_DISABLE_ETE_CREDIT_CHECK EHCA_BMASK_IBM(47, 47)
-#define MQPCB_DISABLE_ETE_CREDIT_CHECK  EHCA_BMASK_IBM(31, 31)
-#define MQPCB_QP_NUMBER   

Re: [ewg] [PATCH OFED-1.5] NFSRDMA: NFS backport for SLES11

2009-06-03 Thread Jon Mason
On Wed, Jun 03, 2009 at 04:10:00PM +0300, Vladimir Sokolovsky wrote:
 Jon Mason wrote:
 This patch provides the NFS backport for SLES11.  Since the RDMA
 infrastructure has not been backports for this distro release, only TCP
 support has been tested.  It passes Connectathon as a client and server.

 Signed-Off-By: Jon Mason j...@opengridcomputing.com
 ---



 Hi Jon,
 This patch is broken and cannot be applied. Please fix.
 In addition, this patch includes changes to files not related to NFS:

  
 kernel_patches/backport/2.6.27_sles11/mlx4_en_0010_do_not_use_netdev_ops.patch
  |   65
  kernel_patches/backport/2.6.27_sles11/mlx4_en_0030_lro_backport.patch
   |  606 --

 All other patches were applied.

Sorry, I will split that up into 2 patches and recreate the SLES11 NFS
patch.  Should be sentout shortly.

Thanks,
Jon


 Regards,
 Vladimir
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


[ewg] [PATCH OFED-1.5] NFSRDMA: NFS backport for SLES11 (version 2)

2009-06-03 Thread Jon Mason
This patch provides the NFS backport for SLES11.  Since the RDMA
infrastructure has not been backports for this distro release, only TCP
support has been tested.  It passes Connectathon as a client and server.

Signed-Off-By: Jon Mason j...@opengridcomputing.com
---

diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/cpumask.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/cpumask.h
new file mode 100644
index 000..391cc04
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/cpumask.h
@@ -0,0 +1,10 @@
+#ifndef BACKPORT_LINUX_CPUMASK_H
+#define BACKPORT_LINUX_CPUMASK_H
+
+#include_next linux/cpumask.h
+#include asm/topology.h
+
+#define cpumask_of(cpu)(get_cpu_mask(cpu))
+#define cpumask_of_node(node) (_node_to_cpumask_ptr(node))
+
+#endif /* BACKPORT_LINUX_CPUMASK_H */
diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/dcache.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/dcache.h
new file mode 100644
index 000..4a571af
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/dcache.h
@@ -0,0 +1,22 @@
+#ifndef BACKPORT_LINUX_DCACHE_H
+#define BACKPORT_LINUX_DCACHE_H
+
+#include_next linux/dcache.h
+#include linux/err.h
+
+extern void iput(struct inode *);
+
+static inline struct dentry *d_obtain_alias(struct inode *inode)
+{
+   struct dentry *rc;
+
+   rc = d_alloc_anon(inode);
+   if (!rc) {
+   iput(inode);
+   return ERR_PTR(-ENOMEM);
+   }
+
+   return rc;
+}
+
+#endif
diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/fs.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/fs.h
new file mode 100644
index 000..094dda6
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/fs.h
@@ -0,0 +1,63 @@
+#ifndef BACKPORT_LINUX_FS_H
+#define BACKPORT_LINUX_FS_H
+
+#include_next linux/fs.h
+#include linux/sched.h
+#include linux/fs_struct.h
+
+struct lock_manager {
+   struct list_head list;
+};
+
+void locks_start_grace(struct lock_manager *);
+void locks_end_grace(struct lock_manager *);
+int locks_in_grace(void);
+
+static inline bool execute_ok(struct inode *inode)
+{
+   return (inode-i_mode  S_IXUGO) || S_ISDIR(inode-i_mode);
+}
+
+static inline int current_umask(void)
+{
+   return current-fs-umask;
+}
+
+static inline void free_fs_struct(struct fs_struct *fs)
+{
+   struct task_struct *tsk;
+
+   tsk = kzalloc(sizeof(struct task_struct), GFP_KERNEL);
+   if (!tsk)
+   return;
+
+   spin_lock_init(tsk-alloc_lock);
+   tsk-fs = fs;
+
+   exit_fs(tsk);
+   kfree(tsk);
+}
+
+static inline int unshare_fs_struct(void)
+{
+   struct fs_struct *fs = current-fs;
+   struct fs_struct *new_fs = copy_fs_struct(fs);
+   int kill;
+
+   if (!new_fs)
+   return -ENOMEM;
+
+   task_lock(current);
+   write_lock(fs-lock);
+   kill = atomic_read(fs-count) == 1;
+   current-fs = new_fs;
+   write_unlock(fs-lock);
+   task_unlock(current);
+
+   if (kill)
+   free_fs_struct(fs);
+
+   return 0;
+}
+
+#endif
diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/fscache.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/fscache.h
new file mode 100644
index 000..f758384
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/fscache.h
@@ -0,0 +1,4 @@
+#ifndef BACKPORT_LINUX_FSCACHE_H
+#define BACKPORT_LINUX_FSCACHE_H
+
+#endif
diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/jiffies.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/jiffies.h
new file mode 100644
index 000..9871948
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/jiffies.h
@@ -0,0 +1,10 @@
+#ifndef _JIFFIES_BACKPORT_H
+#define _JIFFIES_BACKPORT_H
+
+#include_next linux/jiffies.h
+
+#define time_in_range_open(a,b,c) \
+   (time_after_eq(a,b)  \
+time_before(a,c))
+
+#endif /* _JIFFIES_BACKPORT_H */
diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/namei.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/namei.h
new file mode 100644
index 000..ef46b08
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/namei.h
@@ -0,0 +1,17 @@
+#ifndef BACKPORT_LINUX_NAMEI_H
+#define BACKPORT_LINUX_NAMEI_H
+
+#include_next linux/namei.h
+
+#define LOOKUP_EXCL 0x0400
+
+static inline int kern_path(const char *name, unsigned int flags, struct path 
*path)
+{
+   struct nameidata nd;
+   int rc = path_lookup(name, flags, nd);
+   if (!rc)
+   *path = nd.path;
+   return rc;
+}
+
+#endif /* BACKPORT_LINUX_NAMEI_H */
diff --git a/kernel_addons/backport/2.6.27_sles11/include/linux/pagevec.h 
b/kernel_addons/backport/2.6.27_sles11/include/linux/pagevec.h
new file mode 100644
index 000..1fb684d
--- /dev/null
+++ b/kernel_addons/backport/2.6.27_sles11/include/linux/pagevec.h
@@ -0,0 +1,17 @@
+#ifndef 

Re: [ewg] [PATCH OFED-1.5] Move SLES11 backports to attic

2009-06-03 Thread Vladimir Sokolovsky

Jon Mason wrote:

The SLES11 backports are legacy patches from the OFED 1.4 build, and do
not apply cleanly to the 2.6.30 kernel.  Move them to the attic so
they can be referenced for their historical value but no longer
interfere   with the OFED 1.5 build.
  
Signed-Off-By: Jon Mason j...@opengridcomputing.com

---



Applied,

Regards,
Vladimir
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


Re: [ewg] [PATCH OFED-1.5] NFSRDMA: NFS backport for SLES11 (version 2)

2009-06-03 Thread Vladimir Sokolovsky

Jon Mason wrote:

This patch provides the NFS backport for SLES11.  Since the RDMA
infrastructure has not been backports for this distro release, only TCP
support has been tested.  It passes Connectathon as a client and server.

Signed-Off-By: Jon Mason j...@opengridcomputing.com

---




Applied,

Regards,
Vladimir
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


[ewg] [PATCH OFED-1.5] MTHCA: Fix ilog2 error

2009-06-03 Thread Jon Mason
ilog2 and roundup_pow_of_two are needed to build mthca, but the current
version of log2.h lacks these in 2.6.22 (and most likely other versions
as well).  When log2.h is updated to match the version currently in
RHEL5, mthca compiles cleanly.

Signed-Off-By: Jon Mason j...@opengridcomputing.com
---

diff --git a/kernel_addons/backport/2.6.22/include/linux/log2.h 
b/kernel_addons/backport/2.6.22/include/linux/log2.h
index 546a967..aebafd9 100644
--- a/kernel_addons/backport/2.6.22/include/linux/log2.h
+++ b/kernel_addons/backport/2.6.22/include/linux/log2.h
@@ -17,6 +17,54 @@
 #include linux/bitops.h
 
 /*
+ * deal with unrepresentable constant logarithms
+ */
+extern __attribute__((const, noreturn))
+int ilog2_NaN(void);
+
+/*
+ * non-constant log of base 2 calculators
+ * - the arch may override these in asm/bitops.h if they can be implemented
+ *   more efficiently than using fls() and fls64()
+ * - the arch is not required to handle n==0 if implementing the fallback
+ */
+#ifndef CONFIG_ARCH_HAS_ILOG2_U32
+static inline __attribute__((const))
+int __ilog2_u32(u32 n)
+{
+   return fls(n) - 1;
+}
+#endif
+
+#ifndef CONFIG_ARCH_HAS_ILOG2_U64
+static inline __attribute__((const))
+int __ilog2_u64(u64 n)
+{
+   return fls64(n) - 1;
+}
+#endif
+
+/*
+ *  Determine whether some value is a power of two, where zero is
+ * *not* considered a power of two.
+ */
+
+static inline __attribute__((const))
+bool is_power_of_2(unsigned long n)
+{
+   return (n != 0  ((n  (n - 1)) == 0));
+}
+
+/*
+ * round up to nearest power of two
+ */
+static inline __attribute__((const))
+unsigned long __roundup_pow_of_two(unsigned long n)
+{
+   return 1UL  fls_long(n - 1);
+}
+
+/*
  * round down to nearest power of two
  */
 static inline __attribute__((const))
@@ -25,6 +73,107 @@ unsigned long __rounddown_pow_of_two(unsigned long n)
return 1UL  (fls_long(n) - 1);
 }
 
+/**
+ * ilog2 - log of base 2 of 32-bit or a 64-bit unsigned value
+ * @n - parameter
+ *
+ * constant-capable log of base 2 calculation
+ * - this can be used to initialise global variables from constant data, hence
+ *   the massive ternary operator construction
+ *
+ * selects the appropriately-sized optimised version depending on sizeof(n)
+ */
+#define ilog2(n)   \
+(  \
+   __builtin_constant_p(n) ? ( \
+   (n)  1 ? ilog2_NaN() : \
+   (n)  (1ULL  63) ? 63 :   \
+   (n)  (1ULL  62) ? 62 :   \
+   (n)  (1ULL  61) ? 61 :   \
+   (n)  (1ULL  60) ? 60 :   \
+   (n)  (1ULL  59) ? 59 :   \
+   (n)  (1ULL  58) ? 58 :   \
+   (n)  (1ULL  57) ? 57 :   \
+   (n)  (1ULL  56) ? 56 :   \
+   (n)  (1ULL  55) ? 55 :   \
+   (n)  (1ULL  54) ? 54 :   \
+   (n)  (1ULL  53) ? 53 :   \
+   (n)  (1ULL  52) ? 52 :   \
+   (n)  (1ULL  51) ? 51 :   \
+   (n)  (1ULL  50) ? 50 :   \
+   (n)  (1ULL  49) ? 49 :   \
+   (n)  (1ULL  48) ? 48 :   \
+   (n)  (1ULL  47) ? 47 :   \
+   (n)  (1ULL  46) ? 46 :   \
+   (n)  (1ULL  45) ? 45 :   \
+   (n)  (1ULL  44) ? 44 :   \
+   (n)  (1ULL  43) ? 43 :   \
+   (n)  (1ULL  42) ? 42 :   \
+   (n)  (1ULL  41) ? 41 :   \
+   (n)  (1ULL  40) ? 40 :   \
+   (n)  (1ULL  39) ? 39 :   \
+   (n)  (1ULL  38) ? 38 :   \
+   (n)  (1ULL  37) ? 37 :   \
+   (n)  (1ULL  36) ? 36 :   \
+   (n)  (1ULL  35) ? 35 :   \
+   (n)  (1ULL  34) ? 34 :   \
+   (n)  (1ULL  33) ? 33 :   \
+   (n)  (1ULL  32) ? 32 :   \
+   (n)  (1ULL  31) ? 31 :   \
+   (n)  (1ULL  30) ? 30 :   \
+   (n)  (1ULL  29) ? 29 :   \
+   (n)  (1ULL  28) ? 28 :   \
+   (n)  (1ULL  27) ? 27 :   \
+   (n)  (1ULL  26) ? 26 :   \
+   (n)  (1ULL  25) ? 25 :   \
+   (n)  (1ULL  24) ? 24 :   \
+   (n)  (1ULL  23) ? 23 :   \
+   (n)  (1ULL  22) ? 22 :   \
+   (n)  (1ULL  21) ? 21 :   \
+   (n)  (1ULL  20) ? 20 :   \
+   (n)  (1ULL  19) ? 19 :   \
+   (n)  (1ULL  18) ? 18 :   \
+   (n)  (1ULL  17) ? 17 :   \
+   (n)  (1ULL  16) ? 16 :   \
+   (n)  (1ULL  15) ? 15 :   \
+   (n)  (1ULL  14) ? 14 :   \
+   (n)  (1ULL  13) ? 13 :   \
+   (n)  (1ULL  12) ? 12 :   \
+   (n)  (1ULL  11) ? 11 :   \
+   (n)  (1ULL  10) ? 10 :   \
+

[ewg] Re: [PATCH] IB/ehca: Remove superfluous bitmasks from QP control block

2009-06-03 Thread Roland Dreier
looks fine, applied for 2.6.31
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


RE: [ewg] RFC: Do we wish to take MPI out of OFED?

2009-06-03 Thread Anatoly Greenblatt
Hi,

I vote to remove.

This is our Open MPI team leader answer:

I think it should be taken out from the following reasons:
ompi related build errors or bugs can affect OFED release dates
many customers prefer their own mpi packages
almost all linux distros contain pre-compiled mpi rpms which can be
installed with yum/apt-get/...
having MPI as part of OFED comlicates its release process and scripts.


Regards,
Anatoly.


-Original Message-
From: ewg-boun...@lists.openfabrics.org
[mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Tziporet Koren
Sent: Tuesday, June 02, 2009 22:30
To: EWG; OpenFabrics General
Subject: [ewg] RFC: Do we wish to take MPI out of OFED?

Hello,
In the EWG meeting yesterday there was a suggestion to take out all MPI 
packages including MPI tests out from OFED.

Here are some of the reasons for keeping MPI in or out of OFED.

Main reasons to take MPI out of OFED:
- MPI is not developed under OFA
- Need to synchronize between different projects
- Some customers prefer to install a different MPI version then the one 
in OFED

Main reasons to keep MPI in OFED:
- All participants test with the same MPI versions, and when installing 
OFED it is ensured that MPI will work fine with this version.
- Customers convenience in install (no need to go to more sites to get
MPI)
- MPI is an important RDMA ULP and although it is not developed in OFA 
it is widely used by OFED customers

Before we decide to do such a change I would like to get the more 
opinions from the comunity.

Thanks,
Tziporet
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg