[ofa-general] Blue sexy pill - $0.{_2SYMBCHAR}

2008-06-04 Thread Claudia Martinez
Blue sexy pill - $0.{_2SYMBCHAR}Have a look at our site

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

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

[ofa-general] Now you can get it before anyone.

2008-06-04 Thread Adolph Presley
Bacheelor, MasteerMBA, and Doctoraate diplomas available in the field of your 
choice that's right, you can even become a Doctor and receive all the benefits 
that comes with it!

Our Diplomas/Certificates are recognised in most countries

No required examination, tests, classes, books, or interviews.

** No one is turned down
** Confidentiality assured

CALL US 24 HOURS A DAY, 7 DAYS A WEEK

For US: 1-801-504-2132
Outside US: +1-801-504-2132

Just leave your NAME amp; PHONE NO. (with CountryCode) in the voicemail

our staff will get back to you in next few days

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

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

[ofa-general] RNIC resource limits

2008-06-04 Thread Philip Frey1
Hello,

I have asked this question about RNIC resource limits before:

snip

  Could you give me some insight in what the limits of the Chelsio RNIC 
  are? (Max MRs, QPs, PDs etc)
 
  Many thanks and kind regards,
   Philip 


snip

 Try running ibv_devinfo -v to see driver/hw limits.

 However, how are you limited?  Are you getting failures registering 
 memory?  Did you try setting your ulimit -l to unlimited or at least as 
 large as the memory region you want to register?

 Steve.

Steve, thanks for the answer!

When running 'ibv_devinfo -v' on my Chelsio RNIC (T3) with OFED 1.3 (FW 
5.0)
I get the following:

[EMAIL PROTECTED] ~]# ibv_devinfo -v
hca_id: cxgb3_0
fw_ver: 0.0.0
node_guid:  0007:4301:33f7:
sys_image_guid: 0007:4301:33f7:
vendor_id:  0x1425
vendor_part_id: 49
hw_ver: 0x0
board_id:   1425.31
phys_port_cnt:  2
max_mr_size:0x
page_size_cap:  0x0
max_qp: 32736
max_qp_wr:  16777215
device_cap_flags:   0x00038000
max_sge:4
max_sge_rd: 1
max_cq: 32767
max_cqe:16777215
max_mr: 32768
max_pd: 32767
max_qp_rd_atom: 8
max_ee_rd_atom: 0
max_res_rd_atom:0
max_qp_init_rd_atom:8
max_ee_init_rd_atom:0
atomic_cap: ATOMIC_NONE (0)
max_ee: 0
max_rdd:0
max_mw: 0
max_raw_ipv6_qp:0
max_raw_ethy_qp:0
max_mcast_grp:  0
max_mcast_qp_attach:0
max_total_mcast_qp_attach:  0
max_ah: 0
max_fmr:0
max_srq:0
max_pkeys:  0
local_ca_ack_delay: 0
port:   1
state:  PORT_ACTIVE (4)
max_mtu:4096 (5)
active_mtu: invalid MTU (225)
sm_lid: 0
port_lid:   0
port_lmc:   0x00
max_msg_sz: 0x
port_cap_flags: 0x009f
max_vl_num: invalid value (255)
bad_pkey_cntr:  0x213
qkey_viol_cntr: 0x0
sm_sl:  0
pkey_tbl_len:   1
gid_tbl_len:1
subnet_timeout: 146
init_type_reply:39
active_width:   4X (2)
active_speed:   5.0 Gbps (2)
phys_state: invalid physical state (0)

port:   2
state:  PORT_ACTIVE (4)
max_mtu:4096 (5)
active_mtu: invalid MTU (225)
sm_lid: 0
port_lid:   0
port_lmc:   0x00
max_msg_sz: 0x
port_cap_flags: 0x009f
max_vl_num: invalid value (255)
bad_pkey_cntr:  0x213
qkey_viol_cntr: 0x0
sm_sl:  0
pkey_tbl_len:   1
gid_tbl_len:1
subnet_timeout: 146
init_type_reply:39
active_width:   4X (2)
active_speed:   5.0 Gbps (2)
phys_state: invalid physical state (0)

When creating a QP, I need to specify some capacity information:
struct ibv_qp_cap {
uint32_tmax_send_wr;
uint32_tmax_recv_wr;
uint32_tmax_send_sge;
uint32_tmax_recv_sge;
uint32_tmax_inline_data;
};

According to the above listing, I should be able to use:
16777215

[ofa-general] [PATCH][MINOR] opensm/osm_sa_mcmember_record.c: Minor logic change in __get_new_mlid

2008-06-04 Thread Hal Rosenstock
opensm/osm_sa_mcmember_record.c: Minor logic change in __get_new_mlid

Signed-off-by: Hal Rosenstock [EMAIL PROTECTED]

diff --git a/opensm/opensm/osm_sa_mcmember_record.c 
b/opensm/opensm/osm_sa_mcmember_record.c
index c982f40..3cfd5f7 100644
--- a/opensm/opensm/osm_sa_mcmember_record.c
+++ b/opensm/opensm/osm_sa_mcmember_record.c
@@ -181,10 +181,9 @@ __get_new_mlid(IN osm_sa_t * sa, IN ib_net16_t 
requested_mlid)
 
/* track all used mlids in the array (by mlid index) */
used_mlids_array = (uint8_t *) malloc(sizeof(uint8_t) * max_num_mlids);
-   if (used_mlids_array)
-   memset(used_mlids_array, 0, sizeof(uint8_t) * max_num_mlids);
if (!used_mlids_array)
return 0;
+   memset(used_mlids_array, 0, sizeof(uint8_t) * max_num_mlids);
 
/* scan all available multicast groups in the DB and fill in the table 
*/
while (p_mgrp != (osm_mgrp_t *) cl_qmap_end(p_subn-mgrp_mlid_tbl)) {


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

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


[ofa-general] [PATCH][MINOR] opensm/osm_ucast_ftree.c: Eliminate unnecessary check in __osm_ftree_sw_tbl_element_create

2008-06-04 Thread Hal Rosenstock
opensm/osm_ucast_ftree.c: Eliminate unnecessary check in
__osm_ftree_sw_tbl_element_create

Signed-off-by: Hal Rosenstock [EMAIL PROTECTED]

diff --git a/opensm/opensm/osm_ucast_ftree.c b/opensm/opensm/osm_ucast_ftree.c
index e7104e5..caf231c 100644
--- a/opensm/opensm/osm_ucast_ftree.c
+++ b/opensm/opensm/osm_ucast_ftree.c
@@ -349,8 +349,7 @@ static ftree_sw_tbl_element_t 
*__osm_ftree_sw_tbl_element_create(IN ftree_sw_t *
return NULL;
memset(p_element, 0, sizeof(ftree_sw_tbl_element_t));
 
-   if (p_element)
-   p_element-p_sw = p_sw;
+   p_element-p_sw = p_sw;
return p_element;
 }
 


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

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


[ofa-general] [PATCH] opensm/osm_pkey.c: Eliminate potential NULL pointer dereference

2008-06-04 Thread Hal Rosenstock
opensm/osm_pkey.c: Eliminate potential NULL pointer dereference
Also, a comment reformat

Signed-off-by: Hal Rosenstock [EMAIL PROTECTED]

diff --git a/opensm/opensm/osm_pkey.c b/opensm/opensm/osm_pkey.c
index 9b43669..c3b8394 100644
--- a/opensm/opensm/osm_pkey.c
+++ b/opensm/opensm/osm_pkey.c
@@ -151,8 +151,9 @@ osm_pkey_tbl_set(IN osm_pkey_tbl_t * p_pkey_tbl,
if (!p_pkey_block) {
p_pkey_block =
(ib_pkey_table_t *) malloc(sizeof(ib_pkey_table_t));
-   if (p_pkey_block)
-   memset(p_pkey_block, 0, sizeof(ib_pkey_table_t));
+   if (!p_pkey_block)
+   return (IB_ERROR);
+   memset(p_pkey_block, 0, sizeof(ib_pkey_table_t));
cl_ptr_vector_set(p_pkey_tbl-blocks, block, p_pkey_block);
}
 
@@ -163,8 +164,8 @@ osm_pkey_tbl_set(IN osm_pkey_tbl_t * p_pkey_tbl,
   NOTE: as the spec does not require uniqueness of PKeys in
   tables there is no other way but to refresh the entire keys map.
 
-  Moreover, if the same key exists but with full membership it should 
have
-  precedence on the key with limited membership !
+  Moreover, if the same key exists but with full membership it should
+  have precedence on the key with limited membership !
 */
cl_map_remove_all(p_pkey_tbl-keys);
 


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

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


[ofa-general] Blue sexy pill - $0.{_2SYMBCHAR}

2008-06-04 Thread Mia Brunson
Blue sexy pill - $0.{_2SYMBCHAR}Click the link

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

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

[ofa-general] [PATCH] opensm/osm_port.c: Eliminate potential NULL pointer dereferences

2008-06-04 Thread Hal Rosenstock
opensm/osm_port.c: Eliminate potential NULL pointer dereferences
Also, comment format change

Signed-off-by: Hal Rosenstock [EMAIL PROTECTED]

diff --git a/opensm/opensm/osm_port.c b/opensm/opensm/osm_port.c
index 3398d04..d66e6be 100644
--- a/opensm/opensm/osm_port.c
+++ b/opensm/opensm/osm_port.c
@@ -127,8 +127,9 @@ osm_physp_init(IN osm_physp_t * const p_physp,
cl_ptr_vector_init(p_physp-slvl_by_port, num_slvl, 1);
for (i = 0; i  num_slvl; i++) {
p_slvl = (ib_slvl_table_t *) malloc(sizeof(ib_slvl_table_t));
-   if (p_slvl)
-   memset(p_slvl, 0, sizeof(ib_slvl_table_t));
+   if (!p_slvl)
+   break;
+   memset(p_slvl, 0, sizeof(ib_slvl_table_t));
cl_ptr_vector_set(p_physp-slvl_by_port, i, p_slvl);
}
 
@@ -594,6 +595,10 @@ osm_physp_replace_dr_path_with_alternate_dr_path(IN 
osm_log_t * p_log,
boolean_t next_list_is_full = TRUE, reached_dest = FALSE;
uint8_t num_ports, port_num;
 
+   p_nextPortsList = (cl_list_t *) malloc(sizeof(cl_list_t));
+   if (!p_nextPortsList)
+   return;
+
/*
   initialize the map of all port participating in current dr path
   not including first and last switches
@@ -609,7 +614,6 @@ osm_physp_replace_dr_path_with_alternate_dr_path(IN 
osm_log_t * p_log,
   BFS from OSM port until we find the target physp but avoid
   going through mapped ports
 */
-   p_nextPortsList = (cl_list_t *) malloc(sizeof(cl_list_t));
cl_list_construct(p_nextPortsList);
cl_list_init(p_nextPortsList, 10);
 
@@ -638,12 +642,16 @@ osm_physp_replace_dr_path_with_alternate_dr_path(IN 
osm_log_t * p_log,
next_list_is_full = FALSE;
p_currPortsList = p_nextPortsList;
p_nextPortsList = (cl_list_t *) malloc(sizeof(cl_list_t));
+   if (!p_nextPortsList) {
+   p_nextPortsList = p_currPortsList;
+   goto Exit;
+   }
cl_list_construct(p_nextPortsList);
cl_list_init(p_nextPortsList, 10);
p_physp = (osm_physp_t *) cl_list_remove_head(p_currPortsList);
while (p_physp != NULL) {
-   /* If we are in a switch - need to go out through all 
the other
-  physical ports of the switch */
+   /* If we are in a switch - need to go out through all
+  the other physical ports of the switch */
num_ports = osm_node_get_num_physp(p_physp-p_node);
 
for (port_num = 1; port_num  num_ports; port_num++) {


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

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


Re: [ofa-general] RNIC resource limits

2008-06-04 Thread Steve Wise

[EMAIL PROTECTED] ~]# ibv_devinfo -v
hca_id: cxgb3_0
fw_ver: 0.0.0
node_guid:  0007:4301:33f7:
sys_image_guid: 0007:4301:33f7:
vendor_id:  0x1425
vendor_part_id: 49
hw_ver: 0x0
board_id:   1425.31
phys_port_cnt:  2
max_mr_size:0x
page_size_cap:  0x0
max_qp: 32736
max_qp_wr:  16777215
device_cap_flags:   0x00038000
max_sge:4
max_sge_rd: 1
max_cq: 32767
max_cqe:16777215
max_mr: 32768
max_pd: 32767
max_qp_rd_atom: 8
max_ee_rd_atom: 0
max_res_rd_atom:0
max_qp_init_rd_atom:8
max_ee_init_rd_atom:0
atomic_cap: ATOMIC_NONE (0)
max_ee: 0
max_rdd:0
max_mw: 0
max_raw_ipv6_qp:0
max_raw_ethy_qp:0
max_mcast_grp:  0
max_mcast_qp_attach:0
max_total_mcast_qp_attach:  0
max_ah: 0
max_fmr:0
max_srq:0
max_pkeys:  0
local_ca_ack_delay: 0
port:   1
state:  PORT_ACTIVE (4)
max_mtu:4096 (5)
active_mtu: invalid MTU (225)
sm_lid: 0
port_lid:   0
port_lmc:   0x00
max_msg_sz: 0x
port_cap_flags: 0x009f
max_vl_num: invalid value (255)
bad_pkey_cntr:  0x213
qkey_viol_cntr: 0x0
sm_sl:  0
pkey_tbl_len:   1
gid_tbl_len:1
subnet_timeout: 146
init_type_reply:39
active_width:   4X (2)
active_speed:   5.0 Gbps (2)
phys_state: invalid physical state (0)

port:   2
state:  PORT_ACTIVE (4)
max_mtu:4096 (5)
active_mtu: invalid MTU (225)
sm_lid: 0
port_lid:   0
port_lmc:   0x00
max_msg_sz: 0x
port_cap_flags: 0x009f
max_vl_num: invalid value (255)
bad_pkey_cntr:  0x213
qkey_viol_cntr: 0x0
sm_sl:  0
pkey_tbl_len:   1
gid_tbl_len:1
subnet_timeout: 146
init_type_reply:39
active_width:   4X (2)
active_speed:   5.0 Gbps (2)
phys_state: invalid physical state (0)

When creating a QP, I need to specify some capacity information:
struct ibv_qp_cap {
uint32_tmax_send_wr;
uint32_tmax_recv_wr;
uint32_tmax_send_sge;
uint32_tmax_recv_sge;
uint32_tmax_inline_data;
};

According to the above listing, I should be able to use:
16777215WRs(max_qp_wr: 16777215)   [is this per qp 
or total?]

4SGEs (max_sge: 4)

It does not say anything about the max_inline_data.



max inline supported is 64.


I have tried to create a QP with as many resources as possible and found 
the following:

max_send_wrcannot exceed 16384
max_recv_wrcannot exceed 1023
max_send_sgecannot exceed 4294967295 (maximum a uint32_t can hold)
max_recv_sgecannot exceed 4294967295 (maximum a uint32_t can hold)
max_inline_datacannot exceed 64



The limits described in the device attributes are 

[ofa-general] device attributes

2008-06-04 Thread Steve Wise

Roland/All,

Should the device attributes (for instance max_send_wr) be the max 
supported by the HW or the max supported by the OS or something else?


For instance:  Chelsio's HW can handle very large work queues, but since 
Linux limits the size of contiguous dma coherent memory allocations, the 
actual limits are much smaller.  Which should I be using for the device 
attributes?


Also, the chelsio device uses a single work queue to implement the SQ 
and RQ abstractions.  So the max SQ depth depends on the RQ depth and 
vice versa.  This leads to device max attributes that aren't that useful.


I'm wondering what application writes should glean from these attributes...

Steve

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

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


Re: [ofa-general] device attributes

2008-06-04 Thread Tom Tucker

On Wed, 2008-06-04 at 09:28 -0500, Steve Wise wrote:
 Roland/All,
 
 Should the device attributes (for instance max_send_wr) be the max 
 supported by the HW or the max supported by the OS or something else?
 

Something else. 

 For instance:  Chelsio's HW can handle very large work queues, but since 
 Linux limits the size of contiguous dma coherent memory allocations, the 
 actual limits are much smaller.

Basing the limit on an OS resource seems arbitrary and dangerous.
Applications using advertised adapter resource limits will unnecessarily
consume the maximum.

   Which should I be using for the device 
 attributes?
 

Arbitrary knee jerk == 512. 

However, surveying the current app usage as well as the other
manufacturers advertised limits will make it less arbitrary.

 Also, the chelsio device uses a single work queue to implement the SQ 
 and RQ abstractions.  So the max SQ depth depends on the RQ depth and 
 vice versa.  This leads to device max attributes that aren't that useful.
 

So the real limit is the HW WQ max and therefore max SQ = HW WQ max -
RQ max?  Setting RQ and SQ to 512 solves this problem. 


 I'm wondering what application writes should glean from these attributes...
 

I guess you mean application writer? 

Here's what I suggest:

- Set the RQ and SQ max to some reasonable default limit (e.g. 512).
- Add an escape hatch by providing module options to override
  the default max.

Tom

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

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

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


Re: [ofa-general] device attributes

2008-06-04 Thread Steve Wise

Here's what I suggest:

- Set the RQ and SQ max to some reasonable default limit (e.g. 512).
- Add an escape hatch by providing module options to override
  the default max.



Or don't actually enforce the 512 max.  IE set the attrs to what we 
think apps should use or max out at, but allow larger ones if the OS can 
handle it.


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

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


***SPAM*** Re: [ofa-general] RNIC resource limits

2008-06-04 Thread Dotan Barak

Hi.

Philip Frey1 wrote:


Hello,

I have asked this question about RNIC resource limits before:

snip

  Could you give me some insight in what the limits of the Chelsio RNIC
  are? (Max MRs, QPs, PDs etc)
 
  Many thanks and kind regards,
   Philip


snip

 Try running ibv_devinfo -v to see driver/hw limits.

 However, how are you limited?  Are you getting failures registering
 memory?  Did you try setting your ulimit -l to unlimited or at least as
 large as the memory region you want to register?

 Steve.

Steve, thanks for the answer!

When running 'ibv_devinfo -v' on my Chelsio RNIC (T3) with OFED 1.3 
(FW 5.0)

I get the following:

[EMAIL PROTECTED] ~]# ibv_devinfo -v
hca_id: cxgb3_0
fw_ver: 0.0.0
node_guid:  0007:4301:33f7:
sys_image_guid: 0007:4301:33f7:
vendor_id:  0x1425
vendor_part_id: 49
hw_ver: 0x0
board_id:   1425.31
phys_port_cnt:  2
max_mr_size:0x
page_size_cap:  0x0
max_qp: 32736
max_qp_wr:  16777215
device_cap_flags:   0x00038000
max_sge:4
max_sge_rd: 1
max_cq: 32767
max_cqe:16777215
max_mr: 32768
max_pd: 32767
max_qp_rd_atom: 8
max_ee_rd_atom: 0
max_res_rd_atom:0
max_qp_init_rd_atom:8
max_ee_init_rd_atom:0
atomic_cap: ATOMIC_NONE (0)
max_ee: 0
max_rdd:0
max_mw: 0
max_raw_ipv6_qp:0
max_raw_ethy_qp:0
max_mcast_grp:  0
max_mcast_qp_attach:0
max_total_mcast_qp_attach:  0
max_ah: 0
max_fmr:0
max_srq:0
max_pkeys:  0
local_ca_ack_delay: 0
port:   1
state:  PORT_ACTIVE (4)
max_mtu:4096 (5)
active_mtu: invalid MTU (225)
sm_lid: 0
port_lid:   0
port_lmc:   0x00
max_msg_sz: 0x
port_cap_flags: 0x009f
max_vl_num: invalid value (255)
bad_pkey_cntr:  0x213
qkey_viol_cntr: 0x0
sm_sl:  0
pkey_tbl_len:   1
gid_tbl_len:1
subnet_timeout: 146
init_type_reply:39
active_width:   4X (2)
active_speed:   5.0 Gbps (2)
phys_state: invalid physical state 
(0)


port:   2
state:  PORT_ACTIVE (4)
max_mtu:4096 (5)
active_mtu: invalid MTU (225)
sm_lid: 0
port_lid:   0
port_lmc:   0x00
max_msg_sz: 0x
port_cap_flags: 0x009f
max_vl_num: invalid value (255)
bad_pkey_cntr:  0x213
qkey_viol_cntr: 0x0
sm_sl:  0
pkey_tbl_len:   1
gid_tbl_len:1
subnet_timeout: 146
init_type_reply:39
active_width:   4X (2)
active_speed:   5.0 Gbps (2)
phys_state: invalid physical state 
(0)


When creating a QP, I need to specify some capacity information:
struct ibv_qp_cap {
uint32_tmax_send_wr;
uint32_tmax_recv_wr;
uint32_tmax_send_sge;
uint32_tmax_recv_sge;
uint32_tmax_inline_data;
};

According to the above listing, I should be 

[ofa-general] Blue sexy pill - $0.81

2008-06-04 Thread Hattie Metcalf
Blue sexy pill - $0.81Click the link

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

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

[ofa-general] Re: device attributes

2008-06-04 Thread Roland Dreier
  Should the device attributes (for instance max_send_wr) be the max
  supported by the HW or the max supported by the OS or something else?

I think they should be what the consumer can expect to work -- ie the
upper limits on the current system, whether those limits are imposed by
the HW, driver, or whatever.

  For instance:  Chelsio's HW can handle very large work queues, but
  since Linux limits the size of contiguous dma coherent memory
  allocations, the actual limits are much smaller.  Which should I be
  using for the device attributes?

The smaller limit I think.

  Also, the chelsio device uses a single work queue to implement the SQ
  and RQ abstractions.  So the max SQ depth depends on the RQ depth and
  vice versa.  This leads to device max attributes that aren't that
  useful.

Not nice... I guess you could return half of the work queue depth for
each max since that is guaranteed to work?

  I'm wondering what application writes should glean from these attributes...

I think the limits are pointless unless they give something that an
application can actually request.  Some of the limits are pretty
useless, eg max # of CQs, since another app may have already used up all
the CQs.

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

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


Re: [ofa-general] Re: [PATCH v3 08/13] QLogic VNIC: sysfs interface implementation for the driver

2008-06-04 Thread Roland Dreier
  Or so the theory goes. Unfortunately, you need all that information
  before you can create the connection. The configfs guys have thought
  about that, but not implemented yet:
  
   [Committable Items]
   NOTE: Committable items are currently unimplemented.

The netconsole code in-tree has a separate enabled attribute that
serves the purpose of committing something.  Seems good enough for SRP
to use to me... the rename to commit idea seems cute but I don't see
that it buys much beyond this.
___
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

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


Re: [ofa-general][PATCH v2 1/2]mlx4: Multiple completion vectors support

2008-06-04 Thread Roland Dreier
  I resent the two patches that handle multiple completion vectors last week.
  What is the status for these patches? Are there further changes that need to 
  be done,
  or will these patches be applied?

I guess the patches look mostly OK, but are there any results that give
motivation for applying this?  I'm not asking about multicore systems
need multiple EQs so we should do this level of vagueness, but we have
application and/or ULP X that shows improvement Z using this.  Also any
thoughts on how an app/ULP can sanely choose which vector to use?

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

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


[ofa-general] Re: [PATCH] IB/ipoib: increase ring sizes

2008-06-04 Thread Roland Dreier
  Increase IPoIB ring sizes to twice the original size to act as
  a shock observer for high traffic picks.

Looks fine but I would like to include a little more motivation in the
changelog.  What type of workload benefits from this change?
___
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

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


Re: [ofa-general][PATCH 8/12 v1] mlx4: Dynamic port configuration

2008-06-04 Thread Roland Dreier
  +static int mlx4_change_port_types(struct mlx4_dev *dev,
  +  enum mlx4_port_type *port_types)
  +{
  +int i;
  +int err = 0;
  +int change = 0;
  +int port;
  +
  +for (i = 0; i   MLX4_MAX_PORTS; i++) {
  +if (port_types[i] != dev-caps.port_type[i + 1]) {
  +change = 1;
  +dev-caps.port_type[i + 1] = port_types[i];
  +}
  +}
  +if (change) {
  +mlx4_unregister_device(dev);
  +for (port = 1; port = dev-caps.num_ports; port++) {
  +mlx4_CLOSE_PORT(dev, port);
  +err = mlx4_SET_PORT(dev, port);
  +if (err) {
  +mlx4_err(dev, Failed to set port %d, 
  +  aborting\n, port);
  +return err;
  +}
  +}
  +err = mlx4_register_device(dev);
  +}
  +return err;
  +}

If I read the code correctly, there is no locking around this, so
multiple processes could race and cause all sorts of problems.  And also
you do the assignment

  +dev-caps.port_type[i + 1] = port_types[i];

before unregistering the device -- so there is a window where
caps.port_type has the wrong data -- not sure if this is a real issue.

  +static ssize_t show_port_type(struct device *dev,
  +  struct device_attribute *attr,
  +  char *buf)
  +{
  +struct pci_dev *pdev = to_pci_dev(dev);
  +struct mlx4_dev *mdev = pci_get_drvdata(pdev);
  +int i;
  +
  +sprintf(buf, Current port types:\n);
  +for (i = 1; i = MLX4_MAX_PORTS; i++) {
  +sprintf(buf, %sPort%d: %s\n, buf, i,
  +(mdev-caps.port_type[i] == MLX4_PORT_TYPE_IB)?
  +ib: eth);
  +}
  +return strlen(buf);
  +}

This violates the one-value-per-file rule for sysfs if I am reading the
code correctly.

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

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


Re: [ofa-general] Re: [PATCH v3 08/13] QLogic VNIC: sysfs interface implementation for the driver

2008-06-04 Thread Dave Dillow
On Wed, Jun 04, 2008 at 09:10:26PM -0700, Roland Dreier wrote:
   Or so the theory goes. Unfortunately, you need all that information
   before you can create the connection. The configfs guys have thought
   about that, but not implemented yet:
   
[Committable Items]
NOTE: Committable items are currently unimplemented.
 
 The netconsole code in-tree has a separate enabled attribute that
 serves the purpose of committing something.  Seems good enough for SRP
 to use to me... the rename to commit idea seems cute but I don't see
 that it buys much beyond this.

But... But... I've got nothing.

I mentioned the enable attribute as a possible way to do it, though it is
counter to the configfs's documented preference.  But it's there, it works
perfectly well, and the configfs guys have had over 2 years to implement
their alternate commit feature.

That said, given that SRP's been using sysfs since it went in, is there
a reason to move to configfs other than it's the new preferred way to do
it? Given the desire to not break ABI's -- and IIRC sysfs was declared to
be under that unbrella -- wouldn't we have to at least carry both
interfaces for a while, assuming we can even get rid of the sysfs one?

Carrying both adds a bit of a interesting twist -- targets added using
the sysfs add-target wouldn't show up under configfs. It may not be a
real problem, but it could be a bit of a surprise to an admin.

I'm not opposed to configfs, but the more I think about it, it doesn't
seem to bring much to the table for the SRP initiator other more code
and data structure size.
-- 
Dave Dillow
National Center for Computational Science
Oak Ridge National Laboratory
(865) 241-6602 office
___
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

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