-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathChangeLog
More file actions
3108 lines (1654 loc) · 91.5 KB
/
ChangeLog
File metadata and controls
3108 lines (1654 loc) · 91.5 KB
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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Vladimir Sokolovsky <vlad@mellanox.com> 2013-05-01
Roll 1.1.6mlnx2 release
Yishai Hadas <yishaih@mellanox.com> 2013-05-26
libibverbs: XRC sample, fix message size
Fix size to prevent memory overflow
Igor Ivanov <Igor.Ivanov@itseez.com> 2013-04-30
tests: Add unit-tests for Cross-channel API
Added unit-tests based on gtest test environment to test verbs api.
Tests related Cross-channel functionality are included.
Yishai Hadas <yishaih@mellanox.com> 2013-05-20
examples: Add examples for Cross-channel API
Added examples using Cross-channel verbs API and adapted to use new
verbs extension API.
ibv_cc_task_pp is based on TASKs usage
ibv_cc_pingpong demonstrates wait opcode usage
Added manuals into man folder for these two examples.
Igor Ivanov <Igor.Ivanov@itseez.com> 2013-04-30
man: Add manuals for new verbs api
Added manuals for:
inserted ibv_create_qp_ex() into ibv_create_qp man;
inserted ibv_query_device_ex() into ibv_query_device man;
created new manuals for following functions as ibv_modify_cq, ibv_post_task
Yishai Hadas <yishaih@mellanox.com> 2013-05-19
libibverbs: Add Cross-channel capability
Added ibv_post_task.
This code enables the hardware feature referred as Cross-channel. The
functionality supports the posting of a task list to a Host Channel Adapter (HCA),
with a single completion queue entry indicating when the task list has completed.
The task list may have entries posted to multiple Queue Pairs (QPs) and includes
send and receive communication primitives, as well as the communication
coordination primitives wait, send_enable, and receive_enable. Since a single post
of tasks to QPs initiates the communication pattern, and all progress is handled
by the HCA.
ibv_post_task - post a list of send/recv tasks (TAKSs) to QPs
It is added using verbs extensions approach.
Igor Ivanov <Igor.Ivanov@itseez.com> 2013-03-14
libibverbs: Added new flag IB_DEVICE_CROSS_CHANNEL into enum ib_device_cap_flags
This flag demonstrates presence of Cross-channel capability in a device.
The device can be programmed to execute IO operation flows that involve
synchronization of IO operations on different IO channels as well as conditional
execution based on arithmetic operations on memory-resident variables. This
capability enables to program complex IO operation flows with a single function
call, hereby significantly reducing overhead associated with IO processing.
Yishai Hadas <yishaih@mellanox.com> 2013-05-19
libibverbs: Add ibv_query_device_ex
It is added using verbs extensions approach and extend abilities of existing
function such as ibv_query_device. This code adds new struct verbs_device_attr
that extends existing struct ibv_device_attr with new field as
struct ibv_device_calc_cap calc_cap.
This code does not add new uverbs call as ibv_cmd_query_device_ex to process
IB_USER_VERBS_CMD_QUERY_DEVICE_EX command.
Yishai Hadas <yishaih@mellanox.com> 2013-05-19
libibverbs: Add ibv_modify_cq
This code adds new uverbs call as ibv_cmd_modify_cq to process
IB_USER_VERBS_CMD_MODIFY_CQ_EX command. It is added using verbs extensions
approach.
Yishai Hadas <yishaih@mellanox.com> 2013-05-19
libibverbs: Support Cross-channel capability in ibv_create_qp_ex
This code adds new uverbs call as ibv_cmd_create_qp_ex to process
IB_USER_VERBS_CMD_CREATE_QP_EX command. It is added using verbs extensions
approach and extend abilities of existing functions such as ibv_create_qp.
Yishai Hadas <yishaih@mellanox.com> 2013-05-19
libibverbs: XRC open flags
Add missing mode in open system call
Yishai Hadas <yishaih@mellanox.com> 2013-05-19
libibverbs: Add XRC sample source file
Yishai Hadas <yishaih@mellanox.com> 2013-05-12
libibverbs: Add XRC sample application
Sean Hefty <sean.hefty@intel.com> 2012-09-19
libibverbs: Add man page for ibv_open_qp
Yishai Hadas <yishaih@mellanox.com> 2013-05-12
libibverbs: Add ibv_open_qp
XRC receive QPs are shareable across multiple processes. Allow
any process with access to the xrc domain to open an existing
QP. After opening the QP, the process will receive events
related to the QP and be able to modify the QP.
Yishai Hadas <yishaih@mellanox.com> 2013-05-12
libibverbs: Add support for XRC QPs
XRC queue pairs: xrc defines two new types of QPs. The
initiator, or send-side, xrc qp behaves similar to a send-
only RC qp. xrc send qp's are managed through the existing
QP functions. The send_wr structure is extended in a back-
wards compatible way to support posting sends on a send xrc
qp, which require specifying the remote xrc srq.
The target, or receive-side, xrc qp behaves differently
than other implemented qp's. A recv xrc qp can be created,
modified, and destroyed like other qp's through the existing
calls. The qp_init_attr structure is extended for xrc qp's.
Because xrc recv qp's are bound to an xrcd, rather than a pd,
it is intended to be used among multiple processes. Any process
with access to an xrcd may allocate and connect an xrc recv qp.
The actual xrc recv qp is allocated and managed by the kernel.
If the owning process explicit destroys the xrc recv qp, it is
destroyed. However, if the xrc recv qp is left open when the
user process exits or closes its device, then the lifetime of
the xrc recv qp is bound with the lifetime of the xrcd.
Yishai Hadas <yishaih@mellanox.com> 2013-05-12
livibverbs: Add support for XRC SRQs
XRC support requires the use of a new type of SRQ.
XRC shared receive queues: xrc srq's are similar to normal
srq's, except that they are bound to an xrcd, rather
than to a protection domain. Based on the current spec
and implementation, they are only usable with xrc qps. To
support xrc srq's, we define a new srq_init_attr structure
to include an srq type and other needed information.
The kernel ABI is also updated to allow creating extended
SRQs.
Yishai Hadas <yishaih@mellanox.com> 2013-05-07
libibverbs: Introduce XRC domains
XRC introduces several new concepts and structures, one of
which is the XRC domain.
XRC domains: xrcd's are a type of protection domain used to
associate shared receive queues with xrc queue pairs. Since
xrcd are meant to be shared among multiple processes, we
introduce new APIs to open/close xrcd's.
The user to kernel ABI is extended to account for opening/
closing the xrcd.
Eli Cohen <eli@mellanox.com> 2013-04-09
Remove old APIs definitions
This patch adds changes from Sean's libibverbs patch 1 v5 that were not taken
already to ofed's libibverbs.
Hadar Hen Zion <hadarh@mellanox.com> 2013-02-11
Implement ibv_create_flow and ibv_destroy_flow
According to the new flow steering verbs API and using the extended verbs
mechanism.
ibv_create_flow verb allow user space applications to attach flow
specifications for a QP. ibv_flow_attr is a pointer for flow specifications
structs that contain mandatory control parameters and optional L2, L3 and L4
headers.
ibv_flow_attr struct is a mandatory control struct:
struct ibv_flow_attr {
uint32_t comp_mask;
enum ibv_flow_attr_type type;
uint16_t size;
uint16_t priority;
uint8_t num_of_specs;
uint8_t port;
uint32_t flags;
/* Following are the optional layers according to user request
* struct ibv_flow_spec_xxx
* struct ibv_flow_spec_yyy
*/
};
And can be followed by the optional flow headers structs:
struct ibv_flow_spec_ib
struct ibv_flow_spec_eth
struct ibv_flow_spec_ipv4
struct ibv_flow_spec_tcp_udp
ib_flow_attr pointer includes ibv_flow_attr and headers structs, which can be
detected by reading the size and num_of_specs fields in ib_flow_attr struct.
The user can choose flow type according to the following enum:
enum ibv_flow_attr_type {
/* steering according to rule specifications */
IBV_FLOW_ATTR_NORMAL = 0x0,
/* default unicast and multicast rule -
* receive all Eth traffic which isn't steered to any QP
*/
IBV_FLOW_ATTR_ALL_DEFAULT = 0x1,
* default multicast rule -
* receive all Eth multicast traffic which isn't steered to any QP
*/
IBV_FLOW_ATTR_MC_DEFAULT = 0x2,
/* sniffer rule - receive all port traffic */
IBV_FLOW_ATTR_MIRROR = 0x3,
};
When setting flow type to NORMAL, the incoming traffic will be steer
according to the rule specifications. ALL_DEFAULT and MC_DEFAULT rules options
are valid only for Ethernet link type since IB link type packets always include
QP number.
To detach the flow from the QP, ibv_destroy_flow is called.
ibv_destroy_flow requires struct ibv_flow which contains a uobject handle.
Hadar Hen Zion <hadarh@mellanox.com> 2013-03-05
Add general definitions to support verbs extensions
To support verbs extension mechanism between user space libraries and
uverbs kernel module, each new added verb which is based on verbs extension
approach should include the following:
1. Enum index greater than IB_USER_VERBS_CMD_THRESHOLD.
2. Additional common fields in the kernel-user struct:
__u16 provider_in_words;
__u16 provider_out_words;
__u32 cmd_hdr_reserved;
__u32 comp_mask;
The above fields will be initialized by
IBV_INIT_CMD_EX/IBV_INIT_CMD_RESP_EX new macros.
Added uverbs_cmd_type to recognize if command should be processed as a legacy or as an extended.
Added new header support macros.
Hadar Hen Zion <hadarh@mellanox.com> 2013-02-11
Revert "Implement ibv_attach_flow and ibv_detach_flow."
This reverts commit fbcdd10fdb19c2957208772a555f937f423a7bb6.
Hadar Hen Zion <hadarh@mellanox.com> 2013-02-11
Revert "Pad ibv_attach_flow struct to avoid alignment problems"
This reverts commit a93bb4980321b53921e08266247f9287540df0c2.
Hadar Hen Zion <hadarh@mellanox.com> 2013-02-11
Revert "Expose rule_type field in ibv_flow_spec struct"
This reverts commit d15371a7500944bb0e2e700c1748a31172623e24.
Yishai Hadas <yishaih@mellanox.com> 2013-02-03
shared_mr: example program adapted to use new verbs extension API
Yishai Hadas <yishaih@mellanox.com> 2013-01-31
shared_mr support on top on verbs extenstion
Adds shared_mr API based on new verbs extension mechanism.
This patch also includes a compatible API to previous one used in 1.8.X.
Marcel Apfelbaum <marcela@dev.mellanox.co.il> 2012-12-25
libibverbs: Infrastructure to support verbs extensions
Based on a patch from Yishai Hadas <yishaih@mellanox.com>
Infrastructure to support extended verbs capabilities in a forward/backward
manner.
Support for extensions is determined by the provider calling
verbs_register_driver in place of ibv_register_driver. When
extensions are enabled, ibverbs sets the current alloc_context /
free_context device operations to NULL. These are used to
indicate that the struct ibv_device may be cast to struct
verbs_device.
With extensions, ibverbs allocates the ibv_context structure
and calls into the provider to initialize it. The init call
is part of the verbs_device struct.
Marcel Apfelbaum <marcela@dev.mellanox.co.il> 2012-12-25
Revert "verbs extension mechanism based on Sean first patch"
This reverts commit 5fc421bc824d4d105e641d81ea1d7602b5ce07b5.
To be replaced by new verbs extensions mechansim submitte to community.
Vladimir Sokolovsky <vlad@mellanox.com> 2013-01-07
Roll 1.1.6mlnx1 release
Hadar Hen Zion <hadarh@mellanox.com> 2012-11-05
Expose rule_type field in ibv_flow_spec struct
Needed for flow steering ibdump implementation
Issue:98828
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-10-23
shared_mr: Fix memory leak in case of an error
Squash with 'shared mr sample program'
Issue 94266.
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Yishai Hadas <yishaih@mellanox.com> 2012-09-30
ibv_shared_mr - fix to work over 2GB
move to use size_t instead of int
Yishai Hadas <yishaih@mellanox.com> 2012-08-28
man page for ibv_shared_mr
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-07-25
man: remove the limitation of creating QP with SRQ only for UD and RC QPs
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-07-25
man: added IBV_QPT_RAW_PACKET usage
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-07-25
Revert "man: added IBV_QPT_RAW_PACKET usage"
Squash this patch with "man: added IBV_QPT_RAW_PACKET usage"
This reverts commit 5222e9091cf96ba7e096b5ed78a00c879563ce78.
Merge: fe21442 477be24
Vladimir Sokolovsky <vlad@mellanox.com> 2012-06-27
Merge branch 'mlnx_ofed_1_8' into mlnx_ofed_2_0
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-06-27
IB/libibverbs: Expose the "request for checksum" in send flags
Reviewed-by: Moni Shoua <monis@voltaire.com>
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-06-27
Keep IBV_QPT_RAW_ETH for backward compatibility
libnes and others still use IBV_QPT_RAW_ETH
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-06-27
man: added IBV_QPT_RAW_PACKET usage
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-06-27
libibverbs: add raw ethernet QP type IBV_QPT_RAW_PACKET=7
The patch enables usage of L2 raw ethernet QP type for user-space
applications.
Yishai Hadas <yishaih@mellanox.com> 2012-06-26
reg_shared_mr: adding "no rdma" mode
Reviewed-by: Shachar Raindel <raindel@mellanox.com>
Nir Muchtar <nirmu@mellanox.com> 2011-11-03
Pad ibv_attach_flow struct to avoid alignment problems
Nir Muchtar <nirmu@mellanox.com> 2011-10-02
Implement ibv_attach_flow and ibv_detach_flow.
ibv_attach_flow are new verbs that allow to attach
a QP to the specified flow spec.
Flow specifications are described using ibv_flow_spec
structs.
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-05-08
libibverbs: clarifying the environment variable values in ibv_fork_init.3
We got a feedback that this sentence is vague and it isn't clear enough what is
the expected value in the environment variables.
Yishai Hadas <yishaih@mellanox.com> 2012-05-07
shared mr sample program
rc_pingpong improvements for contiguous mode
Yishai Hadas <yishaih@mellanox.com> 2012-05-07
man page update for contiguous mode and shared_mr
Yishai Hadas <yishaih@mellanox.com> 2012-05-07
shared mr - improve fork handling
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-04-29
fix resource leaks in pingpong examples in case of a failure
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-04-25
Added the man page verbs.7
Added the man page verbs.7 which is an introduction to libibverbs man
pages.
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-04-25
Add new InfiniBand link speeds
Introduce support for the following extended speeds:
FDR: IBA extended speed 14.0625 Gbps.
EDR: IBA extended speed 25.78125 Gbps.
Reviewed-by: Hal Rosenstock <hal@mellanox.com>
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-04-09
man: fix typo in ibv_get_device_guid.3
Dotan Barak <dotanb@dev.mellanox.co.il> 2012-04-24
Rename the attribute private -> private_data
Since "private" is a reserved word in C++, it shouldn't be used as a name of a
structure attribute.
Reviewed-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Yishai Hadas <yishaih@mellanox.com> 2012-04-17
expose register shared mr capabilities.
new access flag for reg_mr indicating that mr should be created shared with a given permissions.
- user,group,other read/write.
new verb named ibv_reg_shared_mr to be used for registering a new mr based on shared mr_id.
Yishai Hadas <yishaih@mellanox.com> 2012-04-17
verbs extension mechanism based on Sean first patch
Register driver extension API to indicate that driver supports the new extension mechanism.
To be used by low level drivers (e.g. libmlx4)
Enable checking whether given driver/device instance supports the extension mechanism.
Mechanism to get an extension operations based on a given extension name.
Based on Sean patch from http://marc.info/?l=linux-rdma&m=130714769030036&w=2
Yishai Hadas <yishaih@mellanox.com> 2012-04-15
libibverbs: rc_pingpong example using contiguous mr
Add an option via command line indicating to use contiguous mode
Make relevant changes for that mode
Yishai Hadas <yishaih@mellanox.com> 2012-04-15
libibverbs: Expose memory region allocator mode to applications
Exposing a new capability bit indicating that system supported the new allocation mode.
Recognition of new mode in libibverbs and acting as below:
NULL expected as input address.
The allocated address is hooked on the mr->address for further use by the application.
Flow change for dofork/dontfork.
Yishai Hadas <yishaih@mellanox.com> 2012-04-15
libibverbs: Adding allocator access flag for memory region registration
Extend ibv_access_flags with an extra bit named IBV_ACCESS_ALLOCATE_MR
to ask for new allocator mode.
Jack Morgenstein <jackm@dev.mellanox.co.il> 2012-04-15
For RoCE, the default packet size in ud_pingpong should not exceed the I/F MTU
Without this change, ibv_ud_pingpong under RoCE hangs unless the -s parameter
is explicitly provided in the command line (to be 1430 or less).
Roland Dreier <roland@purestorage.com> 2011-12-21
Roll libibverbs 1.1.6 release
Dotan Barak <dotanb@lists.openfabrics.org> 2011-11-14
Fix memory leaks in various error flows
Marcel Apfelbaum <marcela@dev.mellanox.co.il> 2011-10-03
Add support to ibv_devinfo for displaying extended speeds
Add code to ibv_devinfo to display the following new speeds:
8: FDR-10 is a proprietary link speed which is 10.3125 Gbps with 64b/66b
encoding rather than 8b/10b encoding.
16: FDR - 14.0625 Gbps
32: EDR - 25.78125 Gbps
Reviewed-by: Hal Rosenstock <hal@mellanox.com>
Roland Dreier <roland@purestorage.com> 2011-11-11
Debian: Don't use brace expansion for {a,so} in libibverbs-dev.install
Bart Van Assche <bvanassche@acm.org> 2011-08-07
Makefile.am: Fix an automake warning
Fix the following automake warning message:
Makefile.am:1: `INCLUDES' is the old name for `AM_CPPFLAGS' (or `*_CPPFLAGS')
A quote from the automake manual:
INCLUDES
This does the same job as AM_CPPFLAGS (or any per-target _CPPFLAGS variable
if it is used). It is an older name for the same functionality. This
variable is deprecated; we suggest using AM_CPPFLAGS and per-target
_CPPFLAGS instead.
Bart Van Assche <bvanassche@acm.org> 2011-08-07
Add "foreign" option to AM_INIT_AUTOMAKE
Switch to the modern form of the AM_INIT_AUTOMAKE macro and tell
automake that the libibverbs package does not follow the GNU
standards. This change makes it possible to use 'autoreconf' for the
libibverbs package.
Or Gerlitz <ogerlitz@mellanox.com> 2011-07-19
Update examples for IBoE
Since IBoE requires usage of GRH, update ibv_*_pinpong examples to
accept GIDs. GIDs are given as an index to the local port's table and
are exchanged between the client and the server through the socket
connection.
Or Gerlitz <ogerlitz@mellanox.com> 2011-07-20
Add GID change event
Add handling for GID change events, which are generated by the kernel
IBoE stack when the HW driver updates the GID table.
Or Gerlitz <ogerlitz@mellanox.com> 2011-07-19
Update kernel API header to include link_layer
Modify the code to handle returning the link layer of a port from the
kernel to the library. The kernel has done this since commit
2420b60b1dc4 ("IB/uverbs: Return link layer type to userspace for
query port operation"), merged in 2.6.37-rc1.
The new field does not change the size of struct ibv_query_port_resp
as it replaces a reserved field. Binary compatibility between the
kernel to the library is kept, since old kernels running below new
library will not zero that field, so it will be read as "unspecified,"
while an old library running over new kernel will ignore the value
returned by the kernel.
The solution was suggested by Roland Dreier <roland@purestorage.com>
and Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Or Gerlitz <ogerlitz@mellanox.com> 2011-07-20
Add link_layer field port attribute
The new field has three possible values: IBV_LINK_LAYER_UNSPECIFIED,
IBV_LINK_LAYER_INFINIBAND, IBV_LINK_LAYER_ETHERNET. It can be used by
applications to know the link layer used by the port, which can be
either InfiniBand or Ethernet.
The addition of the new field does not change the size of struct
ibv_port_attr due to alignment of the preceding fields. Binary
compatibility between the library to applications is kept, since old
apps running over new library do not read this field, and new apps
running over old library will determine the link layer as unspecified
and hence take their IB code path.
The solution was suggested by Roland Dreier <roland@purestorage.com>
and Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Roland Dreier <roland@purestorage.com> 2011-06-29
Update Debian Standards-Version to 3.9.2
Roland Dreier <roland@purestorage.com> 2011-06-29
Don't ship .la files in Debian libibverbs-dev
Roland Dreier <roland@purestorage.com> 2011-06-29
Package description shouldn't start with an article
Julien BLACHE <jblache@debian.org> 2011-06-29
debian/libibverbs1.postinst: Let debhelper code run in all cases
Do not exit postinst if not configuring -- code added by debhelper needs
to run in all cases, not only the configure case.
Roland Dreier <roland@purestorage.com> 2011-06-28
Roll libibverbs 1.1.5 release
Alexander Schmidt <alexs@linux.vnet.ibm.com> 2010-08-20
Handle huge pages in ibv_fork_init() and madvise tracking
When fork support is enabled in libibverbs, madvise() is called for
every memory page that is registered as a memory region. Memory
ranges that are passed to madvise() must be page aligned and the size
must be a multiple of the page size.
libibverbs uses sysconf(_SC_PAGESIZE) to find out the system page size
and rounds all ranges passed to reg_mr() according to this page size.
When memory from libhugetlbfs is passed to reg_mr(), this does not
work as the page size for this memory range might be different
(e.g. 16MB). So libibverbs would have to use the huge page size to
calculate a page aligned range for madvise.
As huge pages are provided to the application "under the hood" when
preloading libhugetlbfs, the application does not have any knowledge
about when it registers a huge page or a usual page.
To work around this issue, detect the use of huge pages in libibverbs
and align memory ranges passed to madvise according to the huge page
size. Determining the page size of a given memory range by watching
madvise() fail has proven to be unreliable. So we introduce the
RDMAV_HUGEPAGES_SAFE environment variable to let the user decide if
the page size should be checked on every reg_mr() call or not. This
requires the user to be aware if huge pages are used by the running
application or not.
I did not add an aditional API call to enable this, as applications
can use setenv() + ibv_fork_init() to enable checking for huge pages
in the code.
[ Updated ibv_fork_init() manpage for RDMAV_HUGEPAGES_SAFE. - Roland ]
Roland Dreier <roland@purestorage.com> 2011-06-27
Set DM-Upload-Allowed now that Roland is a Debian Maintainer
Dotan Barak <dotan@dev.mellanox.co.il> 2011-06-15
Fix date format in RPM spec file changelog
Yann Droneaud <ydroneaud@opteya.com> 2011-05-31
read_config_file: ignore driver line without driver name
If there's no driver name, strsep() will set config to NULL and later
processing of the driver name will segfault.
Spotted with zzuf.
Roland Dreier <roland@purestorage.com> 2011-05-27
Fix crash if no devices and ibv_get_device_list() is called multiple times
If no devices are found, ibverbs_init() sets num_devices to 0. This
means the next call to __ibv_get_device_list() would call
ibverbs_init() again, which crashes because ibverbs_init() leaves
various internal pointers pointing to freed memory.
Fix this by using pthread_once() to call ibverbs_init() exactly once,
and then doing the right thing even if num_devices stays 0.
Tested-by: Yann Droneaud <ydroneaud@opteya.com>
Tom Tucker <tom@opengridcomputing.com> 2010-07-29
Add AC_PROG_LIBTOOL to fix libtool configure warning
Add AC_PROG_LIBTOOL to configure.in to fix an autogen.sh warning about
LIBTOOL configuration.
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> 2010-10-07
Fix autotools to include the necessary m4 files
Running autogen.sh with a new version of autotools and then building
on a system with an older version tends to explode. Unfortunately
this is sometimes necessary since the new version is required by the
package. The fix changes the autogen.sh output from:
+ aclocal -I config
+ libtoolize --force --copy
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: copying file `config/ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
+ autoheader
+ automake --foreign --add-missing --copy
+ autoconf
to:
+ aclocal -I config
+ libtoolize --force --copy
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: copying file `config/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `config'.
libtoolize: copying file `config/libtool.m4'
libtoolize: copying file `config/ltoptions.m4'
libtoolize: copying file `config/ltsugar.m4'
libtoolize: copying file `config/ltversion.m4'
libtoolize: copying file `config/lt~obsolete.m4'
+ autoheader
+ automake --foreign --add-missing --copy
+ autoconf
And fixes various build problems in weird cases.
This is how GNU envisions this mess works at least...
Roland Dreier <rolandd@cisco.com> 2010-06-03
Roll libibverbs 1.1.4 release
Roland Dreier <rolandd@cisco.com> 2010-06-03
Small configure.in modernizations
Roland Dreier <rolandd@cisco.com> 2010-06-03
Debian: Switch to dpkg-source 3.0 format
Hakon Bugge <Haakon.Bugge@sun.com> 2010-06-02
Force line-buffering in ibv_asyncwatch
ibv_asyncwatch defaults to block-buffering when stdout is redirected to
a file or pipe. Changing to line-buffered mode makes it more usable in
scripted environments.
Sean Hefty <sean.hefty@intel.com> 2010-05-06
Add path record definitions to sa.h
Add definitions for path record wire definition. This will be used by
the librdmacm and ib_acm service, and is exchanged with the kernel
using the newer set and query route functionality.
Alex Vainman <alexonlists@gmail.com> 2010-03-28
Undo changes in memory range tree when madvise() fails
ibv_madvise_range() doesn't cleanup if madvise() fails. This patch
rolls back changes already made in the memory range tracking tree by
madvise() calls before the one that failed. We can do this fairly
simply by simply restarting ibv_madvise_range() from the original
start to the current location with the opposite advice/inc values.
Alex Vainman <alexonlists@gmail.com> 2010-02-01
Fix incorrect splits/merges in the memory tree when madvise() fails.
ibv_madvise_range() first manages (splits or merges) memory ranges in
the tree and only then calls madvise(). If madvise() fails, the
tree's memory range may contain incorrectly split or merged ranges.
The patch undoes the split and merge operations performed on the node
which caused the madvise() failure as well as on that node's
neighbors.
Alex Vainman <alexonlists@gmail.com> 2010-02-01
Increment node refcount in ibv_madvise_range() only if madvise() succeeds
ibv_madvise_range() first updates the memory range reference count and
then calls to madvise(). If madvise() fails, the reference count of
the failed node is incorrect. Fix this by updating the node's
reference count only after a successful call to madvise() (or if no
call to madvise() was needed).
Alex Vainman <alexonlists@gmail.com> 2010-02-01
Factor out range handling in ibv_madvise_range()
Clean up some code in ibv_madvise_range() by adding functions
merge_ranges(), split_range() and get_start_node().
Roland Dreier <rolandd@cisco.com> 2009-11-11
Update Debian build rules so -dbg package isn't empty
Add an override_dh_strip target so that the -dbg package ends up with
actual debug information in it. This was broken in the dh7 transition.
Roland Dreier <rolandd@cisco.com> 2009-10-30
Use proper build dependency version in debian control file
The debian rules use a override_dh_makeshlibs target, so (as lintian
points out) we need a build dependency on debhelper >= 7.0.50.
Roland Dreier <rolandd@cisco.com> 2009-10-29
Roll libibverbs 1.1.3 release
Roland Dreier <rolandd@cisco.com> 2009-10-29
Merge Fedora spec file changes
Roland Dreier <rolandd@cisco.com> 2009-10-29
Rewrite GID output in ibv_devinfo to avoid type punning warnings
Avoid casting from uint8_t* to uint16_t* and then dereferencing to avoid
warnings about type punning.
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> 2009-10-28
Return errors from ibv_get_device_list() via errno
Get rid of the output to stderr on various failure cases from
ibv_get_device_list() such as no device driver found, so that
applications can control how to present errors. Fix up the examples
and the man page to match.
Code expecting this behavior linking to old libibverbs will
get the old fprint and errno set to garbage (probably ESPIPE).
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> 2009-10-29
Fix double free in find_sysfs_devs()
Fix double free of sysfs_dev in find_sysfs_devs if ibv_read_sysfs_file()
fails (which is unlikely in practice).
Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Jeff Squyres <jsquyres@cisco.com> 2009-10-28
Show transport (IB vs. iWARP) type in ibv_devinfo
Robert Pearson <rpearson@systemfabricworks.com> 2009-09-14
Fix fall-through bug in options case in pingpong examples
Add missing breaks for the 'm' case of options handling.
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> 2009-07-30
Do not use enum types for bit flags
Arithmetic operations on enum members do not result in the enum type;
C++ is stricter about this than C. So using flag enums results in
compile errors when they are OR'd together in a C++ application.
To fix this, replace all flag enum objects with int. int was selected
to preserve the ABI; we checked that enum types are the same size as
int on at least i386, x86-64, ppc32, ppc64, ia64, and mips, and arm
and sparc also appear compatible with this choice.
Roland Dreier <rolandd@cisco.com> 2009-09-02
Update Debian Standards-Version to 3.8.3
Roland Dreier <rolandd@cisco.com> 2009-09-02