aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: 975764c5314878f217ee976d6c4cf6cbb8c1a1f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
2006-02-16  Roland Dreier  <rdreier@cisco.com>

	* src/memfree.c (mthca_alloc_db): Introduce a temporary variable
	to pass to posix_memalign() to avoid "warning: dereferencing
	type-punned pointer will break strict-aliasing rules."

	* Release version 1.0-rc7.

2006-02-15  Roland Dreier  <rdreier@cisco.com>

	* src/verbs.c (mthca_create_qp): Update to add new response and
	response size parameters for libibverbs ibv_cmd_create_qp().

2006-02-14  Roland Dreier  <rdreier@cisco.com>

	* Release version 1.0-rc6.

2006-02-13  Dotan Barak  <dotanb@mellanox.co.il>

	* src/verbs.c (mthca_query_qp, mthca_query_srq): Add query QP and
	query SRQ verbs.

2006-01-31  Roland Dreier  <rdreier@cisco.com>

	* src/mthca.h: Remove useless "extern" from function declarations.

2006-01-30  Michael S. Tsirkin  <mst@mellanox.co.il>

	* src/qp.c (mthca_tavor_post_recv, mthca_arbel_post_recv): Pass
	recv_cq to wq_overflow() so we lock the correct CQ.  Noticed by
	Yossi Leybovich.

2006-01-26  Roland Dreier  <rdreier@cisco.com>

	* src/mthca.h, src/verbs.c, src/cq.c, src/mthca.c: Add
	implementation of resize CQ operation.

	* src/mthca-abi.h: Add mthca-specific resize CQ ABI.

2006-01-22  Roland Dreier  <rdreier@cisco.com>

	* Release version 1.0-rc5.

2006-01-11  Jack Morgenstein  <jackm@mellanox.co.il>

	* src/verbs.c (mthca_free_pd): Free pointer to correct structure
	(we get lucky now, but don't rely on this).
	* src/mthca.c (mthca_free_context): Free context's PD so we don't
	leak it.

2006-01-06  Michael S. Tsirkin  <mst@mellanox.co.il>

	* src/verbs.c (mthca_destroy_qp): Jack Morgenstein has discovered
	the following race condition in libmthca:

	Thread A destroys QP A at the kernel side by calling
	ibv_cmd_destroy_qp, but its time-slice is over before removing it
	from the user-space qp_table removal.

	Thread B allocates QP B, receiving a QP number that matches the
	just-destroyed QP A in the low 16 bits.  Thread B will now
	over-write the slot in qp_table which was used for QP A.

	Thread A wakes up and clears qp_table slot, in effect removing QP
	B from qp_table.

	As a solution, remove the QP from qp_table before calling
	ibv_cmd_destroy_qp.  This also makes sense since operations are
	performed in the reverse order in create_qp.

	* src/cq.c (handle_error_cqe): Fill in vendor_err field for
	completions with error.

2006-01-05  Jack Morgenstein  <jackm@mellanox.co.il>

	* src/verbs.c (mthca_destroy_qp, mthca_destroy_srq): Free QP/SRQ
	object to avoid memory leak.

2005-12-15  Jack Morgenstein  <jackm@mellanox.co.il>

	* src/cq.c (mthca_cq_clean): When cleaning up a CQ, we should free
	an SRQ WQE if and only if the CQE is a receive.

2005-12-15  Michael S. Tsirkin  <mst@mellanox.co.il>

	* src/qp.c (mthca_store_qp): Don't increment qp_table ref count if
	allocation fails.

2005-11-29  Michael S. Tsirkin  <mst@mellanox.co.il>

	* src/qp.c (mthca_arbel_post_send): Add handling for posting long
	send lists for mem-free HCAs.
	* src/qp.c (mthca_tavor_post_recv): Fix posting long receive
	lists: nreq is set to zero early on, so we need to use
	MTHCA_TAVOR_MAX_WQES_PER_RECV_DB as the increment to rq.head.

2005-11-28  Roland Dreier  <roland@cisco.com>

	* src/qp.c (mthca_init_qp_indices): Set qp->sq.last and
	qp->rq.last so that QP is fully reset when the indices are
	reinited on transition to RESET state.
	(mthca_tavor_post_send, mthca_arbel_post_send): Don't create an
	inline send segment when a work request is posted that has the
	inline flag set but no gather entries included.

2005-11-09  Roland Dreier  <roland@cisco.com>

	* src/srq.c (mthca_tavor_post_srq_recv), src/qp.c
	(mthca_tavor_post_recv): Fix bugs in long receive list handling;
	need to set nreq to 0 and not put 256 credits into the second
	doorbell word.

	* src/cq.c (mthca_cq_clean): Handle case where CQ indices wrap
	around by treating signed comparisons of prod_index and
	cq->cons_index carefully.

2005-11-09  Michael S. Tsirkin  <mst@mellanox.co.il>

	* src/srq.c (mthca_tavor_post_srq_recv), src/qp.c
	(mthca_tavor_post_recv): Tavor requires that a doorbell be rung
	at least every 256 receives, so add code to ring doorbells in the
	middle of posting a huge list of receives.
	
	* src/qp.c (mthca_tavor_post_send, mthca_tavor_post_send): When
	posting atomic operations, could wqe size in "octowords" correctly.

	* src/ah.c (mthca_alloc_av): Don't free ah if page allocation
	fails.  It will be freed where it's allocated, in the caller.

2005-11-08  Roland Dreier  <roland@cisco.com>

	* src/qp.c, src/verbs.c, src/mthca.h: Delegate setting of QP
	capabilities (max_sge, max_inline_data, etc) to kernel.

2005-11-04  Roland Dreier  <roland@cisco.com>

	* src/verbs.c (mthca_destroy_qp): Clean CQEs when we destroy a QP.
	(mthca_modify_qp): Clean CQEs when we move a QP to RESET state,
	and reset QP index pointers.

	* src/cq.c (mthca_cq_clean): Add function to clean out CQEs for
	QPs that are being destroyed or reset.

2005-10-30  Roland Dreier  <roland@cisco.com>

	* src/srq.c (wqe_to_link): Change to use an offset of 12 (the imm
	field), because posting an SRQ WQE may actually change the ee_nds
	field and still cause free list corruption.  A receive WQE will
	never have immediate data, so using imm is definitely safe.

2005-10-25  Roland Dreier  <roland@cisco.com>

	* Release version 1.0-rc4.

2005-10-23  Roland Dreier  <roland@cisco.com>

	* src/qp.c (mthca_return_cap, mthca_alloc_qp_buf), src/verbs.c
	(mthca_create_qp): Explicitly pass QP type to functions used while
	creating QP, since we can't rely on ibv_qp.qp_type to be set until
	after we return.  This fixes breakage with UD QPs introduced in
	the last change below.

2005-10-19  Roland Dreier  <roland@cisco.com>

	* src/mthca.h, src/verbs.c (mthca_create_qp), src/qp.c
	(mthca_tavor_post_send, mthca_arbel_post_send, mthca_alloc_qp_buf,
	mthca_return_cap): Eliminate struct mthca_qp.qpt field and use
	struct ibv_qp.qp_type instead (now that that field has been added
	in libibverbs).

2005-10-18  Roland Dreier  <roland@cisco.com>

	* src/cq.c (handle_error_cqe, mthca_poll_one): Dump CQEs for local
	QP operation errors instead of all error statuses.

2005-10-06  Roland Dreier  <roland@cisco.com>

	* src/srq.c (mthca_free_srq_wqe): Pass index instead of WQE
	address.  The only caller already has the index handy, so there's
	no need to recalculate it here.
	
	* src/srq.c (mthca_tavor_post_srq_recv,
	mthca_arbel_post_srq_recv): Add an extra check so that we report
	the SRQ as full before using the one extra WQE we need internally.

2005-10-05  Roland Dreier  <roland@cisco.com>

	* src/verbs.c (mthca_modify_srq): Fill in mthca_modify_srq().

2005-09-29  Roland Dreier  <roland@cisco.com>

	* src/verbs.c (mthca_query_device): Update to match new libibverbs
	API that requires device-specific libraries to format firmware version.

2005-09-25  Roland Dreier  <roland@cisco.com>

	* src/cq.c, src/mthca.c, src/mthca.h, src/verbs.c: Update to match
	new libibverbs API introduced with completion channel implementation.

2005-09-13  Roland Dreier  <roland@cisco.com>

	* src/qp.c (mthca_tavor_post_send, mthca_tavor_post_recv,
	mthca_arbel_post_send), src/srq.c (mthca_tavor_post_srq_recv):
	Apply Michael S. Tsirkin's patch to fix linking of WQEs on
	mem-free HCAs.  While we're at it, simplify the Tavor WQE posting
	code as well -- there's no need for a conditional, just always lik
	the previous WQE.

2005-09-07  Roland Dreier  <roland@cisco.com>

	* src/mthca.h: Get rid of ntohll() and htonll() now that
	libibverbs defines them in <infiniband/arch.h>.

2005-08-31  Roland Dreier  <roland@cisco.com>

	* src/memfree.c (mthca_free_db): When we free a doorbell record,
	really mark it as free in the free bitmap.  This we we don't
	eventually run out of doorbells if a consumer creates and frees a
	lot of objects.

	* src/memfree.c (mthca_alloc_db): Introduce MTHCA_FREE_MAP_SIZE so
	that we iterate over the correct number of entries in the mem-free
	doorbell record free maps.  This fixes some off-by-a-factor-of-8
	bugs that could lead to crashes.

	* src/verbs.c (mthca_create_cq): In the mem-free case, when
	creating a CQ fails to allocate an arm doorbell, make sure we free
	the set CI doorbell instead of the (non-existent) arm doorbell.