-
Notifications
You must be signed in to change notification settings - Fork 3
/
ReleaseNotes-sfc
1173 lines (1035 loc) · 45.8 KB
/
ReleaseNotes-sfc
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
Solarflare 4.X Linux network driver
===================================
Version: 4.4.1.1017
Overview
--------
This package is the Linux NET driver source RPM for Solarflare Server
Adapters.
Supported hardware platforms
----------------------------
The drivers contained in this package support the following Solarflare
adapters:
- Solarflare Flareon Server Adapters:
- Solarflare SFN7002F Dual Port SFP+ Server Adapter
- Solarflare SFN7122F Dual Port SFP+ Server Adapter
- Solarflare SFN7142Q Dual Port QSFP+ Server Adapter
- Solarflare SFN7322F Precision Time Synchronization Server Adapter
- Solarflare Onload Server Adapters:
- Solarflare SFN6122F Dual Port SFP+ Server Adapter
- Solarflare SFN6322F Precision Time Synchronization Server Adapter
- Solarflare SFN6832F SFP+ Mezzanine Adapter
- Solarflare SFN5322F Precision Time Synchronization Server Adapter
- Solarflare SFN5122F Dual Port SFP+ Server Adapter
- Solarflare SFN5121T Dual Port 10GBASE-T Server Adapter
- Solarflare SFN5802K Mezzanine Adapter (for HP BladeSystem c-Class)
- Solarflare SFN5812H/SFN5814H Mezzanine Adapter (for IBM BladeCenter)
- Solarflare AOE Adapters:
- Solarflare SFA6902F SFP+ AOE Adapter
- Solarflare Performant Server Adapters:
- Solarflare SFN5151T 10GBASE-T Server Adapter
- Solarflare SFN5152F SFP+ Server Adapter
- Solarflare SFN5161T Dual Port 10GBASE-T Server Adapter
- Solarflare SFN5162F Dual Port SFP+ Server Adapter
- The following OEM adapters are also supported, but note each OEM may recommend
a different driver version to match the version used for testing/qualification
- HP Ethernet 10Gb 570FLB Adapter
- HP Ethernet 10Gb 570M Adapter
Building and installation
-------------------------
To build a binary RPM for the running kernel type:
rpmbuild --rebuild <source rpm filename>
To install the resulting binary rpm:
Locate the file that was created in the preceding step, prefixed with the
annotation "Wrote:", then type:
rpm -Uvh <binary rpm filename>
To ensure that the correct version of the driver is loaded into the current
kernel
/sbin/modprobe -r sfc
/sbin/modprobe sfc
Installation of the driver can be confirmed by typing:
modinfo sfc | grep version
and checking for the line:
version: 4.4.1.1017
All network interfaces available on the system can be found with:
ifconfig -a
Driver updates
--------------
The latest version of this driver can always be downloaded from
<https://support.solarflare.com/>.
Documentation
-------------
For detailed instructions of how to install and configure the Linux driver
please refer to the "Solarflare Server Adapter User's Guide"
(part number SF-103837-CD) which is available as a PDF from
<https://support.solarflare.com/>.
Linux distribution support for Solarflare Adapters
--------------------------------------------------
RHEL6 and SLES11 have in-built Solarflare adapter drivers but these
drivers may not support the latest SFN7XXX adapters.
It is recommended to install the latest Solarflare supplied drivers.
Support
-------
Please contact your local Solarflare support representative or email
NIC partitioning, SR-IOV and PF-IOV modes on SFN7XXX adapters
-------------------------------------------------------------
This release of the Solarflare Linux Net driver supports NIC partitioning
(multiple PFs) and SR-IOV (VFs).
See "Solarflare Server Adapter User's Guide" SF-103837-CD Issue >=12
available from https://support.solarflare.com for more detailed information
on setting up NIC partitioning, SR-IOV or PF-IOV modes.
Some additional details as well as known issues are documented below:
General:
~ NIC partitioning/SRIOV/PF-IOV features require sfutils >=v4.3.0.1010 which
contains adapter firmware v4.2.1.1014 and firmware-variant=full-feature
(setup with sfboot)
~ Please note that Hybrid SR-IOV support for SFN5XXX|6XXX drivers is now
deprecated. Please use an older driver to continue using this feature.
~ Link control (e.g. setting pause frames with ethtool and controlling MTU) is
only available on the first PF on each port; (this is referred to as "PF0"
or the "primary PF")
~ Only link control functions have the full MAC statistics available to them
(via ethtool -S). All statistics that come from the MAC are now prefixed
"port_" as they refer to a single physical network port.
All other functions have statistics which show the number of packets and
bytes both received and transmitted by that function, classified into
unicast, multicast and broadcast traffic.
~ MTD partitions are only exposed from PF0 on each port, hence the utilities
sfupdate, sfboot and sfkey need to be run where they have access to PF0.
~ It is now possible to identify which physical port an interface is bound to.
See /sys/class/net/<interface>/device/physical_port (note this is zero
based whereas the identifiers printed on the adapter brackets are one based)
~ The driver supports the use of shared RSS indirection tables, after the
16 unique hardware RSS indirection tables entries have been consumed.
~ In order for active-backup bonding to work, the slave interface normally
takes the MAC address of the master interface. Only PF0 is allowed to
change its MAC address. Therefore for this to work with other functions it
is necessary to set "sfboot mac-spoofing=enabled". An alternative is to
set the bonding module option "fail_over_mac" and allow the gratuitous ARP
to inform the other link partners of the change in MAC address.
~ At this time PTP will only work with the PF0 on each port and will
not work with a VF.
NIC partitioning support on SFN7XXX adapters:
~ The sfc.ko driver will bind to multiple PFs on the same physical adapter
port and create a network interface for each PF.
~ Configure with "sfboot switch-mode=partitioning pf-count=X" and cold reboot
the server if warned to do so.
~ If using NIC partitioning in the same layer2 broadcast domain you may
need the kernel parameter "arp_ignore=2" as linux will reply to ARP
on any interface. This might cause traffic to go over unexpected interfaces.
~ If using NIC partitioning with VLANs all PFs must be on a unique VLAN
(which can include VLAN 0). Traffic that is sent/received from this PF will
have VLAN tags transparently inserted/stripped by the adapter. A single PF
on each port can be on VLAN0 where it will both receive and transmit
untagged traffic.
~ Configure NIC partitioning with VLANs using
"sfboot pf-vlans=<VLAN>,<VLAN>..."
~ Do not use LACP bonding modes when using NIC partitioning as the LACP
partner (switch) will not be aware of the partitioning.
~ The driver parameter "num_vis" is now more important. This controls how many
extra VIs (RX/TX/event rings) are allocated for the use of onload on each
PF. If not using onload you may wish to set "num_vis=0" so that there
are no false resource limitations when using multiple PFs.
~ When PF0 is put into promiscuous mode it will receive traffic for its own
MAC address as well as any other incoming traffic that does not match
another PF's MAC address. For other PFs there is no change in received
traffic if the interface is put into promiscuous mode.
SR-IOV support on SFN7XXX adapters:
~ The sfc.ko driver will bind to all VFs and create network interfaces.
~ Configure with "sfboot switch-mode=sriov pf-count=1 vf-count=X" and cold
reboot the server if warned to do so.
~ RHEL6.5 and RHEL7 are supported for the host/hypervisor OS.
~ It is possible to consume the VFs using these KVM/libirt modes:
- network hostdev (VF passed into the VM; migration is only possible if
the VF is hot-unplugged)
- direct-passthrough (macvtap interface used over the VF and virtio-net
driver used in the VM guest)
~ Note that VFs will initially be assigned random MAC addresses, but libvirt
(and ip link) can override the MAC address.
~ A VF in a VM will be unable to set its own MAC address. See the item on
active-backup bonding.
~ To enable VFs (for RHEL6.5 and RHEL 7)
echo <num vfs> > /sys/class/ethX/device/sriov_numvfs
~ To enable VFs on older operating systems set the sfc.ko module parameter
"max_vfs". If set to a single integer this is the number of VFs to enable
and will apply to all PFs. If you wish to configure this to be a different
value for each PF set this to a comma separated list.
~ Please ensure that you enable all BIOS settings that refer to virtualization
and SR-IOV (note there might be several e.g. SRIOV, IOMMU, VT, VT-x, VT-d,
IO virtualization)
~ Solarflare recommends setting "pci=realloc" as a kernel parameter
(e.g. in /boot/grub/grub.conf). This allows the kernel to reprogram the
initial BIOS PCI apertures in case PCI aperture space for the VFs is not
assigned by the BIOS.
~ To view which VFs are associated with which PFs and the VF MAC addresses
please use "ip link show"
~ A PF put into promiscuous mode will not see the traffic to/from a VF.
~ A VF put into promiscuous mode will not see any additional traffic.
~ Setting VF MAC/VLANs/link state is possible via the ip command
(or libvirt configuration). From "ip link help"
"ip link set { dev DEVICE}
[ vf NUM [ mac LLADDR ]
[ vlan VLANID ]
[ state { auto | enable | disable} ] ]"
~ Setting VF spoofcheck/rate/qos (e.g. via the ip command) is not supported
at this time.
SR-IOV with NIC partitioning mode support on SFN7XXX adapters:
~ This mode offers partitioning of the adapter. Each partition is on a unique
VLAN and within this layer2 broadcast domain there is switching on the
adapter between the PF and VFs.
~ This support is currently considered EXPERIMENTAL i.e. all features are
present, but there has only been limited testing. Solarflare will support
the use of this feature in a test environment, but does not recommend use
in a production environment until this feature becomes GA.
Note that both SR-IOV and NIC partitioning as individual features are both
considered GA quality.
~ Ensure you are using adapter firmware >= v4.4.2.1011
~ It is necessary to configure NIC partitioning with unique VLANs in this mode
~ Configure with:
"sfboot switch-mode=partitioning-with-sriov \
pf-count=X pf-vlans=<VLAN>[,<VLAN>]... \
vf-count=Y"
and cold reboot the server if warned to do so.
PF-IOV mode support on SFN7XXX adapters:
~ This mode offers switching between PFs. Use this mode where a server does
not support SR-IOV (otherwise please use SR-IOV mode as this provides up-to
240VFs versus only 16PFs)
~ Configure with "sfboot switch-mode=pfiov pf-count=X" and cold reboot the
server if warned to do so.
~ In RHEL7 passing through a PCI function uses the new VFIO mechanism.
Due to a missing capability flag on SFN7XXX hardware, VFIO will only allow
all PFs to be passed into a guest together. This will be addressed with a
kernel quirk.
Known issues with the platform (KVM/libvirt/kernel)
---------------------------------------------------
~ libvirt direct-bridged mode on-top of a VF is not supported. Please use
libvirt direct-bridged mode over a PF or direct-passthrough mode with VFs.
Issue 46876:
~ Multicast does not work in libvirt direct-passthrough mode.
This is because the multicast address list is not propagated to the network
interface below the macvtap driver. Without this the sfc.ko driver is unable
to program the adapter switch to efficiently replicate multicast traffic to
only the subscribed functions. Solarflare will work with upstream to find a
solution to this issue.
Issue 47742:
~ IPv6 traffic does not pass in direct-bridged and direct-passthrough modes.
In direct-passthrough mode multicast neighbour solicitation fails as per the
previous point.
In direct-bridged mode this is because an interface calculates an IPv6 link
address based on its MAC address. There will be a neighbour solicitation
multicast filter in the host, but when a global address is assigned in the
VM guest, a multicast filter corresponding to the new global address is not
inserted in the host because macvtap doesn't propagate this information.
Issue 46948:
~ The macvtap driver does not propagate the link state from the real network
interface. This means that it is not possible to use bonded interfaces that
use link state detection (miimon). Instead please use ARP probes. This
affects libvirt direct-bridged and direct-passthrough modes.
Issue 47490:
~ Bad interactions can occur with NetworkManager scripts when it sees
new VFs with random MAC addresses. Alternatively use the older networking
service/scripts.
Known Issues with Solarflare driver/firmware
--------------------------------------------
Issue 41550: SF-113649-KI:
~ allmulti mode is now correctly supported when using adapter firmware
>=v4.4.2.1011 and "sfboot firmware-variant=full-feature"
In other cases only multicast traffic which is not being received by other
VFs or PFs will be received by the allmulti interface.
~ The lack of a proper allmulti mode could be an issue if subscribing to a
very large number of multicast groups where the number of hardware filters
is exceeded.
Issue 48214: SF-113650-KI:
~ SARFS/SXPS is not compatible with changes in linux >=3.0 and has been
disabled in this release. In this case please use the kernel ARFS/XPS
features.
Issue 50308:
~ For RHEL 7.0 disabling GRO after passing traffic is unsafe, and can lead to
a kernel NULL pointer deference. This is believed to be addressed by Redhat
in RHEL 7.1. This will only happen when LRO is also disabled. For
configurations that disable GRO and LRO, please disable GRO after the driver
is loaded, but before the interface is brought up.
Issue 50868:
~ If using a SFN7142Q adapter with adapter firmware v4.1.0.6742 and running
sfupdate, after the update the two network interfaces from the second QSFP+
port will be in a disabled state. Please reload the driver to correct this.
This issue has been resolved in adapter firmware >=v4.1.1.1022.
Issue 50873:
~ Changing the MTU on a network team in RHEL 7 can cause a hang. As a
workaround please change the MTU of the component interfaces before
creating the team.
Changelog
---------
### v4.4.1.1017 -- Feature release
New features:
~ Support for an access control daemon to control multicast subscriptions
(please contact Solarflare support for more details of how to use this).
~ Performance improvements.
- enable rss_numa_local by default
- set the default rx_recycle_ring_size to 512
- set rx_copybreak default to 192
- Reduce lumpiness of the sarfs hash function
- Avoid GRO path for small packets so that data is copied.
- Change to fixed RX recycle ring
- Support RX descriptor reposting.
- Replace atomic_set() with atomic_add() when incrementing rx_buf page
- Add compiler hints to reduce icache miss rate for efx_enqueue_skb()
- Move re-enable of TX path to end of napi poll loop
~ Experimental support for NIC partitioning + SRIOV used simultaneously.
~ Support setting the MAC and VLAN of a VF via the PF (via the "ip" command)
Issue 48262:
~ Avoid inserting unicast filters when kernel is blocked (Solarcapture/EF-VI)
Issue 48771:
~ Support SFF8472 diagnostics for SFP+ modules connected via QSFP.
Issue 48310:
~ Allow tx_copybreak=0 to disable this feature.
Issue 49178/49179:
~ enable cascaded multicast filters in adapter firmware (if present).
Issue 48910:
~ [SFN5/6XXX] Fix regression "num_vis=-1" was exporting no VIs to onload.
Issue 45957:
~ kernel 3.18 and 3.19 compatibility.
Issue 49573:
~ Implement destination port/ip filtering option for SARFS.
~ Add debugfs counter for the number of updates to filters that have been
requested from tx_queue.
Issue 48771:
~ Pass QSFP module information through the driver to ethtool.
Issue 50830:
~ Fill in rxhash correctly in LRO and non-receive offload paths.
Issue 49577:
~ Fix rare crash when inserting hardware filters using ethtool.
Issue 50992:
~ Fix issue where "ip link show" gives wrong mac address for vfs in direct
passthrough mode, by updating the PF's record of the VF's MAC address if
possible.
Issue 49598:
~ Reduce the frequency and verbosity of messages generated from (expected)
denied firmware requests by unprivileged PFs/VFs.
~ Make failed filter removal less noisy after an MC reset.
### v4.2.2.1016 -- Feature release
First release supporting NIC partitioning, SR-IOV and PF-IOV modes on SFN7XXX
adapters. This support requires sfutils >=v4.3.0.1010 which contains adapter
firmware v4.2.1.1014 and firmware-variant=full-feature (setup with sfboot)
General changes:
~ the old module parameter "enable_multi_pf" has been removed as NIC
partitioning (with multiple PFs) is now fully supported by this driver
~ add sysfs entry and module parameter to control MCDI tracing between
the driver and the adapter firmware. This is an extra debug feature that is
for the use of Solarflare support.
Issue 44671:
~ Work around TRIGGER_INTERRUPT command not being supported on SFN7142Q.
Issue 44372:
~ Disable RSS on packed stream firmware variant (used for SolarCapture) as it
is not supported
Issue 44737:
~ Increase BIST mode timeout from 10s to 30s to accommodate longer SFN7142Q
BIST operations.
Issue 46845:
~ remove bogus __GFP_COLD flag in page allocation to improve performance.
Issue 47102:
~ replace get_page() with atomic_set() to improve performance.
Issue 44509:
~ PTP. Fix logical error in efx_ptp_restart()
Issue 44510:
~ PTP. To increase robustness, efx_ptp_change_mode() should always disable
PTP in the firmware if disable is requested even if the driver believes that
PTP is already stopped
Issue 47551:
~ Only fallback to lower interrupt mode if the lower mode is supported.
Issue 47169:
~ Kernel compat fixes for RHEL 6.6
Issue 47339:
~ Kernel compat for linux 3.16.
Issue 47268:
~ Allow for a smaller RX ring to be configured (minimum of 128 reduced to 16)
Issue 47603:
~ Move selection of SXPS from compile time to run time.
### v4.1.2.1003 -- Feature release
New features to support the SolarCapture 1.3 release:
~ New forward_fcs attribute in sysfs which when enabled, causes the driver to
not strip CRCs on ingress path. When enabled frames with bad CRCs are not
discarded. Changing forward_fcs requires reconfiguring the adapter's MAC
~ Disable ARFS if the required adapter filter flags are not supported
~ Disable RSS on Packed Stream firmware variant
Other new features:
~ Add sysfs entry to control MCDI tracing
~ Add module parameter to enable MCDI logging on new functions
Issue 45309:
~ Take mac_lock when setting or unsetting the kernel block (from EFVI or
onload) in order to avoid races in sync_rx_mode.
Issue 44095:
~ change EFX_BUG_ON_PARANOID on mcdi failure in ptp_synchronize to a proper
error path.
Issue 43849:
~ recheck mcdi->state after timeout in efx_mcdi_await_completion
Issue 42806:
~ handle nonlinear SKBs in efx_filter_rfs()
Issue 45444:
~ fix calling of free_irq with already free vector
Issue 40785:
~ add module option "underreport_skb_truesize" to falsify skb->truesize for
LRO packets
Issue 43391:
~ use __GFP_NOWARN when allocating RX pages from atomic context.
Issue 44829:
~ don't BUG_ON efx->max_channels == 0 in probe
Issue 46587:
~ Add RW semaphore to protect against MCDI timeouts in
efx_ef10_filter_table_remove() which could cause a kernel panic in
efx_ef10_filter_table_restore(). There should not be MCDI timeouts seen
in production systems so this is a defensive fix rather than a bug fix.
### v4.1.0.6734 -- Feature release
New Features:
~ Add support for busy polling available in Linux 3.11.
See section 1.8 of http://kernelnewbies.org/Linux_3.11
Note that only connect()'ed sockets can make use of this latency reducing
feature.
~ Implement SARFS; Solarflare Accelerated Receive Flow Steering
(disabled by default) This inserts hardware RX filters in order to direct
flows back to the same CPU where the user-land process is transmitted. This
should help cache locality.
This feature can be used when Accelerated RFS is not available in the
currently running kernel, and if ARFS is in use will be disabled.
To enable SARFS, set the "sarfs_sample_rate module" parameter to non-zero.
20 is recommended.
In addition, some form of XPS is needed for SARFS to function correctly. The
easiest way to do this is to enable Solarflare XPS by setting the module
parameter "sxps_enabled=1"
Alternatively if your kernel supports it you can enable XPS by following the
instructions at:
https://www.kernel.org/doc/Documentation/networking/scaling.txt
or in the Solarflare Adapter User Guide (SF-103837-CD)
section 3.20 Performance Tuning on Linux
~ 7xxx: Add support for SFC9140 40G QSFP network controller silicon.
(network adapter part number SFN7142Q).
~ Preferentially affinitise interrupts to CPUs on the NUMA node local to the
adapter and restrict RSS to only local CPUs (disabled by default).
To enable this feature set the module parameter "rss_numa_local=1"
~ add RX hook for driverlink to allow Solarsecure Filter Engine to inspect
packets.
PTP issues/features:
Issue 35011:
~ PTP: Use net_ratelimit() for PTP event queue overflow messages.
Issue 41277:
~ PTP: Advertise translated hardware timestamps.
Issue 41479:
~ PTP: Remove warning when synchronize operation gets no usable samples.
Issue 38893:
~ PTP: Avoid assumptions about skb header area length in efx_ptp_rx()
~ PTP: Remove two redundant efx_ptp_synchronize() calls
~ PTP: Fix preprocessor conditions using EFX_HAVE_PHC_SUPPORT
~ PTP: Always request 'enhanced' PTPv2 filtering on Siena
~ PTP: Switch back to the original PTP clock adjustment operation
Issue 41335:
~ PTP: Accept fake PPS events whether or not packet timestamping of PTP
packets is enabled in the NIC. This allows phc2sys to be used without
requiring linuxptp to be running
Issue 42466:
~ PTP: check for NULL efx->ptp_data in efx_ptp_event
Issue 42956:
~ PTP: Test for ethtool get_ts_info support directly
Issue 41055:
~ PTP: Check for non-PTP or non-primary function in private clock ioctls
~ In some cases this could cause a kernel NULL pointer dereference in
efx_ptp_ts_settime() when calling ioctl(SIOCSHWTSTAMP)
Issue 41022:
~ PTP: Fix kernel NULL pointer dereference in efx_hard_start_xmit() that could
be caused if hardware timestamping on raw sockets were enabled.
Issue 40999:
~ PTP: Expose ptp_caps on primary function, not all functions on port 0
Issue 42321:
~ 7xxx: PTP. Fix issue that can cause firmware watchdog to expire while host
compares system and NIC clocks.
Driver support for OpenOnload / EFVI / SolarSecure Filtering Engine:
Issue 40538:
~ onload: multicast loopback: net_driver filter support
~ onload: net_driver filter support for stack_id
Issue 41295:
~ Updates driver link filter_block_kernel API (used by onload and EFVI apps)
to have a unicast/multicast split, to allow for a closer match to previous
semantics.
Issue 41992:
~ Sanity check filter specs when inserting from driverlink clients.
General Issues / Features / Improvements:
Issue 40635:
~ Remove use of procfs in net driver when CONFIG_DEBUG_FS not defined.
Issue 41727:
~ Pass correct pointer to free_irq() on failure path
Issue 41197:
~ added ioctl support for MCDI licensed app state call used by "sfkey" utility
Issue 41248:
~ netif_device_detach in efx_schedule_reset so the tx watchdog won't fire
while we're waiting for reset.
Issue 42437:
~ use ether_addr_copy and similar helpers.
Issue 37976:
~ On MCDI timeout, issue an FLR (and mark MCDI to fail-fast)
Issue 42757:
~ Fix TX DMA errors seen when using module parameter "separate_tx_channels=1"
Issue 42199:
~ allow PIO more often as PIO conditionals were incorrectly sensitive to some
cleanup actions performed during hardware setup.
Issue 40373:
~ rewrite pcie_enable_error_reporting error to be less alarming
(normally when AER cannot be enabled as the platform firmware is handling
this)
Issue 39820:
~ Don't count discarded packets as checksum errors as well.
Issue 39528:
~ Improve 'Fatal error' logs which occur when MC reboot is detected
Issue 43431:
~ Make ethtool_set_flags understand rxvlan and txvlan offload options
~ This is needed allow ethtool -K to operate on RHEL 6.5
Issue 41279:
~ Fix reporting of MC BIST results through ethtool
Now 1=>pass, 0=>not run, <0 fail
Issue 41791:
~ 5xxx/6xxx: Fix over-accounting of buffer table space for virtual functions
Issue 37075:
~ 7xxx: MAC stats (incl loopback) reported per vadapter
Issue 41673:
~ 7xxx: Update link fault reporting
### v4.0.2.6628.1 -- Hot-fix release
~ use 64-bit writes for PIO as 32bit PIO writes to write-combined mappings
can, in very rare circumstances cause data corruption (before TCP checksum
offload occurs).
Restrict PIO to x86_64 systems.
### v4.0.2.6628 -- Feature release
Add support for RX time-stamping and PTP on SFN7XXX family adapters:
~ This release provides the driver support necessary for both the
Solarflare Enhanced PTP daemon ("sfptpd") and linuxptpd which is
provided in some distributions.
Issue 37568:
~ Properly deliver VLAN-tagged PTP packets when disabling PTP.
Issue 39894:
~ Fix DMA unmapping of incorrect addresses for TSO TX buffers on SFN7XXX
family adapters.
This bug would be observed as unmap page errors, and would affect users with
TSO (enabled by default) and an IOMMU enabled.
Issue 38352:
~ Remove build time warning message when MTD is disabled, as sfutils can now
work on linux using an IOCTL to the driver.
### v4.0.0.6585 -- Feature release
Support for SFN7XXX family adapters (using SFC91XX family silicon):
~ This release contains full GA quality support for the new SFN7XXX series of
network adapters.
~ Currently running PTP on SFN7XXX adapters is not supported. This support
will be in a subsequent release in 2013Q4.
~ There are new counters exposed via "ethtool -S" to expose any new internal
packet counters.
~ driver support for the "sfkey" utility to modify feature licenses on the
adapter.
TX improvements:
~ Support for SFC91XX TX PIO (Programmed IO) feature for lower TX latency.
This is controlled by the new module parameter "piobuf_size" (default on
x86 is 256 bytes). For frames that are smaller than this, and if there are
adapter resources available, a packet will be transfered directly to the
adapter via PIO rather than incur the latency of a bus mastered DMA.
RX improvements:
~ The driver now uses a single optimized RX buffer allocation strategy
(the "rx_alloc_method" module parameter has been deprecated and has no
effect other than to print a warning).
~ Use memory more efficiently by supporting RX scatter for large MTU values
~ Make initial fill of RX descriptors synchronous. This is to avoid a non-zero
"rx_nodesc_drops" count which could previously increment during driver load
when there was incoming traffic.
Support for POWER systems, including:
~ AER/EEH support in the net driver
~ Improve performance by reusing DMA-mapped pages
~ Improve performance by allocating RX buffers more efficiently in pages of
memory
Ethtool offline self-test behaviour for SFN7XXX:
~ For SFN7XXX series adapters the ethtool offline selftest (which can be used
to verify hardware operation) can cause operations on other network
interfaces on the same adapter to fail (as the whole adapter goes into a
test mode). Only run the ethtool offline self-test on one port at a time,
and expect to see loss of link for the duration of the test on all ports.
Note the ethtool online test does not have this limitation.
Issue 39031:
~ Remove ethtool RESET operation that could be used by an unpriviledged local
user to cause a local denial of service.
Issue 31933:
~ Cancel interrupt self-test on interface-down on Linux <2.6.23
Issue 36071:
~ Avoid kernel warning in skb_try_coalesce
Issue 34973:
~ Fix RX buffer handling on non-x86 and non-POWER systems
Issue 35013:
~ Fix potential kernel panic when using certain (uncommon) MTU values
Issue 35019:
~ Fix build failure on RHEL5 kernel
Issue 34716:
~ Fix rare memory leak on RX data path
Issue 33921 / 33922:
~ Fix RX filter insertion conflicts
Issue 34253:
~ Disable AOE on RHEL4 to fix build failure
Issue 34299:
~ Fix potential flood of syslog if PTP packet storm occurs
Issue 16820:
~ Detach network device during reconfiguration to avoid TX watchdog event
Issue 34335:
~ Fix driver load failure due to symbols exported on some kernel versions
### v3.3.3.6329 -- Update release
Issue 38482:
~ Fix issue in dealing with multicast mismatch present in v3.3.0.6262, which
was caused by the fix for Issue 31533. This could cause old packet data to
be received (and hence could look like packet loss, or out-of-order
packets).
The bug hits when the following events coincide:
1) The arrival of a frame that is discarded by the driver.
2) The receiving channel is in "page-mode" for RX buffer allocation.
3) The previous packet received has been consumed and freed.
By default the RX allocation mode is selected automatically by the
driver according to the traffic profile, and will prefer page-mode when
packets that can be handled by kernel GRO dominate.
A workaround for affected drivers is to set the driver parameter
"rx_alloc_method=1" (to force SKB based allocations).
Issue 37963:
~ Allow PTP to work with vlans post 2.6.37
Issue 37405:
~ Add kernel compat for RHEL 6.5 backport of ARFS
### v3.3.0.6309 -- Update release
Issue 34948:
~ Fix CPU soft-lockup on interrupted self-test
Issue 34511:
~ Fix kernel panic when VLAN group rapidly created/destroyed
Issue 30759:
~ Changes to max buffer table and VI advertised via driverlink
~ Respect num_vis setting even if it exceeds the heuristic limit
Issue 35637:
~ Fix kernel panic on RX completion with unexpected index
Issue 35644:
~ Use hardware checksum offload under circumstances when we previously didn't
(specifically, packets not aggregated by LRO and not passed into GRO)
Issue 35774:
~ Remove sfc_tune from RPM builds and disable CONFIG_SFC_TUNE
Issue 36530:
~ Kernel compat fix for getnstime_raw_and_real() on 2.6.26.8
Issue 37257:
~ Build fixes for Linux 3.10: VLAN API, I2C API
Issue 37256:
~ Remove write permission from phy_type attribute (Linux 3.10 compatibility)
Issue 37280:
~ Update netdev notifier function for API change in Linux 3.11
Issue 37110:
~ Always store port number in private data, not net_device::dev_id
Issue 35400:
~ PTP: Fix incorrect filter address for PTP Peer Delay Multicast
Issue
~ PTP: Fix crash if PTP hardware clock cannot be registered
Issue 37248:
~ PTP: mask out PCP and DEI fields in VLAN matching
### v3.3.0.6262 -- Update release
Issue 31533:
~ Fix sync of RX DMA buffer when it is not the last in the page (non issue on x86 servers)
Issue 31533:
~ Fix efx_rx_buf_offset() in the presence of swiotlb (used on 32bit systems with >3Gb RAM)
Issue 33851:
~ Fix very rare data corruption - use TX push only with a single descriptor
Issue
~ AOE: Expose FC partition for use by sfupdate
Issue 33711:
~ PTP: Fix for MC statistics.
Issue 33719:
~ PTP: Check that PTP is enabled in the kernel before compiling PHC support
Issue 34355:
~ PTP: Guard against using PPS ioctl API on non-PTP adapters
Issue 34356:
~ PTP: Improve accuracy of PPS timestamps
Issue 34482:
~ PTP: Fix to SO_TIMESTAMPING system timestamps (in conversion of hardware
timestamps)
### v3.3.0.6246 -- Update release
Support for Enhanced PTP daemon, including:
~ Support for VLAN tagged PTP packets
~ Configurable receive filtering for VLANs, PTP Domain number and UUID
~ Timestamping of multicast PTP packets on PTP Primary and Peer Delay
Multicast addresses
~ Timestamping of unicast PTP packets sent directly to host
~ Separate interfaces to apply a clock offset and adjust the clock frequency
~ IOCTL interface to facilitate synchronization to an external PPS signal
~ Support for recent kernels that include the PHC API
Early support for AOE SFA6902F boards
General improvements / fixes:
~ Various kernel compatibility fixes up to linux 3.7
Issue 21056:
~ Dropped packet stat ("rx_nodesc_drop_cnt" in ethtool -S) no longer counts drops
until interface is fully up
Issue 32292:
~ Fix potential kernel warning from efx_hard_start_xmit when changing MTUs
(lock TX queues before calling netif_device_detach())
### v3.3.0.6222B -- Feature release
General improvements / fixes:
~ Support for byte queue limits (requires Linux 3.3)
~ Do not fail probe when NVRAM MAC address is invalid
~ Fix races between net device operations, online reset, power
management and hotplug
~ Keep NICs quiescent after they have been disabled
~ Improve log messages in case we abort probe due to a pending reset
~ Correct the reported priorities of different filter types
~ Fix spurious array bounds error in efx_filter_redirect_id()
~ Fix PTP synchronisation on big-endian architectures
Issue 21781 / 24969:
~ Reduce TX latency by using copy buffers for short fragmented packets
This adds the "tx_copybreak" module parameter which sets the size of a TX
copy buffer. The size must be a power of 2 between 128 and 4096
(default 128)
Issue 24887:
~ Implement VLAN tag insertion for SFC9000 family
Issue 31308:
~ Enable VLAN SG and TSO offloads for SFC9000 family on RHEL 5.5+
Issue 20784:
~ Add hardware monitor for sensors managed by firmware
Issue 23165:
~ Implement the VF spoofchk (TX filtering) attribute (requires Linux 3.2)
Issue 30065:
~ Fix compilation issues with 3.4 kernels
Issue 31530:
~ Fix reporting of IPv4 full filters through ethtool/sfctool
Issues 31576 / 22910:
~ Really disable flow control while flushing
Issue 31671:
~ Work-around flush timeout when flushes have completed
### v3.2.1.6110 -- Update release
Issue 30436:
~ Remove duplicate calls to suspend and resume driverlink during self test reset
Issue 31308:
~ Fix reduced performance under some older RHEL versions with VLANs
Issue 31045:
~ Add RHEL4.8 support
Issue 31092:
~ Fix incorrect usage line in sfctool --help output
### v3.2.1.6099 -- Update release
Issue 30312:
~ Latency reduction: Use 128bit write for TX descriptor push
Issue 28547:
~ Enhancement: Expose SFP+ module vendor information via ethtool
Issue 30286 / CVE-2012-3412:
~ DoS protection - prevent extreme TSO parameters from stalling TX queues
Issue 30845:
~ Self-test: disable VFs and never set RX_DESCQ_EN for safety
Issue 26646 / 22607:
~ Fix possibility of some statistics counters being non-contiguous
Issue 30038:
~ Build fix for kernel 3.4-rc5
Issue 30762:
~ Fix kernel-compat test for PCI VPD in sysfs
### v3.2.1.6090 -- Update release
Issue 28324:
~ Fix recovery path from memory parity hardware errors
~ Add module option "efx_disable_port_on_mpe" to top recovery and disable
interface (to allow bonding to fail over on such errors)
Issue 29760:
~ Report serial number of adapter on memory parity hardware error
Issue 25050:
~ Limit number of retries on RX queue flush hardware failures
Issue:
~ Fix missing cleanup in failure path of efx_pci_probe()
Issue 29758:
~ Reporting of MC scheduler message downgraded
Issue 26972:
~ Fix start of day NAPI race < 2.6.24
Issue 23581:
~ Display warning of fail to create MTD partition
Issue 28008:
~ Timer quantum is incorrect for Falcon user-mode queues
Issue 20567:
~ Fix kernel panic with efx_mcdi_phy_remove on failure path to probe port
Issue 27481
~ Fix possible race when stopping TX queues
Issue 28139:
~ Self test can fail on machines that disable interrupts for > 10ms
Issue 28767:
~ Build fix for kernel 3.3
Issue 28406:
~ SR-IOV: Fix race condition involving rtnetlink and pci_enable_sriov
Issue 27202:
~ SR-IOV: Fix initialisation and teardown race
Issue 28110:
~ SR-IOV: Correctly set TX MAC filter search limits
Issue 27924:
~ SR-IOV: Pass timer quantum over VFDI for SFN6122F support
Issue 28404:
~ SR-IOV: RSS only works on VF if also enabled on PF
Issue 28528:
~ SR-IOV: Correct validation of allocation size in peer_page_count
Issue 27838:
~ Implement EFX_FILTER_FLAG_RX_OVERRIDE_IP for 'default' filters
Issue 27571:
~ RX n-tuple interface now deprecated, replaced by RX NFC
(users that are configuring RX n-tuple filters with sfctool must also
update sfutils to version 3.2.1.6079 or later)
Issue 27514:
~ Allow RX hash insertion to be disabled
Issue 26944:
~ Self test on driver load removed from Onload build of driver
Issue 22798:
~ Set IRQ affinity_hint where supported
Issue 28546:
~ Display adapter part number (from VPD) in syslog
Issue 28086:
~ Display turbo mode in sysfs
Issue 29546:
~ Refill RX rings as soon as space for a batch (reducing latency jitter)
~ Fill RX rings completely full, rather than to 95% full
### v3.2.0.6044 -- Update release
Issue T2716:
~ Build fix for sfc_minimal=1
Issue 27569:
~ Build fix for gcc 4.6
Issue 27486:
~ Build fix for RHEL5.7 2.6.18-274.12.1.el5
Issue 27466
~ Build fix for Linux 3.3
Issue 27470:
~ Fix ethtool -x support
Issue
~ SR-IOV: Explicitly keep track of which channel is used for VFDI
### v3.2.0.6040
Support for the SFN5322F SFP+ Precision Time Synchronization Server Adapter
Support for the Solarflare SFN6122F Dual Port SFP+ Server Adapter
Issue 19619:
~ Remove TX completions from adaptive IRQ scoring
Issue 27202:
~ SR-IOV Prevent VFDI and netlink VF ops racing with init/fini of VF state
Issue 27001:
~ Don't run on-load self-tests on RT kernels
Issue 26985:
~ Work around compiler bug causing incorrect checksums
### v3.1.0.4091 -- Update release
Issue 26616:
~ Fix possible self-test failure on driver load - remove dependence on NAPI polling
Issue 26697:
~ Fix logging in debug driver on Linux 2.6.34+
Issue 26408
~ Build fixes for Linux 3.1
Issue 26406
~ Redhat 6.2 build fix - EFX_HAVE_NTUPLE_SUPPORT compat test
Issue 24109
~ Make all MAC statistics consistently 64 bits wide
Issue
~ SR-IOV: correct warning on error from efx_mcdi_rpc(MC_CMD_FLUSH_RX_QUEUES)
Issue 26841
~ SR-IOV: Use full memory barriers at entry and exit of efx_sriov_memcpy()
Issue 26436:
~ SR-IOV: Correct validation of VI indices within VF
Issue 26437:
~ SR-IOV: Report unsupported VFDI operations specifically and quietly
### v3.1.0.4083 -- Update release
Issue
~ Fix assertion failure when using SFC4000 with internal SRAM
Issue 25985
~ Export rss_spread through driverlink
Issue 26000
~ Build fixes for Linux 3.1
Issue 6531
~ Use correct fields of struct ethtool_coalesce
Issue 24380
~ Correct reporting and validation of TX interrupt moderation
Issue 24380
~ Correct error code for unsupported interrupt moderation parameters
Issue 25815
~ Change rss_cpus default to "cores"
Issue
~ Fix kernel compat condition for EFX_HAVE_ETHTOOL_RESET
Issue 25542
~ Fix build failure on Linux 2.6.25
Issue 25542
~ Avoid build errors with some gcc versions
Issue 25420
~ Export efx_filter_set_{uc,mc}_def()
Issue 25414
~ Fix statistics lock handling
Issue 23143
~ Revert use of write-combining - unsafe on some platforms
Issue 23128
~ Update driverlink API version to 5
Issue 23177
~ Check for irregular filter tables in efx_restore_filters()
Issue 23128
~ Add support for RX unicast/multicast default filters
Issue 22885
~ Flush software RX pipeline when stopping datapath
Issue 24612
~ Install sfc_tune.ko under 'extra' subdirectory
Issue
~ Make LRO module parameter read-only
Issue 19703
~ Reduce number of workqueues used
Issue
~ Make reset_nic try ETHTOOL_RESET before private ioctl
Issue
~ Cleanup Company/adapter names
Issue
~ Use napi_gro_(receive_frags)_gr() on RHEL6.1
Issue
~ Fix MAC statistics on big endian platforms
Issue
~ Add EFX_USE_GRO build time parameter
Issue 25756
~ SR-IOV: Don't reset the PF if a VM causes a descriptor fetch error
Issue 25486
~ SR-IOV: Add SCATTER_EN support to VFDI_INIT_RXQ
Issue 24004
~ SR-IOV: Change the vf_limit that rtnetlink exports to 32
Issue 25091
~ SR-IOV: Only broadcast the peer list when it changes
Issue 21004