[ewg] Re: [PATCH] IB/ehca: Serialize HCA-related hCalls on POWER5

2007-12-06 Thread Arnd Bergmann
On Thursday 06 December 2007, Joachim Fenkes wrote:
 printk(KERN_INFO eHCA Infiniband Device Driver 
        (Version  HCAD_VERSION )\n);
  
 +   /* Autodetect hCall locking -- we can't read the firmware version
 +    * directly, but we know that starting with POWER6, all firmware
 +    * versions are good.
 +    */
 +   if (ehca_lock_hcalls == -1)
 +   ehca_lock_hcalls = !(cur_cpu_spec-cpu_user_features
 +         PPC_FEATURE_ARCH_2_05);
 +
 ret = ehca_create_comp_pool();
 if (ret) {
 ehca_gen_err(Cannot create comp pool.);

We already talked about this yesterday, but I still feel that checking the
instruction set of the CPU should not be used to determine whether a
specific device driver implementation is used int hypervisor.

At the very least, I think you should change this to read the hypervisor
version number from the device tree, though the ideal solution would be
to have the absence of this bug encoded in the device node for the ehca
device itself.

Regarding the performance problem, have you checked whether converting all
your spin_lock_irqsave to spin_lock/spin_lock_irq improves your performance
on the older machines? Maybe it's already fast enough that way.

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


[ewg] Re: [PATCH] IB/ehca: Serialize HCA-related hCalls on POWER5

2007-12-06 Thread Roland Dreier
   +   ehca_lock_hcalls = !(cur_cpu_spec-cpu_user_features
   +         PPC_FEATURE_ARCH_2_05);

  We already talked about this yesterday, but I still feel that checking the
  instruction set of the CPU should not be used to determine whether a
  specific device driver implementation is used int hypervisor.

I had the same reaction... is testing cpu_user_features really the
best way to detect this issue?

I'll hold off applying this for a few days so you guys can decide the
best thing to do.  We'll definitely get some fix into 2.6.24 but we
have time to make a good decision.

  Regarding the performance problem, have you checked whether converting all
  your spin_lock_irqsave to spin_lock/spin_lock_irq improves your performance
  on the older machines? Maybe it's already fast enough that way.

It does seem that the only places that the hcall_lock is taken also
use msleep, so they must always be in process context.  So you can
safely just use spin_lock(), right?

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


[ewg] [GIT PULL ofed-1.3] cxgb3: backports remove 'ethtool -S' support.

2007-12-06 Thread Steve Wise

Vlad,

The patch below fixes broken chelsio backports for ofed-1.3.

Please pull from:

git://git.openfabrics.org/~swise/ofed-1.3 ofed_kernel

Thanks,

Steve.


-

From: Steve Wise [EMAIL PROTECTED]

cxgb3: backports remove 'ethtool -S' support.

I mistakenly removed the get_stats_count ethtool op for
cxgb3.  The real backport is to change its signature...

Signed-off-by: Steve Wise [EMAIL PROTECTED]
---

 .../backport/2.6.12/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.13/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.14/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.15/cxgb3_0200_sset.patch  |   17 +
 .../2.6.15_ubuntu606/cxgb3_0200_sset.patch |   17 +
 .../backport/2.6.16/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.16_sles10/cxgb3_0200_sset.patch   |   17 +
 .../2.6.16_sles10_sp1/cxgb3_0200_sset.patch|   17 +
 .../backport/2.6.17/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.18-EL5.1/cxgb3_0200_sset.patch|   17 +
 .../backport/2.6.18/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.18_FC6/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.19/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.20/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.21/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.22/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.23/cxgb3_0200_sset.patch  |   17 +
 .../backport/2.6.9_U4/cxgb3_0200_sset.patch|   17 +
 .../backport/2.6.9_U5/cxgb3_0200_sset.patch|   17 +
 19 files changed, 171 insertions(+), 152 deletions(-)

diff --git a/kernel_patches/backport/2.6.12/cxgb3_0200_sset.patch 
b/kernel_patches/backport/2.6.12/cxgb3_0200_sset.patch
index e331411..dde776e 100644
--- a/kernel_patches/backport/2.6.12/cxgb3_0200_sset.patch
+++ b/kernel_patches/backport/2.6.12/cxgb3_0200_sset.patch
@@ -1,29 +1,30 @@
 diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
-index 61ffc92..676df2f 100644
+index 61ffc92..57ffa8e 100644
 --- a/drivers/net/cxgb3/cxgb3_main.c
 +++ b/drivers/net/cxgb3/cxgb3_main.c
-@@ -1131,16 +1131,6 @@ static char stats_strings[][ETH_GSTRING_LEN] = {
+@@ -1131,14 +1131,9 @@ static char stats_strings[][ETH_GSTRING_LEN] = {

  };

 -static int get_sset_count(struct net_device *dev, int sset)
--{
++static int get_stats_count(struct net_device *dev)
+ {
 -  switch (sset) {
 -  case ETH_SS_STATS:
 -  return ARRAY_SIZE(stats_strings);
 -  default:
 -  return -EOPNOTSUPP;
 -  }
--}
--
- #define T3_REGMAP_SIZE (3 * 1024)
++  return ARRAY_SIZE(stats_strings);
+ }

- static int get_regs_len(struct net_device *dev)
-@@ -1645,7 +1635,6 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
+ #define T3_REGMAP_SIZE (3 * 1024)
+@@ -1645,7 +1640,7 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
.get_strings = get_strings,
.phys_id = cxgb3_phys_id,
.nway_reset = restart_autoneg,
 -  .get_sset_count = get_sset_count,
++  .get_stats_count = get_stats_count,
.get_ethtool_stats = get_stats,
.get_regs_len = get_regs_len,
.get_regs = get_regs,
diff --git a/kernel_patches/backport/2.6.13/cxgb3_0200_sset.patch 
b/kernel_patches/backport/2.6.13/cxgb3_0200_sset.patch
index e331411..dde776e 100644
--- a/kernel_patches/backport/2.6.13/cxgb3_0200_sset.patch
+++ b/kernel_patches/backport/2.6.13/cxgb3_0200_sset.patch
@@ -1,29 +1,30 @@
 diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
-index 61ffc92..676df2f 100644
+index 61ffc92..57ffa8e 100644
 --- a/drivers/net/cxgb3/cxgb3_main.c
 +++ b/drivers/net/cxgb3/cxgb3_main.c
-@@ -1131,16 +1131,6 @@ static char stats_strings[][ETH_GSTRING_LEN] = {
+@@ -1131,14 +1131,9 @@ static char stats_strings[][ETH_GSTRING_LEN] = {

  };

 -static int get_sset_count(struct net_device *dev, int sset)
--{
++static int get_stats_count(struct net_device *dev)
+ {
 -  switch (sset) {
 -  case ETH_SS_STATS:
 -  return ARRAY_SIZE(stats_strings);
 -  default:
 -  return -EOPNOTSUPP;
 -  }
--}
--
- #define T3_REGMAP_SIZE (3 * 1024)
++  return ARRAY_SIZE(stats_strings);
+ }

- static int get_regs_len(struct net_device *dev)
-@@ -1645,7 +1635,6 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
+ #define T3_REGMAP_SIZE (3 * 1024)
+@@ -1645,7 +1640,7 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
.get_strings = get_strings,
.phys_id = cxgb3_phys_id,
.nway_reset = restart_autoneg,
 -  .get_sset_count = get_sset_count,
++  .get_stats_count = get_stats_count,

[ewg] I was looking for you

2007-12-06 Thread Virgie Benson
Hello! I am bored tonight. I am nice girl that would like to chat with you. 
Email me at [EMAIL PROTECTED] only, because I am writing not from my personal 
email. Would you mind if I share some of my pictures with you?
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg