forked from majek/openonload
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReleaseNotes-sfc
2219 lines (1887 loc) · 88.2 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.13.1.1034
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 Server Adapters:
- Solarflare X2522 Dual Port SFP28 10/25G Adapter
- Solarflare SFN8522M Dual Port SFP+ Server Adapter
- Solarflare SFN8042 Dual Port QSFP+ Server Adapter
- Solarflare SFN8522 Dual Port SFP+ Server Adapter
- Solarflare SFN8542 Dual Port QSFP+ Server Adapter
- Solarflare SFN8722 Dual Port SFP+ OCP Server Adapter
- Solarflare SFN7002F Dual Port SFP+ Server Adapter
- Solarflare SFN7004F Quad Port SFP+ Server Adapter
- Solarflare SFN7042Q Dual Port QSFP+ Server Adapter
- Solarflare SFN7122F Dual Port SFP+ Server Adapter
- Solarflare SFN7124F Quad 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
- HP Ethernet 10Gb 572SFP+ Adapter
- Lenovo SFN7122F 2x10GbE SFP+ 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.13.1.1034
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 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
--------------------------------------------------
This driver package is supported on:
- RedHat Enterprise Linux 6.7, 6.8, 6.9
- RedHat Enterprise Linux 7.3, 7.4, 7.5
- RedHat Enterprise Linux for Realtime 7.3, 7.4
- SuSE Linux Enterprise Server 11 sp4
- SuSE Linux Enterprise RealTime Extension 11 sp4
- SuSE Linux Enterprise Server 12 sp3
- Canonical Ubuntu Server LTS 14.04.5, 16.04.x
- Debian 8 "Jessie" 8.10
- Debian 9 "Stretch" 9.4
- Kernel.org linux kernels 3.0 to 4.16-rc1
Solarflare aims to support the current and previous major release of each
supported distribution at the time this driver was released (plus, possibly,
the latest long term support release if this is neither the current nor
previous major release). Support includes all minor updates/releases/service
packs of the above major releases, for which the distributor has not yet
declared end of life/support.
Support
-------
Please contact your local Solarflare support representative or email
Deprecation warnings
--------------------
The following features are being deprecated and may not be available in future releases
of the Solarflare linux net driver. Please check the release notes to see whether these
features have been removed.
Use of these features will currently only cause a warning message to be printed to the
kernel console.
Note that nothing has currently been changed and the full functionality remains in
this release.
SARFS:
~ This is a feature similar to the kernel feature ARFS (Accelerated Receive Flow
Steering) but implemented purely within the sfc.ko driver. All kernels that this
driver supports are new enough to support ARFS. Information on using in-kernel ARFS
is at https://www.kernel.org/doc/Documentation/networking/scaling.txt or please
consult the Solarflare Server Adapter User's Guide [SF-103837-CD] available at
https://support.solarflare.com
SXPS:
~ This is a feature similar to the kernel feature XPS (Transmit Packet Steering) but
implemented purely within the sfc.ko driver. All kernels that this driver supports
are new enough to support XPS. Information on using in-kernel XPS is at
https://www.kernel.org/doc/Documentation/networking/scaling.txt or please consult
the Solarflare Server Adapter User's Guide [SF-103837-CD] available at
https://support.solarflare.com
Proxy MCDI authorization:
~ This feature had been used in a proof-of-concept to allow a userland utility to vet
and control requests to subscribe to a multicast group from an unprivileged
function (e.g. a VF in a VM).
Driverlink RX packet callback:
~ This was used for inspecting/permitting all RX packets via a driverlink callback.
Changelog
---------
### v4.13.1.1034 -- X2 GA release
[General changes]
~ Kernel compat fixes to support linux 4.15
[timespec_add_ns(), setup_timer(), mtd_erase_callback(), TICK_USEC ]
~ Support RSS spreading of ethtool ntuple filters and add this to driverlink APIs.
To configure this requires upstreamed ethtool changes or a copy of sfctool2 from the
sfutils package.
~ Remove "ctpio_dmabuf_start" that was erroneously included in ethtool stats.
~ Expose flash partitions with default settings via MTD. These are now used by sfboot.
~ Replace asynchronous filter operations (e.g. ARFS) to ensure all filter table
functions are called in a sleepable context.
[Deprecation warnings]
~ Warnings will be printed if the following features of the driver are used:
SARFS, SXPS, driverlink RX packet callback, proxy MCDI authorization.
~ Please see the section on deprecated features elsewhere in this release note.
Issue 79102:
~ Filter locking improvements.
~ This had been seen to cause a command such as "ip link set enp4s0f0 vf 0 vlan 100"
to cause hung task timeouts with "efx_ef10_filter_insert+0x94/0x900" in the stack.
Issue 78429:
~ Avoid using RSS files with "capture-packed-stream" firmware variant.
The error seen would be "efx_ef10_filter_insert failed rc=-95".
SF-119883-KI / Issue 78299:
~ Fix for kernel panic or NMI. The backtrace will include "efx_mcdi_rpc_completer"
and a "__wake_up" function.
Issue 77962:
~ Handle delayed release of MTD memory by reference counting partition info memory.
~ This could cause a kernel WARNING and backtrace at:
drivers/mtd/mtdcore.c:508 add_mtd_device+0x246/0x350 [mtd]
Issue 77898:
~ Clean up channel->tx_queues when retrying after VI shortage.
~ This was only seen with 16PFs (sfboot pf-count=16) and resulted in the error
"failed to initialise TXQ 8"
Issue 77378:
~ Avoid "Unable to set UDP tunnel ports" when using L3xUDP firmware variant.
### v4.13.1.1021 -- X2 pre-production release
[General changes]
~ Initial support for Solarflare X2 adapter series. This has not completed
testing and qualification at Solarflare and hence should not be used in a
production environment.
~ Kernel compatibility for upstream 4.16-rc1.
~ Kernel compatibility for RHEL 7.5.
~ Improve error handling when removing an MTD partition fails. This can lead to
repeated messages of the form "Removing MTD device #0 with use count 1".
~ Fix build error with gcc version 7.2.1.
~ Expose the PHC clock for 1 VF per VM.
~ Increase the number of multicast filters to 512.
~ Disabled SKB cache on recent kernels due to netdev_alloc_skb improvements
making it redundant.
~ Check if MCDI event pending, when MCDI times out.
~ Expose FEC statistics on X2 adapters.
~ Add support for 25/50/100G supported/advertised speeds.
~ expose CTPIO stats on NICs on X2 adapters.
~ Add control of forward_fcs through ethtool feature flags.
~ support X2 VI strides other than 8k.
SF-119883-KI / Issue 78131:
~ Address a potential kernel panic where the backtrace will include
"efx_mcdi_rpc_completer".
~ This affected systems running sfc v4.12 prior to v4.12.2.1013.
Issue 78042:
~ Don't restore filters marked BUSY in efx_ef10_filter_table_restore().
~ This could lead to the following errors, but only after the rare event that
the MC resets:
MC command 0x8a inlen 108 failed rc=-22 (raw=0) arg=0
Issue 76297:
~ Add 'immediate send' feature to async MCDI and use it to ensure that PTP
time sync commands are sent in the same thread as the process_times logic
is done in.
[Stratus ftServer support] - Note these issues only affect PCI hot-plug cases
Issue 76858:
~ Fix kernel crash in show_max_adjfreq+0x20/0x40.
### v4.12.2.1006 -- update release for OpenOnload-201710
[General changes]
~ GCC 7.2 introduces additional warnings related to potential string
truncation. The warnings generated by the drivers are not causes for concern,
since the actual possible numerical range is small; however, the format
string checking isn't aware of the actual numerical range. Format strings
have been updated and types changed to prevent warnings.
~ Kernel compatibility for upstream 4.14, 4.15-rc6.
Issue 74885:
~ A race condition in the MCDI (driver<=>adapter communication) state machine
could result in cleanup code being run twice, resulting in various errors
with efx_mcdi_process_cleanup_list in the call stack.
Issue 75614:
~ During a link flap caused by a switch the driver would log link up/down
messages at an excessive rate. These messages are now rate limited.
SF-119179-KI / Issue 75087:
~ Interrupts were wrongly named "<interface>-xdp" instead of "<interface>-tx"
when using separate_tx_channels mode.
Issue 73384:
~ Adapter license checks must be completed before the driver attempts to read
any capability flags.
### v4.12.1.1021 -- GA release (SF17.2)
SF-119052-KI / Issue 74628:
~ Fix "rx event arrived on queue xx labeled as queue yy" that could disable
the interface.
~ This could only occur with:
* >32 RXQs in-use (i.e. >32 logical CPUs or rss_cpus module parameter set).
* sfboot msix-limit of 64 or above (a non-default configuration).
* SFC net driver v4.12.1.1016 (i.e. OpenOnload-201710).
Issue 74078:
~ Remove warning when expiring an ARFS filter that has been replaced with a
higher priority filter (such as an ethtool ntuple filter).
### v4.12.1.1016 -- release with OpenOnload-201710
[General changes]
~ Rework of MCDI (driver<=>adapter communication) state machine (to better
support long running background operations on the adapter).
~ Increase maximum number of channels (as determined by the rss_cpus module
parameter) from 32 to 64. This allows more RX and TX queues which is useful
on systems with large numbers of cores. Note that most NICs will have a
default MSI-X interrupt count limit of 32. This can be increased using
"sfboot msix-limit=<n>".
~ Support configuring a 2-tuple RSS hash for UDP. This ensures that a UDP flow
always hashes to the same CPU regardless of how many IP fragments the UDP
packet spans,
To configure a 2-uple of IP source and destination address:
# ethtool -N <interface> rx-flow-hash udp4 sd
To confirm which fields are used for the RSS hash:
# ethtool -n <interface> rx-flow-hash udp4
To use the The default is a 4-way hash:
# ethtool -N <interface> rx-flow-hash udp4 sdfn
[PTP changes]
~ Increase the frequency adjustment range supported by the net driver to +-10%
and create mechanism for sfptpd to detect this.
[XDP preview]
~ This release includes experimental driver support for XDP (Express Data
Path). XDP is a kernel feature that allows eBPF programs to be run on
incoming packets before they are passed to the rest of the network stack.
The program can modify the packet and instruct the driver to:
- accept the packet
- drop the packet
- transmit the packet on the same interface
- transmit the packet on a different interface
~ Support for the various features depends on different upstream kernel
versions. Please check XDP support is available in your kernel:
- Support for drop and TX appeared in linux v4.8.
- Support for redirect is appearing in linux v4.14.
~ For XDP transmit, additional transmit queues are used by the driver. To
avoid increasing the resource utilization in general use, this is NOT
enabled by default. To enable allocation of the necessary resources, the
module parameter "xdp_alloc_tx_resources=1" should be specified when
loading the driver. The intention is for a future release of this driver
to allow such resources to be allocated dynamically, avoiding the need
for this load time configuration; as such, it is likely that this module
parameter will be removed in a future release.
Issue 73931:
~ Check structure pointer is valid before use in debugfs.
~ This was seen to cause a NULL pointer dereference in debugfs access only if
certain parts of driver initialization had failed. There is no issue if the
driver successfully creates a network interface.
Issue 73700:
~ Candidate fix for "kernel BUG at lib/dynamic_queue_limits.c:26!" by adding
memory barriers to address race between netdev_tx_sent and
netdev_tx_completed.
Issue 73384:
~ [SFN8000 series] No licenses available if the sfc driver loaded immediately
after firmware restart.
~ This could only be triggered with "ethtool -t enp1s0f0; onload_tool reload"
Issue 73143:
~ Fixed reading of ef10 data on non-ef10 NIC (i.e. SFN5000 or SFN6000 series)
~ This was detected using KASAN by Stefano Brivio at Redhat:
BUG: KASAN: slab-out-of-bounds in efx_mcdi_mac_stats
Issue 73104:
~ Only report link down if it was previously up.
~ This can occur as the adapter firmware may report changes to PCS states
while the overall link state is still down.
Issue 73085:
~ [PTP] Erroneous PTP offset sometimes reported on multi CPU-package machines,
believed to be caused by QPI routing.
~ Improve sample selection by using the one which is closest to the average
of good samples.
Issue 72543:
~ [onload] Increase event queue 0 allowance for driverlink events. This had
been seen to lead to the following errors on TX queue 0:
MCDI request was completed without an event
TX queue 0 spurious TX completion id 1480
Issue 72328:
~ Fix possible overflow of unicast address list. e.g. by configuration of a
32nd macvlan interface all on the same network interface. The error was of
the form:
WARNING: at driver/linux_net/ef10.c:7032 efx_ef10_filter_insert_addr_list+0x4d2/0x510 [sfc]()
Issue 72220:
~ [32bit PHC support]. Fix bug in efx_phc_gettime32() that returns junk time.
~ This only affects systems without 64bit PHC support e.g. some SLES11
(kernel 3.0.101)
Issue 71931:
~ Correct endianness of filters debugfs output.
Issue 70902:
~ [SFN5000 and SFN6000 series] Fix panic in efx_ethtool_get_regs() from
"ethtool -d".
Issue 68849:
~ Fix "hwmon_device_register() is deprecated" warning seen in Ubuntu 17.04
Issue 68040:
~ [PTP + SFN8000 series] Report correct TX timestamp corrections for
(a) normal data path used for PTP transmit.
(b) general TX timestamps from the MAC.
Issue 67150:
~ Reduce race condition waiting for ethtool -t offline self-test to complete.
Issue 66860:
~ Correct VF handling when "ethtool -t offline" self-test is run on any
privileged PF.
Issue 63057:
~ [SFN8000 series] fallback to default speeds if none advertised.
~ There can be an issue getting a link on SFN8000 series adapters after a
RHEL 6.8/7.3 in-box driver has been loaded first.
Issue 62723:
~ Remove PCIe FLR after "Failed to acquire MCDI state" as this does not seem
to improve driver robustness.
Issue 58792:
~ Fix WARNINGs on driver unload for (debug) kernels with the option
DEBUG_KOBJECT_RELEASE enabled.
Issue 56902:
~ Ensure filter is removed during an MC reboot (e.g. sfupdate) when onload is
being used. This has been seen to cause the following errors:
[onload] tcp_helper_endpoint_clear_filters: [0:28]
sfc 0000:01:00.0 enp1s0f0: MC command 0x8a inlen 108 failed rc=-22 (raw=0)
and
[onload] __oof_manager_addr_del: 0:79 CLEAR TCP 172.16.132.67:35769
sfc 0000:01:00.0 enp1s0f0: MC command 0x8a inlen 108 failed rc=-22 (raw=0)
Issue 48050:
~ Handle adapter VPD data residing at offsets greater than 512bytes in PCI
config space.
~ This resulted in the message "Unable to read VPD"
[Stratus ftServer support] - Note these issues only affect PCI hot-plug cases
Issue 68343:
~ Fix deadlock between efx_channel_reassign_irq and efx_irq_notify.
~ Could also be hit when running "ethtool -C" and "ethtool -G" in a loop.
### v4.10.7.1004 -- Update release for EOL5
Issue 75470:
~ Error handling in the transmit path in efx_dequeue_buffers could cause a
null pointer dereference. This error handling has not been hit in any known
production environment.
Issue 73143:
~ Fixed reading of ef10 data on non-ef10 NIC (i.e. SFN5000 or SFN6000 series)
~ This was detected using KASAN by Stefano Brivio at Redhat:
BUG: KASAN: slab-out-of-bounds in efx_mcdi_mac_stats
Issue 72328:
~ Fix possible overflow of unicast address list. e.g. by configuration of a
32nd macvlan interface all on the same network interface. The error was of
the form:
WARNING: at driver/linux_net/ef10.c:7032 efx_ef10_filter_insert_addr_list+0x4d2/0x510 [sfc]()
### v4.10.7.1001 -- Update release for EOL5
Issue 51996:
~ Kernel compatibility fix for early RHEL 6.x releases. WQ_MEM_RECLAIM was
not defined.
### v4.10.7.1000 -- Update release to match EO5 release
[General changes]
~ Kernel compatibility for RHEL 7.4
~ Change to newer API to avoid the following deprecation warning:
hwmon_device_register() is deprecated.
Please convert the driver to use hwmon_device_register_with_info().
~ Expose the sfc_pps work queue in sysfs so that CPU affinity can be
controlled.
### v4.10.6.1002 -- Update release (SF17.1)
[General changes]:
~ Kernel compatibility extended to Linux 4.11.
~ Adjust to core networking busy polling support available in Linux 4.11.
[XDP preview]
~ Preview of RX side XDP support.
~ This allows for RX filtering to use the DROP target and for RX packet
modification (e.g. decapsulation).
~ Additionally header expansion is supported (e.g. encapsulation).
Issue 69569:
~ Fix timestamp being 1s behind if the minor nanosecond timestamp happened to
be exactly on 0.
### v4.10.4.1005 -- GA release to match openonload-201606-u1.2
[General changes]
~ Kernel compatability extended to Linux 4.10.
Issue 68158:
~ Fix driver build without PTP support.
Issue 67994:
~ Fix for pps_get_ts() only returning microsecond resolution with RHEL 7.2.
~ (Note this did not affect other RHEL 7.X releases).
~ This would affect the PTP convergence accuracy that is achieved.
### v4.10.4.1000 -- GA release for ESXi adding support for SFN8542 adapters.
[General VMware ESXi 5.5, 6.0 and 6.5 support]
~ GA support for ESXi and SFN8542 Solarflare adapters.
~ Support VXLAN acceleration for ESXi.
### v4.10.0.1025 -- GA release for overlays support on SFN8XXX adapters.
[General changes]
~ Improve error message when a TX queue times out to give more information.
Issue 66936:
~ Ensure the packet prefix is available to timestamping.
~ Without this patch invalid memory accesses to addresses ending 0xfb
will be seen in __efx_rx_skb_attach_timestamp() if GRO or LRO is being used.
Issue 66058:
~ Clear napi_hash related state when copying channels.
~ This is only seen on driver unload when >256 NAPI channels are being used
(across all adapters on the server; partly determined by the sfc module
parameter "rss_cpus").
~ This has been seen to cause:
- general protection fault in efx_stop_all+0x38a/0x5a0.
- kernel NULL pointer dereference in napi_hash_add+0x59/0xc0.
[Stratus ftServer support] - Note these issues only affect PCI hot-plug cases:
Issue 67007:
~ Fix race between efx_pci_remove_main() and efx_irq_notify().
Issue 61922:
~ Hold RTNL while we modify the CPU channel map.
### v4.10.0.1011 -- Intermediate release as part of openonload-201606-u1
[General changes]
~ GA release of acceleration for overlay networks, VxLAN / NV-GRE / GENEVE
(previously beta)
~ Check MTU against minimum threshold.
~ Better detection of BIOS/kernel failing to provide addresses for PCI BARs.
Issue 66869 (ESX only):
~ Fix a race in the admin side of MCDI proxy authorization.
~ The error message reported would be of the form:
efx_proxy_auth_handle_request: invalid req state 5
Issue 65427:
~ Correctly report UDP RSS hashing mode as 2-tuple (address only) or 4-tuple
(address and port) with "ethtool -n <intf> rx-flow-hash udp4"
Issue 65511:
~ Avoid kernel warning from efx_ef10_ev_process() when the sfc.ko module
parameter forward_fcs=1, as CRCs should be ignored in this case.
Issue 65013:
~ An interaction with the kernel stack can lead to no traffic being transmitted
if a very small (less than 68) MTU is set. The driver will now reject such
configurations as invalid.
Issue 64919:
~ Fix crash seen in efx_pci_probe_main() when sf-boot pf-count was altered and
the driver was reloaded.
Issue 64574/65176 (SFN8XXX only):
~ Packets with transmit timestamps with the xmit_more flag (set by the kernel
queuing discipline) could be delayed before transmission, causing missing
packet reports from PTP daemons. In unusual cases this could lead to
TX watchdog timeouts.
~ The sfptpd error message reported would be of the form:
sfptpd: retrieved transmit timestamp but no packet
kernel: sfc 0000:82:00.1 sfc1: TX queue 4 spurious TX completion id 1a
### v4.9.0.1016 -- GA release adding support for SFN8542 adapters.
Please note that network interface names may change across this driver update.
See issue 64065 below.
Support for stateless checksum offloads for NVGRE,VXLAN,GENEVE encapsulation on
SFN8XXX adapters is still considered a BETA at this time.
[General changes]
~ Fail gracefully when PCIe BARs are unassigned (better detection of BIOS
issues which have been seen after a PCI bus rescan).
~ Add support for software TX timestamping.
[SFN8000 series support]
~ Add support for "ethtool -C stats-block-usecs".
Default is 1 sec, but this can be reduced in order to accurately sample every
second from a script.
[overlays support]
~ Add encap TNI to debugfs filter dump.
~ Set UDP tunnel port list (for GENEVE and VxLAN) on driver load. This may
cause the microcontroller on the adapter to reboot in order to reprogram
some elements in the adapter datapath.
Issue 64478:
~ In firmware-variant=low-latency if there are more than 256 multicast filter
subscriptions then use multicast promiscuous.
Issue 64065:
~ Stop setting dev_port and instead implement get_phys_port_id for PFs. This
makes network interface names assigned by systemd more consistent with other
network drivers e.g. enp130s0f1d1 becomes enp130s0f1.
Issue 64013:
~ Correct a kernel WARNING in skb_checksum_help() when using TSO over a VLAN
over a bond. The error message seen would be:
WARNING: at net/core/dev.c:1907 skb_warn_bad_offload+0xc2/0xf0()
This issue was introduced between v4.7.0.1035 and .1036.
Issue 63865:
~ Fix checking of PTP license when interface is taken down and then up. This
would affect MCFW <v6 on SFN7XXX when running sfptpd or ptp4l. The error
message seen would be:
warning: received Sync with no timestamp
Issue 63820:
~ Improve clean up after "ethtool -t" self-test failure.
Issue 63587:
~ Fix crash seen with EnterpriseOnload v4 at driver/linux_net/ef10.c:4484
in efx_ef10_filter_get_unsafe_id(). This was found in an internal test case
that exhausted hardware filters and is believed to be highly unlikely in a
customer deployment.
Issue 63467:
~ Limit TX ring to 2048 descriptors for SFN7XXX and SFN8XXX adapters.
Previously it was possible to get a WARNING from efx_ef10_tx_init() by using:
ethtool -G <interface name> tx 4096
Issue 63389:
~ Prevent allocating a PTP interrupt in some cases where it is not required.
Issue 62350:
~ Only claim checksum offload for encapsulation types that SFN8XXX hardware
can handle (GENEVE, VXLAN, NVGRE).
Issue 61338:
~ Fix for VFs being broken after sfupdate was run while onload stacks were
constructed.
The error message seen would be:
resetting (DATAPATH)
failed to restore vswitching rc=-71, VFs may not function
unable to restore all filters
### v4.8.4.1000 -- GA release for ESXi adding support for SFN8522 adapters.
[SFN8522 support]
~ GA support for ESXi and SFN8522 Solarflare adapters.
~ Please note that VXLAN acceleration for ESXi, including VXLAN IOVP
certification, will follow in a future driver update.
### v4.8.2.1004 -- GA release adding support for SFN8522 adapters.
[SFN8522 support]
~ GA support for SFN8522 Solarflare adapters, to match all features of the
SFN7XXX series including SR-IOV and NIC partitioning.
~ Support for more efficient TSO on SFN8XXX adapters.
~ Use a symmetric RSS hash by default.
This is most useful when sniffing both sides of a TCP conversation. This
ensures that all packets are directed to the same RX queue and all are
handled in-order.
~ Add "tso_version" and "csum_offload" to TX queue information in debugfs.
~ Attach hardware RX timestamps to SKBs in GRO and LRO code-paths.
~ Support IPv6 flow-steering in ethtool rxnfc API (still needs support in
ethtool)
~ Support encap-over-IPv6 in ethtool n-tuple API (still needs support in
ethtool)
~ Support for SKB xmit_more flags in compatible kernels.
~ Change to use the 4-tuple UDP RSS hashing, as the resulting hash value will
help improve GRO performance.
~ Read adadpter PCIe configuration to warn on PCIe lane width or speed not
being optimal for the adapter in use.
~ Use 4K PIO buffers on SFN8XXX adapters.
~ Adds a module parameter "performance_profile" to allow selection of
broad tuning options, allowing selection of low latency ('latency') or
high throughput ('throughput') profiles. The default is 'auto', in
which the profile is selected based off licensed options on the adapter.
At present this only changes the event queue initialization options on 8000
series adapters.
[BETA quality support for stateless checksum offloads for NVGRE,VXLAN,GENEVE
encapsulation on SFN8XXX adapters]
~ Support for checksum offloads in the presense of encapsulation/
overlay networks (tunnels) on SFN8XXX hardware. Outer frames of (NV)GRE /
VxLAN / GENEVE are supported. Linux native tunnels and OVS will utilise this
checksum offload.
~ Add support for encapsulated TSO for 8000 series adapters.
~ Add message when adapter resets due to VXLAN port list change.
~ Add debugfs entry "vxlan_ports" to print the list of VXLAN ports.
[onload]
Issue 62104:
~ More conservatively account for the number of wakeup events that the driver
might have to handle, one for each possible onload stack. This prevents
event queue overflows in rare cases.
[EF-VI support]
~ Do not treat a broadcast filter as exclusive in filter logic.
This prevented ef_vi from installing >1 UDP filter with the local IP set
to broadcast.
[Stratus ftServer support]
Issue 57944:
~ Take a read lock on the filter table when performing driverlink (onload/EFVI)
operations on filters; as there was a possible NULL pointer dereference if
there was a race with PCIe hot-plug.
[General fixes]
Issue 62086:
~ On MC reset (e.g. running sfupdate or ethtool -t offline tests), clear PIO
buffer linkage in TXQs. Otherwise, if we fail to allocate new PIO buffers,
TXQs will try to use the old deallocated PIO buffers and this will cause an
error.
Issue 58215:
~ Remove suprious WARNING from efx_hard_start_xmit() seen after "ethtool -t"
off-line self-tests. Use of "ethtool -t" can be identified from
"MC entered BIST mode" in the kernel log.
Issue 57217:
~ Fix taking the network interface into promiscuous (or allmulti) mode when
running with low-latency firmware variant.
i.e "sfboot firmware-variant=ultra-low-latency".
The error message seen would be:
Unicast mismatch filter insert failed rc=-93
Multicast mismatch filter insert failed rc=-93
Issue 41741:
~ Implement shutdown() driver entry point. This helps quiesce the Solarflare
adapter when using kexec to transition to a new kernel. This issue was seen
on IBM POWER machines that raised EEH errors during the kexec.
Issue 33781:
~ "ethtool -S" statistic "port_rx_bad_bytes" was not being correctly reset in
all cases.
### v4.7.1.1000 -- Update release
[General changes]
~ Build fixes for linux 4.5 kernels.
~ Provide an option to place external network port PHY into power down when the
network interface is administratively down. This means the link partner also
sees link down. Currently this is controlled via an ethtool private flag:
- To enable/disable:
ethtool --set-priv-flags DEVNAME phy-power-follows-link (on|off)
- To show current state:
ethtool --show-priv-flags DEVNAME
~ support IPv6 flow steering (needs ethtool support that is not yet released).
Issue 53130
~ Create MTD partitions (to allow sfupdate) even if NVRAM metadata cannot
be successfully read.
[Stratus ftServer support]
Issue 60796:
~ Fix efx_mcdi_acquire_sync() returning -ETIMEDOUT on impolite unplug.
### v4.7.0.1049 -- Update release for EOL 4
Issue 65013:
~ Upstream kernel 4.10 centralised checking of minimum and maximum MTU values.
In kernels without this checking the kernel doesn't handle small MTUs
correctly, so we introduce a check for overly small MTU - the new minimum is
68 bytes.
### v4.7.0.1048 -- Update release for EOL 4
Issue 72220:
~ [32bit PHC support]. Fix bug in efx_phc_gettime32() that returns junk time.
~ This only affects systems without 64bit PHC support e.g. some SLES11
(kernel 3.0.101)
Issue 73143:
~ Fixed reading of ef10 data on non-ef10 NIC (i.e. SFN5000 or SFN6000 series)
~ This was detected using KASAN by Stefano Brivio at Redhat:
BUG: KASAN: slab-out-of-bounds in efx_mcdi_mac_stats
Issue 72328:
~ Fix possible overflow of unicast address list. e.g. by configuration of a
32nd macvlan interface all on the same network interface. The error was of
the form:
WARNING: at driver/linux_net/ef10.c:7032 efx_ef10_filter_insert_addr_list+0x4d2/0x510 [sfc]()
### v4.7.0.1046 -- Update release for EOL 3
Please note that network interface names may change across this driver update.
See issue 64065 below.
[General changes]
~ Build fixes for linux 4.10 kernels.
~ Build fixes for RHEL 7.4 kernels.
~ Provide an option to place external network port PHY into power down when the
network interface is administratively down. This means the link partner also
sees link down. Currently this is controlled via an ethtool private flag:
- To enable/disable:
ethtool --set-priv-flags DEVNAME phy-power-follows-link (on|off)
- To show current state:
ethtool --show-priv-flags DEVNAME
[SFN8522 support]
~ Support IPv6 flow-steering in ethtool rxnfc API (still needs support in
ethtool)
~ Support encap-over-IPv6 in ethtool n-tuple API (still needs support in
ethtool)
Issue 69569:
~ Fix timestamp being 1s behind if the minor nanosecond timestamp happened to
be exactly on 0.
Issue 67994:
~ Fix for pps_get_ts() only returning microsecond resolution with RHEL 7.2.
~ (Note this did not affect other RHEL 7.X releases).
~ This would affect the PTP convergence accuracy that is achieved.
Issue 64065:
~ Stop setting dev_port and instead implement get_phys_port_id for PFs. This
makes network interface names assigned by systemd more consistent with other
network drivers e.g. enp130s0f1d1 becomes enp130s0f1.
### v4.7.0.1035 -- Update release
[General changes]
~ expose SFA7942Q flash partitions via MTD (to speed up sfupdate)
~ Include Stratus ftServer improvements from v4.5.1.1037
~ Use timespec64 if available for y2038 compatibility.
Issue 59734:
~ Fix detection of PHC so that /dev/ptp* is registered on SLES11/12
Issue 59701 & 58885:
~ Take the mac_lock in efx_ef10_sriov_set_vf_mac()
This fixes a kernel panic in efx_ef10_filter_vlan_sync_rx_mode() when
using SR-IOV direct pass-thru mode.
### v4.7.0.1031 -- Feature release
[General changes]
~ Support adapter firmware state dump via ethtool.
~ Set IRQ interrupt hints for 3.x kernels. The irqbalance service using
policy=strict will follow these hints.
~ NAPI budget now only applies to receive processing (previously TX completion
and other internal events were incorrectly counted towards the budget).
~ Use symmetric RSS hash key by default. This allows applications such as IDS
to ensure that both directions of a TCP stream will be spread via RSS to
the same channel.
~ Implement VLAN filtering. (only on full-featured adapter firmware variant)
[SR-IOV]
~ Implement sriov_set_vf_spoofchk() for SFN7XXX adapters.
[Performance]
~ Automatically configure XPS at driver load (on kernels where this is
supported).
~ Implement IRQ notifiers so that XPS can match any changes to interrupt
affinity.
~ Report TX completions to BQL after all TX events from an interrupt/NAPI poll.
This gives a significant improvement to UDP transaction rates using RHEL7 or
SLES12 kernels.
~ read EVQ in cache line batches.
~ allocate rx pages on the same node as the interrupt.
~ Improve performance when the driver is asked to add/strip VLAN tags for
linux kernels >=3.0.
[General VMware ESXi support]
Issue 43845:
~ Avoid installation of duplicate default unicast and multicast Rx filters.
Issue 57409:
~ Disable RSS by default ('num_rss_netqs' module parameter with value greater
than zero may be used to enable RSS on specified number of NetQueues).
[Support SR-IOV on VMware ESXi 5.5 and 6.0]
First release supporting SR-IOV on VMware ESXi (SFN7xxx adapters only).
This support requires sfutils >=v4.7.0.1004 which contains adapter firmware
v4.7.0.1019 and firmware-variant=full-feature (setup with sfboot).
See chapter "SR-IOV Virtualization Using ESXi" of the "Solarflare Server
Adapter User's Guide".
~ Support 'max_vfs' module parameter to request specified number of VFs
for each PF.
~ Enforce PF promiscuous mode if VFs are requested (required on ESXi 5.5 only
since ESXi 6.0 enforces this itself).
~ Support VF MAC address configuration; security settings of the port group
that the VM network interface belongs to should be used to control it.
~ Support VF default VLAN tagging done by the NIC.
~ Support VF anti-spoofing control configured as "allow/deny forged
transmits" in security settings of the port group the VM network interface
belongs to.
~ Support reading VF statistics from the hypervisor (for example,
esxcli network sriovnic vf stats -n vmnic2 -v 0).
~ Support MTU change requested on VF, if allowed by hypervisor. This is
configurable in VM network interface settings.
~ Support VF promiscuous mode, if allowed by hypervisor (ESXi 6.0 only).
~ Support VF VLAN membership control by hypervisor; only untagged traffic
is allowed by default.
Issue 51699:
~ Fix lockdep warning on driver unload.
Issue 56887:
~ Fix memory leak for EFX_MCDI_REQUEST private ioctl calls e.g. from sfupdate.
Issue 56934:
~ avoid rx copybreak on GRO tail packet to avoid potential reordering.
### v4.5.1.1038 -- Update release
[Stratus ftServer support]
Issue 59975:
~ Add workaround for loss of RX doorbell in a "breaker" test.
### v4.5.1.1037 -- Update release
[General changes]
~ Support for linux v4.3
~ Simplify locking when CONFIG_NET_RX_BUSY_POLL is enabled (~20ns latency win)
~ Make RSS hashing symmetric by default.
The key chosen has been shown to provide good spreading as well as being
symmetric. Symmetry is important for applications that sniff both
directions of TCP conversations (eg. IDS and other security apps).
~ Support for Solarflare SFA7942Q QSFP+ AOE Adapter (but please use
specific packages that are targeted at this adapter).
Issue 55559:
~ Cleanup IRQ affinity hints correctly in probe failure path which
caused this warning:
"WARNING: at kernel/irq/manage.c:1221 __free_irq+0x19a/0x1e0()"
Issue 56887:
~ Fix small memory leak on every EFX_MCDI_REQUEST private ioctl call.
Issue 56934:
~ Avoid rx copybreak on GRO tail packet.
~ If a fragmented TCP packet is being handled by GRO, rx copybreak should not
be used on any small tail fragment as this can result in packets being
delivered out of order. These small fragments could benefit from
reassembly in GRO if part of a stream of larger packets.
[OpenOnload support]
Issue 57548:
~ IPv4 broadcast address should not be treated as exclusive.
~ this allows ef_vi to install >1 UDP filters with a local broadcast IP.
[Stratus ftServer OpenOnload support]
~ Further work to strengthen driver robustness on surprise device
removal; especially when OpenOnload is being used.
Issue 53701:
~ Support changing MAC address with filters installed.
This is required for OpenOnload to add new slaves to a bond.
### v4.5.1.1026 -- Update release
[General changes]
~ Support for linux v4.2.
~ Make locking between NAPI and busy-polling less expensive.
[Stratus ftServer support]
~ Further work to remove warnings if device isolation and fail-over occurs.
~ Fix infinite loop in efx_pause_napi() on module unload if onload is being
used and a hardware fault causes the driver to enter a disabled state.
Issue 54445:
~ Address "NOHZ: local_softirq_pending 08" seen on sfc.ko module unload.
Issue 54748:
~ When sfc.ko module parameters rss_numa_local=1 and rss_cpus is
greater than the number of logical CPUs on a node, remove the false
limitation that onload could only use interrupts on the local NUMA node.
Issue 54840:
~ Fix efx_ef10_filter_is_exclusive() which did not identify the ethertype and
IP-protocol filters as exclusive.
Issue 55443:
~ Fix rare case where after several failed attempts to allocate memory (in
order to refill the RX descriptor ring) the driver did not continue to
retry. This causes the ethtool stat "rx_nodesc_drops" to increase.
Issue 56015:
~ Fix potential NULL pointer deference in efx_mcdi_mon_remove().
### v4.5.1.1020 -- Update release
Issue 50755:
~ Fix serious page reference counting issue relating to the RX recycle ring.
~ For full details please see the following known issue on the Solarflare
support site where you can also sign up for e-mail notifications
<https://support.solarflare.com/index.php?option=com_cognidox&file=SF-114768-KI-2_Serious_page_reference_counting_issue_in_Linux_network_driver.htm&Itemid=24&catid=3011&view=embed&id=3013>
Issue 53778:
~ Resolve deadlock when setting VF VLAN via "ip link" command.
Issue 54347:
~ Add legacy method for changing a PF's MAC address.