[ofa-general] [PATCH RFC] opensm: use malloc instead of cl_qlock_pool in SA processors
Sasha Khapyorsky
sashak at voltaire.com
Sun Dec 9 06:23:26 PST 2007
Use regular malloc/free instead of cl_qlock_pool for records allocation
in SA processors. Simple benchmark shows that regular malloc/free is
more than twice faster than cl_qlock_pool allocator and this doesn't
require additional locking (actually it still be faster than non-locking
cl_qpool allocator too).
Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
---
opensm/include/opensm/osm_sa_class_port_info.h | 4 +-
opensm/include/opensm/osm_sa_guidinfo_record.h | 8 +---
opensm/include/opensm/osm_sa_informinfo.h | 10 +---
opensm/include/opensm/osm_sa_lft_record.h | 8 +---
opensm/include/opensm/osm_sa_link_record.h | 7 +--
opensm/include/opensm/osm_sa_mcmember_record.h | 4 +-
opensm/include/opensm/osm_sa_mft_record.h | 8 +---
opensm/include/opensm/osm_sa_multipath_record.h | 8 +---
opensm/include/opensm/osm_sa_node_record.h | 8 +---
opensm/include/opensm/osm_sa_path_record.h | 8 +---
opensm/include/opensm/osm_sa_pkey_record.h | 8 +---
opensm/include/opensm/osm_sa_portinfo_record.h | 8 +---
opensm/include/opensm/osm_sa_service_record.h | 8 +---
opensm/include/opensm/osm_sa_slvl_record.h | 8 +---
opensm/include/opensm/osm_sa_sminfo_record.h | 4 +-
opensm/include/opensm/osm_sa_sw_info_record.h | 3 +-
opensm/include/opensm/osm_sa_vlarb_record.h | 8 +---
opensm/opensm/osm_sa_guidinfo_record.c | 38 ++++----------
opensm/opensm/osm_sa_informinfo.c | 33 +++---------
opensm/opensm/osm_sa_lft_record.c | 39 ++++----------
opensm/opensm/osm_sa_link_record.c | 33 +++---------
opensm/opensm/osm_sa_mcmember_record.c | 38 +++-----------
opensm/opensm/osm_sa_mft_record.c | 36 ++++----------
opensm/opensm/osm_sa_multipath_record.c | 62 +++++++----------------
opensm/opensm/osm_sa_node_record.c | 40 ++++----------
opensm/opensm/osm_sa_path_record.c | 49 +++++-------------
opensm/opensm/osm_sa_pkey_record.c | 37 ++++----------
opensm/opensm/osm_sa_portinfo_record.c | 36 ++++----------
opensm/opensm/osm_sa_service_record.c | 49 ++++--------------
opensm/opensm/osm_sa_slvl_record.c | 34 +++---------
opensm/opensm/osm_sa_sminfo_record.c | 39 ++++----------
opensm/opensm/osm_sa_sw_info_record.c | 35 ++++---------
opensm/opensm/osm_sa_vlarb_record.c | 41 ++++-----------
33 files changed, 193 insertions(+), 566 deletions(-)
diff --git a/opensm/include/opensm/osm_sa_class_port_info.h b/opensm/include/opensm/osm_sa_class_port_info.h
index b477cd5..6e4c069 100644
--- a/opensm/include/opensm/osm_sa_class_port_info.h
+++ b/opensm/include/opensm/osm_sa_class_port_info.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -49,8 +49,6 @@
#define _OSM_CPI_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
-#include <complib/cl_qlockpool.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
diff --git a/opensm/include/opensm/osm_sa_guidinfo_record.h b/opensm/include/opensm/osm_sa_guidinfo_record.h
index b3035c7..c074b7b 100644
--- a/opensm/include/opensm/osm_sa_guidinfo_record.h
+++ b/opensm/include/opensm/osm_sa_guidinfo_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -48,7 +48,6 @@
#define _OSM_GIR_RCV_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -100,7 +99,6 @@ typedef struct _osm_gir_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_gir_rcv_t;
/*
* FIELDS
@@ -119,10 +117,6 @@ typedef struct _osm_gir_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable GUIDInfo Record objects used to generate
-* the query response.
-*
* SEE ALSO
*
*********/
diff --git a/opensm/include/opensm/osm_sa_informinfo.h b/opensm/include/opensm/osm_sa_informinfo.h
index 5d00dd6..2a4b4ba 100644
--- a/opensm/include/opensm/osm_sa_informinfo.h
+++ b/opensm/include/opensm/osm_sa_informinfo.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,9 +50,6 @@
#define _OSM_SA_INFR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
-#include <complib/cl_timer.h>
-#include <complib/cl_qlockpool.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -104,7 +101,6 @@ typedef struct _osm_infr_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_infr_rcv_t;
/*
* FIELDS
@@ -120,10 +116,6 @@ typedef struct _osm_infr_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable InformInfo Record objects used to
-* generate the query response.
-*
* SEE ALSO
* InformInfo Receiver object
*********/
diff --git a/opensm/include/opensm/osm_sa_lft_record.h b/opensm/include/opensm/osm_sa_lft_record.h
index 18a43f4..8470490 100644
--- a/opensm/include/opensm/osm_sa_lft_record.h
+++ b/opensm/include/opensm/osm_sa_lft_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,7 +50,6 @@
#define _OSM_LFTR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -103,7 +102,6 @@ typedef struct _osm_lft {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_lftr_rcv_t;
/*
* FIELDS
@@ -125,10 +123,6 @@ typedef struct _osm_lft {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable Linear Forwarding Table Record objects used to
-* generate the query response.
-*
* SEE ALSO
* Linear Forwarding Table Receiver object
*********/
diff --git a/opensm/include/opensm/osm_sa_link_record.h b/opensm/include/opensm/osm_sa_link_record.h
index 3104704..d09eb69 100644
--- a/opensm/include/opensm/osm_sa_link_record.h
+++ b/opensm/include/opensm/osm_sa_link_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -49,7 +49,6 @@
#ifndef _OSM_LR_RCV_H_
#define _OSM_LR_RCV_H_
-#include <complib/cl_qlockpool.h>
#include <complib/cl_passivelock.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
@@ -102,7 +101,6 @@ typedef struct _osm_lr_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t lr_pool;
} osm_lr_rcv_t;
/*
* FIELDS
@@ -121,9 +119,6 @@ typedef struct _osm_lr_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* lr_pool
-* Pool of link record objects used to generate the query response.
-*
* SEE ALSO
*********/
diff --git a/opensm/include/opensm/osm_sa_mcmember_record.h b/opensm/include/opensm/osm_sa_mcmember_record.h
index f13bc98..8540a89 100644
--- a/opensm/include/opensm/osm_sa_mcmember_record.h
+++ b/opensm/include/opensm/osm_sa_mcmember_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,7 +50,6 @@
#define _OSM_MCMR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -105,7 +104,6 @@ typedef struct _osm_mcmr {
osm_log_t *p_log;
cl_plock_t *p_lock;
uint16_t mlid_ho;
- cl_qlock_pool_t pool;
} osm_mcmr_recv_t;
/*
diff --git a/opensm/include/opensm/osm_sa_mft_record.h b/opensm/include/opensm/osm_sa_mft_record.h
index dd14257..09b922d 100644
--- a/opensm/include/opensm/osm_sa_mft_record.h
+++ b/opensm/include/opensm/osm_sa_mft_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -49,7 +49,6 @@
#define _OSM_MFTR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -102,7 +101,6 @@ typedef struct _osm_mft {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_mftr_rcv_t;
/*
* FIELDS
@@ -124,10 +122,6 @@ typedef struct _osm_mft {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable Multicast Forwarding Table Record objects used to
-* generate the query response.
-*
* SEE ALSO
* Multicast Forwarding Table Receiver object
*********/
diff --git a/opensm/include/opensm/osm_sa_multipath_record.h b/opensm/include/opensm/osm_sa_multipath_record.h
index 8fa1046..afd407d 100644
--- a/opensm/include/opensm/osm_sa_multipath_record.h
+++ b/opensm/include/opensm/osm_sa_multipath_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -49,8 +49,6 @@
#define _OSM_MPR_RCV_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
-#include <complib/cl_qlockpool.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -103,7 +101,6 @@ typedef struct _osm_mpr_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pr_pool;
} osm_mpr_rcv_t;
/*
* FIELDS
@@ -119,9 +116,6 @@ typedef struct _osm_mpr_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pr_pool
-* Pool of multipath record objects used to generate query responses.
-*
* SEE ALSO
* MultiPath Record Receiver object
*********/
diff --git a/opensm/include/opensm/osm_sa_node_record.h b/opensm/include/opensm/osm_sa_node_record.h
index 36eea27..8f385f8 100644
--- a/opensm/include/opensm/osm_sa_node_record.h
+++ b/opensm/include/opensm/osm_sa_node_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -49,7 +49,6 @@
#ifndef _OSM_NR_H_
#define _OSM_NR_H_
-#include <complib/cl_qlockpool.h>
#include <complib/cl_passivelock.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
@@ -101,7 +100,6 @@ typedef struct _osm_nr_recv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_nr_rcv_t;
/*
* FIELDS
@@ -120,10 +118,6 @@ typedef struct _osm_nr_recv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable node record objects used to generate
-* the query response.
-*
* SEE ALSO
*
*********/
diff --git a/opensm/include/opensm/osm_sa_path_record.h b/opensm/include/opensm/osm_sa_path_record.h
index 88eb6c3..76d24fc 100644
--- a/opensm/include/opensm/osm_sa_path_record.h
+++ b/opensm/include/opensm/osm_sa_path_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,8 +50,6 @@
#define _OSM_PR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
-#include <complib/cl_qlockpool.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -104,7 +102,6 @@ typedef struct _osm_pr_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pr_pool;
} osm_pr_rcv_t;
/*
* FIELDS
@@ -120,9 +117,6 @@ typedef struct _osm_pr_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pr_pool
-* Pool of path record objects used to generate query responses.
-*
* SEE ALSO
* Path Record Receiver object
*********/
diff --git a/opensm/include/opensm/osm_sa_pkey_record.h b/opensm/include/opensm/osm_sa_pkey_record.h
index 4242a2f..b2f43f0 100644
--- a/opensm/include/opensm/osm_sa_pkey_record.h
+++ b/opensm/include/opensm/osm_sa_pkey_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -37,7 +37,6 @@
#define _OSM_PKEY_REC_RCV_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -89,7 +88,6 @@ typedef struct _osm_pkey_rec_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_pkey_rec_rcv_t;
/*
* FIELDS
@@ -108,10 +106,6 @@ typedef struct _osm_pkey_rec_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable P_Key Record objects used to generate
-* the query response.
-*
* SEE ALSO
*
*********/
diff --git a/opensm/include/opensm/osm_sa_portinfo_record.h b/opensm/include/opensm/osm_sa_portinfo_record.h
index 38eabdb..a818f25 100644
--- a/opensm/include/opensm/osm_sa_portinfo_record.h
+++ b/opensm/include/opensm/osm_sa_portinfo_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,7 +50,6 @@
#define _OSM_PIR_RCV_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -102,7 +101,6 @@ typedef struct _osm_pir_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_pir_rcv_t;
/*
* FIELDS
@@ -121,10 +119,6 @@ typedef struct _osm_pir_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable PortInfo Record objects used to generate
-* the query response.
-*
* SEE ALSO
*
*********/
diff --git a/opensm/include/opensm/osm_sa_service_record.h b/opensm/include/opensm/osm_sa_service_record.h
index 8884944..43859e0 100644
--- a/opensm/include/opensm/osm_sa_service_record.h
+++ b/opensm/include/opensm/osm_sa_service_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,9 +50,7 @@
#define _OSM_SR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <complib/cl_timer.h>
-#include <complib/cl_qlockpool.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -104,7 +102,6 @@ typedef struct _osm_sr_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t sr_pool;
cl_timer_t sr_timer;
} osm_sr_rcv_t;
/*
@@ -121,9 +118,6 @@ typedef struct _osm_sr_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* sr_pool
-* Pool of Service Record objects used to generate query responses.
-*
* SEE ALSO
* Service Record Receiver object
*********/
diff --git a/opensm/include/opensm/osm_sa_slvl_record.h b/opensm/include/opensm/osm_sa_slvl_record.h
index c72d5d4..518a0f1 100644
--- a/opensm/include/opensm/osm_sa_slvl_record.h
+++ b/opensm/include/opensm/osm_sa_slvl_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,7 +50,6 @@
#define _OSM_SLVL_REC_RCV_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -102,7 +101,6 @@ typedef struct _osm_slvl_rec_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_slvl_rec_rcv_t;
/*
* FIELDS
@@ -121,10 +119,6 @@ typedef struct _osm_slvl_rec_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable SLtoVL Mapping Record objects used to generate
-* the query response.
-*
* SEE ALSO
*
*********/
diff --git a/opensm/include/opensm/osm_sa_sminfo_record.h b/opensm/include/opensm/osm_sa_sminfo_record.h
index ce57925..f4fd1ff 100644
--- a/opensm/include/opensm/osm_sa_sminfo_record.h
+++ b/opensm/include/opensm/osm_sa_sminfo_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,7 +50,6 @@
#define _OSM_SMIR_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -103,7 +102,6 @@ typedef struct _osm_smir {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_smir_rcv_t;
/*
* FIELDS
diff --git a/opensm/include/opensm/osm_sa_sw_info_record.h b/opensm/include/opensm/osm_sa_sw_info_record.h
index ad1f773..df6f842 100644
--- a/opensm/include/opensm/osm_sa_sw_info_record.h
+++ b/opensm/include/opensm/osm_sa_sw_info_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -103,7 +103,6 @@ typedef struct _osm_sir_rcv {
osm_req_t *p_req;
osm_state_mgr_t *p_state_mgr;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_sir_rcv_t;
/*
* FIELDS
diff --git a/opensm/include/opensm/osm_sa_vlarb_record.h b/opensm/include/opensm/osm_sa_vlarb_record.h
index e823880..1ed8554 100644
--- a/opensm/include/opensm/osm_sa_vlarb_record.h
+++ b/opensm/include/opensm/osm_sa_vlarb_record.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -50,7 +50,6 @@
#define _OSM_VLARB_REC_RCV_H_
#include <complib/cl_passivelock.h>
-#include <complib/cl_qlist.h>
#include <opensm/osm_base.h>
#include <opensm/osm_madw.h>
#include <opensm/osm_sa_response.h>
@@ -102,7 +101,6 @@ typedef struct _osm_vlarb_rec_rcv {
osm_mad_pool_t *p_mad_pool;
osm_log_t *p_log;
cl_plock_t *p_lock;
- cl_qlock_pool_t pool;
} osm_vlarb_rec_rcv_t;
/*
* FIELDS
@@ -121,10 +119,6 @@ typedef struct _osm_vlarb_rec_rcv {
* p_lock
* Pointer to the serializing lock.
*
-* pool
-* Pool of linkable VLArbitration Record objects used to generate
-* the query response.
-*
* SEE ALSO
*
*********/
diff --git a/opensm/opensm/osm_sa_guidinfo_record.c b/opensm/opensm/osm_sa_guidinfo_record.c
index d955e93..a758888 100644
--- a/opensm/opensm/osm_sa_guidinfo_record.c
+++ b/opensm/opensm/osm_sa_guidinfo_record.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2006-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -62,11 +62,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_GIR_RCV_POOL_MIN_SIZE 32
-#define OSM_GIR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_gir_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_guidinfo_record_t rec;
} osm_gir_item_t;
@@ -83,7 +80,6 @@ typedef struct _osm_gir_search_ctxt {
void osm_gir_rcv_construct(IN osm_gir_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -91,7 +87,6 @@ void osm_gir_rcv_construct(IN osm_gir_rcv_t * const p_rcv)
void osm_gir_rcv_destroy(IN osm_gir_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_gir_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -104,8 +99,6 @@ osm_gir_rcv_init(IN osm_gir_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_gir_rcv_init);
osm_gir_rcv_construct(p_rcv);
@@ -116,14 +109,8 @@ osm_gir_rcv_init(IN osm_gir_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_GIR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_GIR_RCV_POOL_GROW_SIZE,
- sizeof(osm_gir_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -142,11 +129,11 @@ __osm_gir_rcv_new_gir(IN osm_gir_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_gir_rcv_new_gir);
- p_rec_item = (osm_gir_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_gir_rcv_new_gir: ERR 5102: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
@@ -158,7 +145,7 @@ __osm_gir_rcv_new_gir(IN osm_gir_rcv_t * const p_rcv,
cl_ntoh16(match_lid), block_num);
}
- memset(&p_rec_item->rec, 0, sizeof(p_rec_item->rec));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = match_lid;
p_rec_item->rec.block_num = block_num;
@@ -166,8 +153,7 @@ __osm_gir_rcv_new_gir(IN osm_gir_rcv_t * const p_rcv,
p_rec_item->rec.guid_info.guid[0] =
osm_physp_get_port_guid(p_req_physp);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -465,8 +451,7 @@ void osm_gir_rcv_process(IN void *ctx, IN void *data)
(osm_gir_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_gir_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_gir_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -514,7 +499,7 @@ void osm_gir_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_gir_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -559,10 +544,9 @@ void osm_gir_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < pre_trim_num_rec; i++) {
p_rec_item = (osm_gir_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_informinfo.c b/opensm/opensm/osm_sa_informinfo.c
index 71332dc..db58bc0 100644
--- a/opensm/opensm/osm_sa_informinfo.c
+++ b/opensm/opensm/osm_sa_informinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -66,11 +66,8 @@
#include <opensm/osm_inform.h>
#include <opensm/osm_pkey.h>
-#define OSM_IIR_RCV_POOL_MIN_SIZE 32
-#define OSM_IIR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_iir_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_inform_info_record_t rec;
} osm_iir_item_t;
@@ -89,7 +86,6 @@ typedef struct _osm_iir_search_ctxt {
void osm_infr_rcv_construct(IN osm_infr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -99,7 +95,6 @@ void osm_infr_rcv_destroy(IN osm_infr_rcv_t * const p_rcv)
CL_ASSERT(p_rcv);
OSM_LOG_ENTER(p_rcv->p_log, osm_infr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -112,8 +107,6 @@ osm_infr_rcv_init(IN osm_infr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status = IB_ERROR;
-
OSM_LOG_ENTER(p_log, osm_infr_rcv_init);
osm_infr_rcv_construct(p_rcv);
@@ -124,14 +117,8 @@ osm_infr_rcv_init(IN osm_infr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_IIR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_IIR_RCV_POOL_GROW_SIZE,
- sizeof(osm_iir_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_rcv->p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -392,18 +379,17 @@ __osm_sa_inform_info_rec_by_comp_mask(IN osm_infr_rcv_t * const p_rcv,
goto Exit;
}
- p_rec_item = (osm_iir_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_sa_inform_info_rec_by_comp_mask: ERR 430E: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
goto Exit;
}
memcpy((void *)&p_rec_item->rec, (void *)&p_infr->inform_record,
sizeof(ib_inform_info_record_t));
- cl_qlist_insert_tail(p_ctxt->p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_ctxt->p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -519,8 +505,7 @@ osm_infr_rcv_process_get_method(IN osm_infr_rcv_t * const p_rcv,
(osm_iir_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_iir_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_iir_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -565,7 +550,7 @@ osm_infr_rcv_process_get_method(IN osm_infr_rcv_t * const p_rcv,
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_iir_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -619,7 +604,7 @@ osm_infr_rcv_process_get_method(IN osm_infr_rcv_t * const p_rcv,
for (j = 0; j < 4; j++)
p_resp_rec->pad[j] = 0;
}
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_lft_record.c b/opensm/opensm/osm_sa_lft_record.c
index e645569..5f3f208 100644
--- a/opensm/opensm/osm_sa_lft_record.c
+++ b/opensm/opensm/osm_sa_lft_record.c
@@ -60,11 +60,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_LFTR_RCV_POOL_MIN_SIZE 32
-#define OSM_LFTR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_lftr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_lft_record_t rec;
} osm_lftr_item_t;
@@ -81,7 +78,6 @@ typedef struct _osm_lftr_search_ctxt {
void osm_lftr_rcv_construct(IN osm_lftr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -89,7 +85,6 @@ void osm_lftr_rcv_construct(IN osm_lftr_rcv_t * const p_rcv)
void osm_lftr_rcv_destroy(IN osm_lftr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_lftr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -102,8 +97,6 @@ osm_lftr_rcv_init(IN osm_lftr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_lftr_rcv_init);
osm_lftr_rcv_construct(p_rcv);
@@ -114,14 +107,8 @@ osm_lftr_rcv_init(IN osm_lftr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_LFTR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_LFTR_RCV_POOL_GROW_SIZE,
- sizeof(osm_lftr_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -137,16 +124,16 @@ __osm_lftr_rcv_new_lftr(IN osm_lftr_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_lftr_rcv_new_lftr);
- p_rec_item = (osm_lftr_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_lftr_rcv_new_lftr: ERR 4402: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
- if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG)) {
+ if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG))
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
"__osm_lftr_rcv_new_lftr: "
"New LinearForwardingTable: sw 0x%016" PRIx64
@@ -154,9 +141,8 @@ __osm_lftr_rcv_new_lftr(IN osm_lftr_rcv_t * const p_rcv,
cl_ntoh64(osm_node_get_node_guid(p_sw->p_node)),
cl_ntoh16(block), cl_ntoh16(lid)
);
- }
- memset(&p_rec_item->rec, 0, sizeof(ib_lft_record_t));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.block_num = block;
@@ -165,8 +151,7 @@ __osm_lftr_rcv_new_lftr(IN osm_lftr_rcv_t * const p_rcv,
osm_switch_get_fwd_tbl_block(p_sw, cl_ntoh16(block),
p_rec_item->rec.lft);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -369,8 +354,7 @@ void osm_lftr_rcv_process(IN void *ctx, IN void *data)
(osm_lftr_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_lftr_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_lftr_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -418,7 +402,7 @@ void osm_lftr_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_lftr_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -465,10 +449,9 @@ void osm_lftr_rcv_process(IN void *ctx, IN void *data)
p_rec_item =
(osm_lftr_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_link_record.c b/opensm/opensm/osm_sa_link_record.c
index a6bdc8f..ba239be 100644
--- a/opensm/opensm/osm_sa_link_record.c
+++ b/opensm/opensm/osm_sa_link_record.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -61,11 +61,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_LR_RCV_POOL_MIN_SIZE 64
-#define OSM_LR_RCV_POOL_GROW_SIZE 64
-
typedef struct _osm_lr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_link_record_t link_rec;
} osm_lr_item_t;
@@ -74,7 +71,6 @@ typedef struct _osm_lr_item {
void osm_lr_rcv_construct(IN osm_lr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->lr_pool);
}
/**********************************************************************
@@ -82,7 +78,6 @@ void osm_lr_rcv_construct(IN osm_lr_rcv_t * const p_rcv)
void osm_lr_rcv_destroy(IN osm_lr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_lr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->lr_pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -95,8 +90,6 @@ osm_lr_rcv_init(IN osm_lr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status = IB_SUCCESS;
-
OSM_LOG_ENTER(p_log, osm_lr_rcv_init);
osm_lr_rcv_construct(p_rcv);
@@ -107,14 +100,8 @@ osm_lr_rcv_init(IN osm_lr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->lr_pool,
- OSM_LR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_LR_RCV_POOL_GROW_SIZE,
- sizeof(osm_lr_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_rcv->p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -128,7 +115,7 @@ __osm_lr_rcv_build_physp_link(IN osm_lr_rcv_t * const p_rcv,
{
osm_lr_item_t *p_lr_item;
- p_lr_item = (osm_lr_item_t *) cl_qlock_pool_get(&p_rcv->lr_pool);
+ p_lr_item = malloc(sizeof(*p_lr_item));
if (p_lr_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_lr_rcv_build_physp_link: ERR 1801: "
@@ -141,13 +128,14 @@ __osm_lr_rcv_build_physp_link(IN osm_lr_rcv_t * const p_rcv,
cl_ntoh16(from_lid), cl_ntoh16(to_lid));
return;
}
+ memset(p_lr_item, 0, sizeof(*p_lr_item));
p_lr_item->link_rec.from_port_num = from_port;
p_lr_item->link_rec.to_port_num = to_port;
p_lr_item->link_rec.to_lid = to_lid;
p_lr_item->link_rec.from_lid = from_lid;
- cl_qlist_insert_tail(p_list, (cl_list_item_t *) & p_lr_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_lr_item->list_item);
}
/**********************************************************************
@@ -560,8 +548,7 @@ __osm_lr_rcv_respond(IN osm_lr_rcv_t * const p_rcv,
/* need to set the mem free ... */
p_lr_item = (osm_lr_item_t *) cl_qlist_remove_head(p_list);
while (p_lr_item != (osm_lr_item_t *) cl_qlist_end(p_list)) {
- cl_qlock_pool_put(&p_rcv->lr_pool,
- &p_lr_item->pool_item);
+ free(p_lr_item);
p_lr_item =
(osm_lr_item_t *) cl_qlist_remove_head(p_list);
}
@@ -600,8 +587,7 @@ __osm_lr_rcv_respond(IN osm_lr_rcv_t * const p_rcv,
/* Release the quick pool items */
p_lr_item = (osm_lr_item_t *) cl_qlist_remove_head(p_list);
while (p_lr_item != (osm_lr_item_t *) cl_qlist_end(p_list)) {
- cl_qlock_pool_put(&p_rcv->lr_pool,
- &p_lr_item->pool_item);
+ free(p_lr_item);
p_lr_item =
(osm_lr_item_t *) cl_qlist_remove_head(p_list);
}
@@ -654,8 +640,7 @@ __osm_lr_rcv_respond(IN osm_lr_rcv_t * const p_rcv,
*p_resp_lr = p_lr_item->link_rec;
num_copied++;
}
- cl_qlock_pool_put(&p_rcv->lr_pool,
- &p_lr_item->pool_item);
+ free(p_lr_item);
p_resp_lr++;
p_lr_item =
(osm_lr_item_t *) cl_qlist_remove_head(p_list);
diff --git a/opensm/opensm/osm_sa_mcmember_record.c b/opensm/opensm/osm_sa_mcmember_record.c
index 5d5fb8d..ddb1ca5 100644
--- a/opensm/opensm/osm_sa_mcmember_record.c
+++ b/opensm/opensm/osm_sa_mcmember_record.c
@@ -70,11 +70,8 @@
#include <opensm/osm_inform.h>
#include <opensm/osm_sa.h>
-#define OSM_MCMR_RCV_POOL_MIN_SIZE 32
-#define OSM_MCMR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_mcmr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_member_rec_t rec;
} osm_mcmr_item_t;
@@ -93,7 +90,6 @@ typedef struct osm_sa_mcmr_search_ctxt {
void osm_mcmr_rcv_construct(IN osm_mcmr_recv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -103,9 +99,6 @@ void osm_mcmr_rcv_destroy(IN osm_mcmr_recv_t * const p_rcv)
CL_ASSERT(p_rcv);
OSM_LOG_ENTER(p_rcv->p_log, osm_mcmr_rcv_destroy);
-
- cl_qlock_pool_destroy(&p_rcv->pool);
-
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -119,8 +112,6 @@ osm_mcmr_rcv_init(IN osm_sm_t * const p_sm,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status = IB_SUCCESS;
-
OSM_LOG_ENTER(p_log, osm_mcmr_rcv_init);
osm_mcmr_rcv_construct(p_rcv);
@@ -133,18 +124,8 @@ osm_mcmr_rcv_init(IN osm_sm_t * const p_sm,
p_rcv->p_mad_pool = p_mad_pool;
p_rcv->mlid_ho = 0xC000;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_MCMR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_MCMR_RCV_POOL_GROW_SIZE,
- sizeof(osm_mcmr_item_t), NULL, NULL, NULL);
- if (status != CL_SUCCESS) {
- osm_log(p_rcv->p_log, OSM_LOG_ERROR,
- "osm_mcmr_rcv_init: ERR 1B02: "
- "qlock pool init failed (%d)\n", status);
- }
OSM_LOG_EXIT(p_rcv->p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -1727,22 +1708,21 @@ __osm_mcmr_rcv_new_mcmr(IN osm_mcmr_recv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_mcmr_rcv_new_mcmr);
- p_rec_item = (osm_mcmr_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_mcmr_rcv_new_mcmr: ERR 1B15: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
- memset(&p_rec_item->rec, 0, sizeof(p_rec_item->rec));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
/* HACK: Untrusted requesters should result with 0 Join
State, Port Guid, and Proxy */
p_rec_item->rec = *p_rcvd_rec;
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -2023,7 +2003,7 @@ __osm_mcmr_query_mgrp(IN osm_mcmr_recv_t * const p_rcv,
(osm_mcmr_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_mcmr_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item =
(osm_mcmr_item_t *) cl_qlist_remove_head(&rec_list);
}
@@ -2070,7 +2050,7 @@ __osm_mcmr_query_mgrp(IN osm_mcmr_recv_t * const p_rcv,
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_mcmr_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -2134,7 +2114,7 @@ __osm_mcmr_query_mgrp(IN osm_mcmr_recv_t * const p_rcv,
p_resp_rec->proxy_join = 0;
}
}
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_mft_record.c b/opensm/opensm/osm_sa_mft_record.c
index 3968304..f9ac527 100644
--- a/opensm/opensm/osm_sa_mft_record.c
+++ b/opensm/opensm/osm_sa_mft_record.c
@@ -59,11 +59,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_MFTR_RCV_POOL_MIN_SIZE 32
-#define OSM_MFTR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_mftr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_mft_record_t rec;
} osm_mftr_item_t;
@@ -80,7 +77,6 @@ typedef struct _osm_mftr_search_ctxt {
void osm_mftr_rcv_construct(IN osm_mftr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -88,7 +84,6 @@ void osm_mftr_rcv_construct(IN osm_mftr_rcv_t * const p_rcv)
void osm_mftr_rcv_destroy(IN osm_mftr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_mftr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -101,8 +96,6 @@ osm_mftr_rcv_init(IN osm_mftr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_mftr_rcv_init);
osm_mftr_rcv_construct(p_rcv);
@@ -113,14 +106,8 @@ osm_mftr_rcv_init(IN osm_mftr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_MFTR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_MFTR_RCV_POOL_GROW_SIZE,
- sizeof(osm_mftr_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -138,11 +125,11 @@ __osm_mftr_rcv_new_mftr(IN osm_mftr_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_mftr_rcv_new_mftr);
- p_rec_item = (osm_mftr_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_mftr_rcv_new_mftr: ERR 4A02: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
@@ -160,7 +147,7 @@ __osm_mftr_rcv_new_mftr(IN osm_mftr_rcv_t * const p_rcv,
position_block_num = ((uint16_t) position << 12) |
(block & IB_MCAST_BLOCK_ID_MASK_HO);
- memset(&p_rec_item->rec, 0, sizeof(ib_mft_record_t));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.position_block_num = cl_hton16(position_block_num);
@@ -168,8 +155,7 @@ __osm_mftr_rcv_new_mftr(IN osm_mftr_rcv_t * const p_rcv,
/* copy the mft block */
osm_switch_get_mft_block(p_sw, block, position, p_rec_item->rec.mft);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -399,8 +385,7 @@ void osm_mftr_rcv_process(IN void *ctx, IN void *data)
(osm_mftr_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_mftr_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_mftr_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -448,7 +433,7 @@ void osm_mftr_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_mftr_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -495,10 +480,9 @@ void osm_mftr_rcv_process(IN void *ctx, IN void *data)
p_rec_item =
(osm_mftr_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_multipath_record.c b/opensm/opensm/osm_sa_multipath_record.c
index efc6a07..4fd30c2 100644
--- a/opensm/opensm/osm_sa_multipath_record.c
+++ b/opensm/opensm/osm_sa_multipath_record.c
@@ -67,13 +67,10 @@
#include <opensm/osm_qos_policy.h>
#include <opensm/osm_sa.h>
-#define OSM_MPR_RCV_POOL_MIN_SIZE 64
-#define OSM_MPR_RCV_POOL_GROW_SIZE 64
-
#define OSM_SA_MPR_MAX_NUM_PATH 127
typedef struct _osm_mpr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
const osm_port_t *p_src_port;
const osm_port_t *p_dest_port;
int hops;
@@ -95,7 +92,6 @@ typedef struct _osm_path_parms {
void osm_mpr_rcv_construct(IN osm_mpr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pr_pool);
}
/**********************************************************************
@@ -103,7 +99,6 @@ void osm_mpr_rcv_construct(IN osm_mpr_rcv_t * const p_rcv)
void osm_mpr_rcv_destroy(IN osm_mpr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_mpr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pr_pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -116,8 +111,6 @@ osm_mpr_rcv_init(IN osm_mpr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_mpr_rcv_init);
osm_mpr_rcv_construct(p_rcv);
@@ -128,14 +121,8 @@ osm_mpr_rcv_init(IN osm_mpr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pr_pool,
- OSM_MPR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_MPR_RCV_POOL_GROW_SIZE,
- sizeof(osm_mpr_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_rcv->p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -905,20 +892,21 @@ __osm_mpr_rcv_get_lid_pair_path(IN osm_mpr_rcv_t * const p_rcv,
"Src LID 0x%X, Dest LID 0x%X\n",
src_lid_ho, dest_lid_ho);
- p_pr_item = (osm_mpr_item_t *) cl_qlock_pool_get(&p_rcv->pr_pool);
+ p_pr_item = malloc(sizeof(*p_pr_item));
if (p_pr_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_mpr_rcv_get_lid_pair_path: ERR 4501: "
"Unable to allocate path record\n");
goto Exit;
}
+ memset(p_pr_item, 0, sizeof(*p_pr_item));
status = __osm_mpr_rcv_get_path_parms(p_rcv, p_mpr, p_src_port,
p_dest_port, dest_lid_ho,
comp_mask, &path_parms);
if (status != IB_SUCCESS) {
- cl_qlock_pool_put(&p_rcv->pr_pool, &p_pr_item->pool_item);
+ free(p_pr_item);
p_pr_item = NULL;
goto Exit;
}
@@ -942,8 +930,7 @@ __osm_mpr_rcv_get_lid_pair_path(IN osm_mpr_rcv_t * const p_rcv,
"__osm_mpr_rcv_get_lid_pair_path: "
"Requested reversible path but failed to get one\n");
- cl_qlock_pool_put(&p_rcv->pr_pool,
- &p_pr_item->pool_item);
+ free(p_pr_item);
p_pr_item = NULL;
goto Exit;
}
@@ -1084,9 +1071,7 @@ __osm_mpr_rcv_get_port_pair_paths(IN osm_mpr_rcv_t * const p_rcv,
preference);
if (p_pr_item) {
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_pr_item->
- pool_item);
+ cl_qlist_insert_tail(p_list, &p_pr_item->list_item);
++path_num;
}
@@ -1152,9 +1137,7 @@ __osm_mpr_rcv_get_port_pair_paths(IN osm_mpr_rcv_t * const p_rcv,
preference);
if (p_pr_item) {
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_pr_item->
- pool_item);
+ cl_qlist_insert_tail(p_list, &p_pr_item->list_item);
++path_num;
}
}
@@ -1471,14 +1454,10 @@ __osm_mpr_rcv_get_apm_paths(IN osm_mpr_rcv_t * const p_rcv,
matrix[0][0]->path_rec.dlid, matrix[0][0]->hops,
matrix[1][1]->path_rec.slid,
matrix[1][1]->path_rec.dlid, matrix[1][1]->hops);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & matrix[0][0]->
- pool_item);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & matrix[1][1]->
- pool_item);
- cl_qlock_pool_put(&p_rcv->pr_pool, &matrix[0][1]->pool_item);
- cl_qlock_pool_put(&p_rcv->pr_pool, &matrix[1][0]->pool_item);
+ cl_qlist_insert_tail(p_list, &matrix[0][0]->list_item);
+ cl_qlist_insert_tail(p_list, &matrix[1][1]->list_item);
+ free(matrix[0][1]);
+ free(matrix[1][0]);
} else {
/* Diag B */
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
@@ -1489,14 +1468,10 @@ __osm_mpr_rcv_get_apm_paths(IN osm_mpr_rcv_t * const p_rcv,
matrix[0][1]->path_rec.dlid, matrix[0][1]->hops,
matrix[1][0]->path_rec.slid,
matrix[1][0]->path_rec.dlid, matrix[1][0]->hops);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & matrix[0][1]->
- pool_item);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & matrix[1][0]->
- pool_item);
- cl_qlock_pool_put(&p_rcv->pr_pool, &matrix[0][0]->pool_item);
- cl_qlock_pool_put(&p_rcv->pr_pool, &matrix[1][1]->pool_item);
+ cl_qlist_insert_tail(p_list, &matrix[0][1]->list_item);
+ cl_qlist_insert_tail(p_list, &matrix[1][0]->list_item);
+ free(matrix[0][0]);
+ free(matrix[1][1]);
}
OSM_LOG_EXIT(p_rcv->p_log);
@@ -1598,8 +1573,7 @@ __osm_mpr_rcv_respond(IN osm_mpr_rcv_t * const p_rcv,
for (i = 0; i < num_rec; i++) {
p_mpr_item =
(osm_mpr_item_t *) cl_qlist_remove_head(p_list);
- cl_qlock_pool_put(&p_rcv->pr_pool,
- &p_mpr_item->pool_item);
+ free(p_mpr_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -1634,7 +1608,7 @@ __osm_mpr_rcv_respond(IN osm_mpr_rcv_t * const p_rcv,
/* Copy the Path Records from the list into the MAD */
*p_resp_pr = p_mpr_item->path_rec;
- cl_qlock_pool_put(&p_rcv->pr_pool, &p_mpr_item->pool_item);
+ free(p_mpr_item);
p_resp_pr++;
}
diff --git a/opensm/opensm/osm_sa_node_record.c b/opensm/opensm/osm_sa_node_record.c
index b94d005..e78e827 100644
--- a/opensm/opensm/osm_sa_node_record.c
+++ b/opensm/opensm/osm_sa_node_record.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -60,11 +60,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_NR_RCV_POOL_MIN_SIZE 32
-#define OSM_NR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_nr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_node_record_t rec;
} osm_nr_item_t;
@@ -81,7 +78,6 @@ typedef struct _osm_nr_search_ctxt {
void osm_nr_rcv_construct(IN osm_nr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -89,7 +85,6 @@ void osm_nr_rcv_construct(IN osm_nr_rcv_t * const p_rcv)
void osm_nr_rcv_destroy(IN osm_nr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_nr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -102,8 +97,6 @@ osm_nr_rcv_init(IN osm_nr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_nr_rcv_init);
osm_nr_rcv_construct(p_rcv);
@@ -114,14 +107,8 @@ osm_nr_rcv_init(IN osm_nr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_NR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_NR_RCV_POOL_GROW_SIZE,
- sizeof(osm_nr_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -137,16 +124,16 @@ __osm_nr_rcv_new_nr(IN osm_nr_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_nr_rcv_new_nr);
- p_rec_item = (osm_nr_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_nr_rcv_new_nr: ERR 1D02: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
- if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG)) {
+ if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG))
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
"__osm_nr_rcv_new_nr: "
"New NodeRecord: node 0x%016" PRIx64
@@ -154,9 +141,8 @@ __osm_nr_rcv_new_nr(IN osm_nr_rcv_t * const p_rcv,
cl_ntoh64(osm_node_get_node_guid(p_node)),
cl_ntoh64(port_guid), cl_ntoh16(lid)
);
- }
- memset(&p_rec_item->rec, 0, sizeof(ib_node_record_t));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
@@ -164,8 +150,7 @@ __osm_nr_rcv_new_nr(IN osm_nr_rcv_t * const p_rcv,
p_rec_item->rec.node_info.port_guid = port_guid;
memcpy(&(p_rec_item->rec.node_desc), &(p_node->node_desc),
IB_NODE_DESCRIPTION_SIZE);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -459,7 +444,7 @@ void osm_nr_rcv_process(IN void *ctx, IN void *data)
/* need to set the mem free ... */
p_rec_item = (osm_nr_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item != (osm_nr_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item =
(osm_nr_item_t *) cl_qlist_remove_head(&rec_list);
}
@@ -506,7 +491,7 @@ void osm_nr_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_nr_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -551,10 +536,9 @@ void osm_nr_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < pre_trim_num_rec; i++) {
p_rec_item = (osm_nr_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_path_record.c b/opensm/opensm/osm_sa_path_record.c
index f46a3be..aae87d4 100644
--- a/opensm/opensm/osm_sa_path_record.c
+++ b/opensm/opensm/osm_sa_path_record.c
@@ -73,15 +73,12 @@
#include <opensm/osm_sa_mcmember_record.h>
#include <opensm/osm_prefix_route.h>
-#define OSM_PR_RCV_POOL_MIN_SIZE 64
-#define OSM_PR_RCV_POOL_GROW_SIZE 64
-
extern uint8_t osm_get_lash_sl(osm_opensm_t * p_osm,
const osm_port_t * p_src_port,
const osm_port_t * p_dst_port);
typedef struct _osm_pr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_path_rec_t path_rec;
} osm_pr_item_t;
@@ -111,7 +108,6 @@ static const ib_gid_t zero_gid = { {0x00, 0x00, 0x00, 0x00,
void osm_pr_rcv_construct(IN osm_pr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pr_pool);
}
/**********************************************************************
@@ -119,7 +115,6 @@ void osm_pr_rcv_construct(IN osm_pr_rcv_t * const p_rcv)
void osm_pr_rcv_destroy(IN osm_pr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_pr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pr_pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -132,8 +127,6 @@ osm_pr_rcv_init(IN osm_pr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_pr_rcv_init);
osm_pr_rcv_construct(p_rcv);
@@ -144,14 +137,8 @@ osm_pr_rcv_init(IN osm_pr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pr_pool,
- OSM_PR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_PR_RCV_POOL_GROW_SIZE,
- sizeof(osm_pr_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_rcv->p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -939,20 +926,21 @@ __osm_pr_rcv_get_lid_pair_path(IN osm_pr_rcv_t * const p_rcv,
"Src LID 0x%X, Dest LID 0x%X\n",
src_lid_ho, dest_lid_ho);
- p_pr_item = (osm_pr_item_t *) cl_qlock_pool_get(&p_rcv->pr_pool);
+ p_pr_item = malloc(sizeof(*p_pr_item));
if (p_pr_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_pr_rcv_get_lid_pair_path: ERR 1F01: "
"Unable to allocate path record\n");
goto Exit;
}
+ memset(p_pr_item, 0, sizeof(*p_pr_item));
status = __osm_pr_rcv_get_path_parms(p_rcv, p_pr, p_src_port,
p_dest_port, dest_lid_ho,
comp_mask, &path_parms);
if (status != IB_SUCCESS) {
- cl_qlock_pool_put(&p_rcv->pr_pool, &p_pr_item->pool_item);
+ free(p_pr_item);
p_pr_item = NULL;
goto Exit;
}
@@ -976,8 +964,7 @@ __osm_pr_rcv_get_lid_pair_path(IN osm_pr_rcv_t * const p_rcv,
"__osm_pr_rcv_get_lid_pair_path: "
"Requested reversible path but failed to get one\n");
- cl_qlock_pool_put(&p_rcv->pr_pool,
- &p_pr_item->pool_item);
+ free(p_pr_item);
p_pr_item = NULL;
goto Exit;
}
@@ -1158,9 +1145,7 @@ __osm_pr_rcv_get_port_pair_paths(IN osm_pr_rcv_t * const p_rcv,
preference);
if (p_pr_item) {
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_pr_item->
- pool_item);
+ cl_qlist_insert_tail(p_list, &p_pr_item->list_item);
++path_num;
}
@@ -1226,9 +1211,7 @@ __osm_pr_rcv_get_port_pair_paths(IN osm_pr_rcv_t * const p_rcv,
preference);
if (p_pr_item) {
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_pr_item->
- pool_item);
+ cl_qlist_insert_tail(p_list, &p_pr_item->list_item);
++path_num;
}
}
@@ -1861,8 +1844,7 @@ __osm_pr_rcv_respond(IN osm_pr_rcv_t * const p_rcv,
(osm_pr_item_t *) cl_qlist_remove_head(p_list);
while (p_pr_item !=
(osm_pr_item_t *) cl_qlist_end(p_list)) {
- cl_qlock_pool_put(&p_rcv->pr_pool,
- &p_pr_item->pool_item);
+ free(p_pr_item);
p_pr_item = (osm_pr_item_t *)
cl_qlist_remove_head(p_list);
}
@@ -1907,8 +1889,7 @@ __osm_pr_rcv_respond(IN osm_pr_rcv_t * const p_rcv,
for (i = 0; i < num_rec; i++) {
p_pr_item =
(osm_pr_item_t *) cl_qlist_remove_head(p_list);
- cl_qlock_pool_put(&p_rcv->pr_pool,
- &p_pr_item->pool_item);
+ free(p_pr_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -1949,7 +1930,7 @@ __osm_pr_rcv_respond(IN osm_pr_rcv_t * const p_rcv,
if (i < num_rec)
*p_resp_pr = p_pr_item->path_rec;
- cl_qlock_pool_put(&p_rcv->pr_pool, &p_pr_item->pool_item);
+ free(p_pr_item);
p_resp_pr++;
}
@@ -2113,14 +2094,14 @@ void osm_pr_rcv_process(IN void *context, IN void *data)
goto Unlock;
}
- p_pr_item =
- (osm_pr_item_t *) cl_qlock_pool_get(&p_rcv->pr_pool);
+ p_pr_item = malloc(sizeof(*p_pr_item));
if (p_pr_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"osm_pr_rcv_process: ERR 1F18: "
"Unable to allocate path record for MC group\n");
goto Unlock;
}
+ memset(p_pr_item, 0, sizeof(*p_pr_item));
/* Copy PathRecord request into response */
p_sa_mad = osm_madw_get_sa_mad_ptr(p_madw);
@@ -2157,9 +2138,7 @@ void osm_pr_rcv_process(IN void *context, IN void *data)
p_pr_item->path_rec.hop_flow_raw =
cl_hton32(hop_limit) | (flow_label << 8);
- cl_qlist_insert_tail(&pr_list, (cl_list_item_t *)
- & p_pr_item->pool_item);
-
+ cl_qlist_insert_tail(&pr_list, &p_pr_item->list_item);
}
Unlock:
diff --git a/opensm/opensm/osm_sa_pkey_record.c b/opensm/opensm/osm_sa_pkey_record.c
index 4402b94..1e9f50f 100644
--- a/opensm/opensm/osm_sa_pkey_record.c
+++ b/opensm/opensm/osm_sa_pkey_record.c
@@ -51,11 +51,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_PKEY_REC_RCV_POOL_MIN_SIZE 32
-#define OSM_PKEY_REC_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_pkey_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_pkey_table_record_t rec;
} osm_pkey_item_t;
@@ -73,7 +70,6 @@ typedef struct _osm_pkey_search_ctxt {
void osm_pkey_rec_rcv_construct(IN osm_pkey_rec_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -81,7 +77,6 @@ void osm_pkey_rec_rcv_construct(IN osm_pkey_rec_rcv_t * const p_rcv)
void osm_pkey_rec_rcv_destroy(IN osm_pkey_rec_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_pkey_rec_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -94,8 +89,6 @@ osm_pkey_rec_rcv_init(IN osm_pkey_rec_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_pkey_rec_rcv_init);
osm_pkey_rec_rcv_construct(p_rcv);
@@ -106,15 +99,8 @@ osm_pkey_rec_rcv_init(IN osm_pkey_rec_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- /* used for matching records collection */
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_PKEY_REC_RCV_POOL_MIN_SIZE,
- 0,
- OSM_PKEY_REC_RCV_POOL_GROW_SIZE,
- sizeof(osm_pkey_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -131,11 +117,11 @@ __osm_sa_pkey_create(IN osm_pkey_rec_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_sa_pkey_create);
- p_rec_item = (osm_pkey_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_sa_pkey_create: ERR 4602: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
@@ -154,7 +140,7 @@ __osm_sa_pkey_create(IN osm_pkey_rec_rcv_t * const p_rcv,
cl_ntoh16(lid), osm_physp_get_port_num(p_physp), block);
}
- memset(&p_rec_item->rec, 0, sizeof(p_rec_item->rec));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.block_num = block;
@@ -162,8 +148,7 @@ __osm_sa_pkey_create(IN osm_pkey_rec_rcv_t * const p_rcv,
p_rec_item->rec.pkey_tbl =
*(osm_pkey_tbl_block_get(osm_physp_get_pkey_tbl(p_physp), block));
- cl_qlist_insert_tail(p_ctxt->p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_ctxt->p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -444,8 +429,7 @@ void osm_pkey_rec_rcv_process(IN void *ctx, IN void *data)
(osm_pkey_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_pkey_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_pkey_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -494,7 +478,7 @@ void osm_pkey_rec_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_pkey_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -541,10 +525,9 @@ void osm_pkey_rec_rcv_process(IN void *ctx, IN void *data)
p_rec_item =
(osm_pkey_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_portinfo_record.c b/opensm/opensm/osm_sa_portinfo_record.c
index 22869e6..ed3684c 100644
--- a/opensm/opensm/osm_sa_portinfo_record.c
+++ b/opensm/opensm/osm_sa_portinfo_record.c
@@ -64,11 +64,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_PIR_RCV_POOL_MIN_SIZE 32
-#define OSM_PIR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_pir_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_portinfo_record_t rec;
} osm_pir_item_t;
@@ -86,7 +83,6 @@ typedef struct _osm_pir_search_ctxt {
void osm_pir_rcv_construct(IN osm_pir_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -94,7 +90,6 @@ void osm_pir_rcv_construct(IN osm_pir_rcv_t * const p_rcv)
void osm_pir_rcv_destroy(IN osm_pir_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_pir_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -107,8 +102,6 @@ osm_pir_rcv_init(IN osm_pir_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_pir_rcv_init);
osm_pir_rcv_construct(p_rcv);
@@ -119,14 +112,8 @@ osm_pir_rcv_init(IN osm_pir_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_PIR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_PIR_RCV_POOL_GROW_SIZE,
- sizeof(osm_pir_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -141,32 +128,30 @@ __osm_pir_rcv_new_pir(IN osm_pir_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_pir_rcv_new_pir);
- p_rec_item = (osm_pir_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_pir_rcv_new_pir: ERR 2102: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
- if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG)) {
+ if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG))
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
"__osm_pir_rcv_new_pir: "
"New PortInfoRecord: port 0x%016" PRIx64
", lid 0x%X, port 0x%X\n",
cl_ntoh64(osm_physp_get_port_guid(p_physp)),
cl_ntoh16(lid), osm_physp_get_port_num(p_physp));
- }
- memset(&p_rec_item->rec, 0, sizeof(p_rec_item->rec));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.port_info = p_physp->port_info;
p_rec_item->rec.port_num = osm_physp_get_port_num(p_physp);
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -676,8 +661,7 @@ void osm_pir_rcv_process(IN void *ctx, IN void *data)
(osm_pir_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_pir_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_pir_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -725,7 +709,7 @@ void osm_pir_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_pir_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -786,7 +770,7 @@ void osm_pir_rcv_process(IN void *ctx, IN void *data)
if (trusted_req == FALSE)
p_resp_rec->port_info.m_key = 0;
}
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_service_record.c b/opensm/opensm/osm_sa_service_record.c
index abad29f..fb0193e 100644
--- a/opensm/opensm/osm_sa_service_record.c
+++ b/opensm/opensm/osm_sa_service_record.c
@@ -66,11 +66,8 @@
#include <opensm/osm_service.h>
#include <opensm/osm_pkey.h>
-#define OSM_SR_RCV_POOL_MIN_SIZE 64
-#define OSM_SR_RCV_POOL_GROW_SIZE 64
-
typedef struct _osm_sr_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_service_record_t service_rec;
} osm_sr_item_t;
@@ -79,7 +76,6 @@ typedef struct osm_sr_match_item {
ib_service_record_t *p_service_rec;
ib_net64_t comp_mask;
osm_sr_rcv_t *p_rcv;
-
} osm_sr_match_item_t;
typedef struct _osm_sr_search_ctxt {
@@ -92,7 +88,6 @@ typedef struct _osm_sr_search_ctxt {
void osm_sr_rcv_construct(IN osm_sr_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->sr_pool);
cl_timer_construct(&p_rcv->sr_timer);
}
@@ -101,7 +96,6 @@ void osm_sr_rcv_construct(IN osm_sr_rcv_t * const p_rcv)
void osm_sr_rcv_destroy(IN osm_sr_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_sr_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->sr_pool);
cl_timer_trim(&p_rcv->sr_timer, 1);
cl_timer_destroy(&p_rcv->sr_timer);
OSM_LOG_EXIT(p_rcv->p_log);
@@ -116,8 +110,7 @@ osm_sr_rcv_init(IN osm_sr_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status = IB_ERROR;
- cl_status_t cl_status;
+ ib_api_status_t status;
OSM_LOG_ENTER(p_log, osm_sr_rcv_init);
@@ -129,20 +122,8 @@ osm_sr_rcv_init(IN osm_sr_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- cl_status = cl_qlock_pool_init(&p_rcv->sr_pool,
- OSM_SR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_SR_RCV_POOL_GROW_SIZE,
- sizeof(osm_sr_item_t), NULL, NULL, NULL);
- if (cl_status != CL_SUCCESS)
- goto Exit;
-
status = cl_timer_init(&p_rcv->sr_timer, osm_sr_rcv_lease_cb, p_rcv);
- if (cl_status != CL_SUCCESS)
- goto Exit;
- status = IB_SUCCESS;
- Exit:
OSM_LOG_EXIT(p_rcv->p_log);
return (status);
}
@@ -315,8 +296,7 @@ __osm_sr_rcv_respond(IN osm_sr_rcv_t * const p_rcv,
/* need to set the mem free ... */
p_sr_item = (osm_sr_item_t *) cl_qlist_remove_head(p_list);
while (p_sr_item != (osm_sr_item_t *) cl_qlist_end(p_list)) {
- cl_qlock_pool_put(&p_rcv->sr_pool,
- &p_sr_item->pool_item);
+ free(p_sr_item);
p_sr_item =
(osm_sr_item_t *) cl_qlist_remove_head(p_list);
}
@@ -355,8 +335,7 @@ __osm_sr_rcv_respond(IN osm_sr_rcv_t * const p_rcv,
/* Release the quick pool items */
p_sr_item = (osm_sr_item_t *) cl_qlist_remove_head(p_list);
while (p_sr_item != (osm_sr_item_t *) cl_qlist_end(p_list)) {
- cl_qlock_pool_put(&p_rcv->sr_pool,
- &p_sr_item->pool_item);
+ free(p_sr_item);
p_sr_item =
(osm_sr_item_t *) cl_qlist_remove_head(p_list);
}
@@ -430,8 +409,7 @@ __osm_sr_rcv_respond(IN osm_sr_rcv_t * const p_rcv,
num_copied++;
}
- cl_qlock_pool_put(&p_rcv->sr_pool,
- &p_sr_item->pool_item);
+ free(p_sr_item);
p_resp_sr++;
p_sr_item =
(osm_sr_item_t *) cl_qlist_remove_head(p_list);
@@ -668,9 +646,7 @@ __get_matching_sr(IN cl_list_item_t * const p_list_item, IN void *context)
}
}
- p_sr_pool_item =
- (osm_sr_item_t *) cl_qlock_pool_get(&p_sr_item->p_rcv->sr_pool);
-
+ p_sr_pool_item = malloc(sizeof(*p_sr_pool_item));
if (p_sr_pool_item == NULL) {
osm_log(p_sr_item->p_rcv->p_log, OSM_LOG_ERROR,
"__get_matching_sr: ERR 2408: "
@@ -680,8 +656,7 @@ __get_matching_sr(IN cl_list_item_t * const p_list_item, IN void *context)
p_sr_pool_item->service_rec = p_svcr->service_record;
- cl_qlist_insert_tail(&p_sr_item->sr_list,
- (cl_list_item_t *) & p_sr_pool_item->pool_item);
+ cl_qlist_insert_tail(&p_sr_item->sr_list, &p_sr_pool_item->list_item);
Exit:
return;
@@ -848,7 +823,7 @@ osm_sr_rcv_process_set_method(IN osm_sr_rcv_t * const p_rcv,
p_svcr->modified_time = cl_get_time_stamp_sec();
}
- p_sr_item = (osm_sr_item_t *) cl_qlock_pool_get(&p_rcv->sr_pool);
+ p_sr_item = malloc(sizeof(*p_sr_item));
if (p_sr_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"osm_sr_rcv_process_set_method: ERR 2412: "
@@ -866,8 +841,7 @@ osm_sr_rcv_process_set_method(IN osm_sr_rcv_t * const p_rcv,
p_sr_item->service_rec = *p_recvd_service_rec;
cl_qlist_init(&sr_list);
- cl_qlist_insert_tail(&sr_list,
- (cl_list_item_t *) & p_sr_item->pool_item);
+ cl_qlist_insert_tail(&sr_list, &p_sr_item->list_item);
__osm_sr_rcv_respond(p_rcv, p_madw, &sr_list);
@@ -925,7 +899,7 @@ osm_sr_rcv_process_delete_method(IN osm_sr_rcv_t * const p_rcv,
cl_plock_release(p_rcv->p_lock);
- p_sr_item = (osm_sr_item_t *) cl_qlock_pool_get(&p_rcv->sr_pool);
+ p_sr_item = malloc(sizeof(*p_sr_item));
if (p_sr_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"osm_sr_rcv_process_delete_method: ERR 2413: "
@@ -939,8 +913,7 @@ osm_sr_rcv_process_delete_method(IN osm_sr_rcv_t * const p_rcv,
p_sr_item->service_rec = p_svcr->service_record;
cl_qlist_init(&sr_list);
- cl_qlist_insert_tail(&sr_list,
- (cl_list_item_t *) & p_sr_item->pool_item);
+ cl_qlist_insert_tail(&sr_list, &p_sr_item->list_item);
if (p_svcr)
osm_svcr_delete(p_svcr);
diff --git a/opensm/opensm/osm_sa_slvl_record.c b/opensm/opensm/osm_sa_slvl_record.c
index 8d8e4dc..fd48296 100644
--- a/opensm/opensm/osm_sa_slvl_record.c
+++ b/opensm/opensm/osm_sa_slvl_record.c
@@ -63,11 +63,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_SLVL_REC_RCV_POOL_MIN_SIZE 32
-#define OSM_SLVL_REC_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_slvl_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_slvl_table_record_t rec;
} osm_slvl_item_t;
@@ -85,7 +82,6 @@ typedef struct _osm_slvl_search_ctxt {
void osm_slvl_rec_rcv_construct(IN osm_slvl_rec_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -93,7 +89,6 @@ void osm_slvl_rec_rcv_construct(IN osm_slvl_rec_rcv_t * const p_rcv)
void osm_slvl_rec_rcv_destroy(IN osm_slvl_rec_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_slvl_rec_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -106,8 +101,6 @@ osm_slvl_rec_rcv_init(IN osm_slvl_rec_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_slvl_rec_rcv_init);
osm_slvl_rec_rcv_construct(p_rcv);
@@ -118,15 +111,8 @@ osm_slvl_rec_rcv_init(IN osm_slvl_rec_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- /* used for matching records collection */
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_SLVL_REC_RCV_POOL_MIN_SIZE,
- 0,
- OSM_SLVL_REC_RCV_POOL_GROW_SIZE,
- sizeof(osm_slvl_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -143,11 +129,11 @@ __osm_sa_slvl_create(IN osm_slvl_rec_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_sa_slvl_create);
- p_rec_item = (osm_slvl_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_sa_slvl_create: ERR 2602: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
@@ -166,7 +152,7 @@ __osm_sa_slvl_create(IN osm_slvl_rec_rcv_t * const p_rcv,
cl_ntoh16(lid), osm_physp_get_port_num(p_physp),
in_port_idx);
- memset(&p_rec_item->rec, 0, sizeof(p_rec_item->rec));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.out_port_num = osm_physp_get_port_num(p_physp);
@@ -174,8 +160,7 @@ __osm_sa_slvl_create(IN osm_slvl_rec_rcv_t * const p_rcv,
p_rec_item->rec.slvl_tbl =
*(osm_physp_get_slvl_tbl(p_physp, in_port_idx));
- cl_qlist_insert_tail(p_ctxt->p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_ctxt->p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -419,8 +404,7 @@ void osm_slvl_rec_rcv_process(IN void *ctx, IN void *data)
(osm_slvl_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_slvl_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_slvl_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -469,7 +453,7 @@ void osm_slvl_rec_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_slvl_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -518,7 +502,7 @@ void osm_slvl_rec_rcv_process(IN void *ctx, IN void *data)
/* copy only if not trimmed */
if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_sminfo_record.c b/opensm/opensm/osm_sa_sminfo_record.c
index 2aa136e..6f84ac7 100644
--- a/opensm/opensm/osm_sa_sminfo_record.c
+++ b/opensm/opensm/osm_sa_sminfo_record.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2006 Voltaire, Inc. All rights reserved.
+ * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
* Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
*
@@ -70,11 +70,8 @@
#include <opensm/osm_remote_sm.h>
#include <opensm/osm_sa.h>
-#define OSM_SMIR_RCV_POOL_MIN_SIZE 32
-#define OSM_SMIR_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_smir_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_sminfo_record_t rec;
} osm_smir_item_t;
@@ -91,7 +88,6 @@ typedef struct _osm_smir_search_ctxt {
void osm_smir_rcv_construct(IN osm_smir_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -99,9 +95,7 @@ void osm_smir_rcv_construct(IN osm_smir_rcv_t * const p_rcv)
void osm_smir_rcv_destroy(IN osm_smir_rcv_t * const p_rcv)
{
CL_ASSERT(p_rcv);
-
OSM_LOG_ENTER(p_rcv->p_log, osm_smir_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -115,8 +109,6 @@ osm_smir_rcv_init(IN osm_smir_rcv_t * const p_rcv,
IN osm_stats_t * const p_stats,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status = IB_SUCCESS;
-
OSM_LOG_ENTER(p_log, osm_smir_rcv_init);
osm_smir_rcv_construct(p_rcv);
@@ -128,14 +120,8 @@ osm_smir_rcv_init(IN osm_smir_rcv_t * const p_rcv,
p_rcv->p_stats = p_stats;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_SMIR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_SMIR_RCV_POOL_GROW_SIZE,
- sizeof(osm_smir_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_rcv->p_log);
- return (status);
+ return IB_SUCCESS;
}
static ib_api_status_t
@@ -152,31 +138,29 @@ __osm_smir_rcv_new_smir(IN osm_smir_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_smir_rcv_new_smir);
- p_rec_item = (osm_smir_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_smir_rcv_new_smir: ERR 2801: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
- if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG)) {
+ if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG))
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
"__osm_smir_rcv_new_smir: "
"New SMInfo: GUID 0x%016" PRIx64 "\n", cl_ntoh64(guid)
);
- }
- memset(&p_rec_item->rec, 0, sizeof(ib_sminfo_record_t));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = osm_port_get_base_lid(p_port);
p_rec_item->rec.sm_info.guid = guid;
p_rec_item->rec.sm_info.act_count = act_count;
p_rec_item->rec.sm_info.pri_state = pri_state;
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -445,8 +429,7 @@ void osm_smir_rcv_process(IN void *ctx, IN void *data)
(osm_smir_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_smir_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_smir_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -493,7 +476,7 @@ void osm_smir_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_smir_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -544,7 +527,7 @@ void osm_smir_rcv_process(IN void *ctx, IN void *data)
*p_resp_rec = p_rec_item->rec;
p_resp_rec->sm_info.sm_key = 0;
}
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_sw_info_record.c b/opensm/opensm/osm_sa_sw_info_record.c
index edfe106..a9947e1 100644
--- a/opensm/opensm/osm_sa_sw_info_record.c
+++ b/opensm/opensm/osm_sa_sw_info_record.c
@@ -63,7 +63,7 @@
#define OSM_SIR_RCV_POOL_GROW_SIZE 32
typedef struct _osm_sir_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_switch_info_record_t rec;
} osm_sir_item_t;
@@ -80,7 +80,6 @@ typedef struct _osm_sir_search_ctxt {
void osm_sir_rcv_construct(IN osm_sir_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -88,7 +87,6 @@ void osm_sir_rcv_construct(IN osm_sir_rcv_t * const p_rcv)
void osm_sir_rcv_destroy(IN osm_sir_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_sir_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -101,8 +99,6 @@ osm_sir_rcv_init(IN osm_sir_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_sir_rcv_init);
osm_sir_rcv_construct(p_rcv);
@@ -113,14 +109,8 @@ osm_sir_rcv_init(IN osm_sir_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_SIR_RCV_POOL_MIN_SIZE,
- 0,
- OSM_SIR_RCV_POOL_GROW_SIZE,
- sizeof(osm_sir_item_t), NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -135,29 +125,27 @@ __osm_sir_rcv_new_sir(IN osm_sir_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_sir_rcv_new_sir);
- p_rec_item = (osm_sir_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_sir_rcv_new_sir: ERR 5308: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
- if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG)) {
+ if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG))
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
"__osm_sir_rcv_new_sir: "
"New SwitchInfoRecord: lid 0x%X\n", cl_ntoh16(lid)
);
- }
- memset(&p_rec_item->rec, 0, sizeof(ib_switch_info_record_t));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.switch_info = p_sw->switch_info;
- cl_qlist_insert_tail(p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -393,7 +381,7 @@ void osm_sir_rcv_process(IN void *ctx, IN void *data)
/* need to set the mem free ... */
p_rec_item = (osm_sir_item_t *) cl_qlist_remove_head(&rec_list);
while (p_rec_item != (osm_sir_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item =
(osm_sir_item_t *) cl_qlist_remove_head(&rec_list);
}
@@ -442,7 +430,7 @@ void osm_sir_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item =
(osm_sir_item_t *) cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -487,10 +475,9 @@ void osm_sir_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < pre_trim_num_rec; i++) {
p_rec_item = (osm_sir_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
diff --git a/opensm/opensm/osm_sa_vlarb_record.c b/opensm/opensm/osm_sa_vlarb_record.c
index 49d688a..a538a0b 100644
--- a/opensm/opensm/osm_sa_vlarb_record.c
+++ b/opensm/opensm/osm_sa_vlarb_record.c
@@ -63,11 +63,8 @@
#include <opensm/osm_pkey.h>
#include <opensm/osm_sa.h>
-#define OSM_VLARB_REC_RCV_POOL_MIN_SIZE 32
-#define OSM_VLARB_REC_RCV_POOL_GROW_SIZE 32
-
typedef struct _osm_vl_arb_item {
- cl_pool_item_t pool_item;
+ cl_list_item_t list_item;
ib_vl_arb_table_record_t rec;
} osm_vl_arb_item_t;
@@ -85,7 +82,6 @@ typedef struct _osm_vl_arb_search_ctxt {
void osm_vlarb_rec_rcv_construct(IN osm_vlarb_rec_rcv_t * const p_rcv)
{
memset(p_rcv, 0, sizeof(*p_rcv));
- cl_qlock_pool_construct(&p_rcv->pool);
}
/**********************************************************************
@@ -93,7 +89,6 @@ void osm_vlarb_rec_rcv_construct(IN osm_vlarb_rec_rcv_t * const p_rcv)
void osm_vlarb_rec_rcv_destroy(IN osm_vlarb_rec_rcv_t * const p_rcv)
{
OSM_LOG_ENTER(p_rcv->p_log, osm_vlarb_rec_rcv_destroy);
- cl_qlock_pool_destroy(&p_rcv->pool);
OSM_LOG_EXIT(p_rcv->p_log);
}
@@ -106,8 +101,6 @@ osm_vlarb_rec_rcv_init(IN osm_vlarb_rec_rcv_t * const p_rcv,
IN osm_subn_t * const p_subn,
IN osm_log_t * const p_log, IN cl_plock_t * const p_lock)
{
- ib_api_status_t status;
-
OSM_LOG_ENTER(p_log, osm_vlarb_rec_rcv_init);
osm_vlarb_rec_rcv_construct(p_rcv);
@@ -118,16 +111,8 @@ osm_vlarb_rec_rcv_init(IN osm_vlarb_rec_rcv_t * const p_rcv,
p_rcv->p_resp = p_resp;
p_rcv->p_mad_pool = p_mad_pool;
- /* used for matching records collection */
- status = cl_qlock_pool_init(&p_rcv->pool,
- OSM_VLARB_REC_RCV_POOL_MIN_SIZE,
- 0,
- OSM_VLARB_REC_RCV_POOL_GROW_SIZE,
- sizeof(osm_vl_arb_item_t),
- NULL, NULL, NULL);
-
OSM_LOG_EXIT(p_log);
- return (status);
+ return IB_SUCCESS;
}
/**********************************************************************
@@ -144,11 +129,11 @@ __osm_sa_vl_arb_create(IN osm_vlarb_rec_rcv_t * const p_rcv,
OSM_LOG_ENTER(p_rcv->p_log, __osm_sa_vl_arb_create);
- p_rec_item = (osm_vl_arb_item_t *) cl_qlock_pool_get(&p_rcv->pool);
+ p_rec_item = malloc(sizeof(*p_rec_item));
if (p_rec_item == NULL) {
osm_log(p_rcv->p_log, OSM_LOG_ERROR,
"__osm_sa_vl_arb_create: ERR 2A02: "
- "cl_qlock_pool_get failed\n");
+ "rec_item alloc failed\n");
status = IB_INSUFFICIENT_RESOURCES;
goto Exit;
}
@@ -158,24 +143,22 @@ __osm_sa_vl_arb_create(IN osm_vlarb_rec_rcv_t * const p_rcv,
else
lid = osm_node_get_base_lid(p_physp->p_node, 0);
- if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG)) {
+ if (osm_log_is_active(p_rcv->p_log, OSM_LOG_DEBUG))
osm_log(p_rcv->p_log, OSM_LOG_DEBUG,
"__osm_sa_vl_arb_create: "
"New VLArbitration for: port 0x%016" PRIx64
", lid 0x%X, port 0x%X Block:%u\n",
cl_ntoh64(osm_physp_get_port_guid(p_physp)),
cl_ntoh16(lid), osm_physp_get_port_num(p_physp), block);
- }
- memset(&p_rec_item->rec, 0, sizeof(p_rec_item->rec));
+ memset(p_rec_item, 0, sizeof(*p_rec_item));
p_rec_item->rec.lid = lid;
p_rec_item->rec.port_num = osm_physp_get_port_num(p_physp);
p_rec_item->rec.block_num = block;
p_rec_item->rec.vl_arb_tbl = *(osm_physp_get_vla_tbl(p_physp, block));
- cl_qlist_insert_tail(p_ctxt->p_list,
- (cl_list_item_t *) & p_rec_item->pool_item);
+ cl_qlist_insert_tail(p_ctxt->p_list, &p_rec_item->list_item);
Exit:
OSM_LOG_EXIT(p_rcv->p_log);
@@ -436,8 +419,7 @@ void osm_vlarb_rec_rcv_process(IN void *ctx, IN void *data)
cl_qlist_remove_head(&rec_list);
while (p_rec_item !=
(osm_vl_arb_item_t *) cl_qlist_end(&rec_list)) {
- cl_qlock_pool_put(&p_rcv->pool,
- &p_rec_item->pool_item);
+ free(p_rec_item);
p_rec_item = (osm_vl_arb_item_t *)
cl_qlist_remove_head(&rec_list);
}
@@ -487,7 +469,7 @@ void osm_vlarb_rec_rcv_process(IN void *ctx, IN void *data)
for (i = 0; i < num_rec; i++) {
p_rec_item = (osm_vl_arb_item_t *)
cl_qlist_remove_head(&rec_list);
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
}
osm_sa_send_error(p_rcv->p_resp, p_madw,
@@ -534,10 +516,9 @@ void osm_vlarb_rec_rcv_process(IN void *ctx, IN void *data)
p_rec_item =
(osm_vl_arb_item_t *) cl_qlist_remove_head(&rec_list);
/* copy only if not trimmed */
- if (i < num_rec) {
+ if (i < num_rec)
*p_resp_rec = p_rec_item->rec;
- }
- cl_qlock_pool_put(&p_rcv->pool, &p_rec_item->pool_item);
+ free(p_rec_item);
p_resp_rec++;
}
--
1.5.3.rc2.29.gc4640f
More information about the general
mailing list