Any one know which Intel ix driver for x520 card is in the actual kernel?



  • Hello,

    Today I noticed that @kiokoman had just like me, PIMD issues early this year and that his conclusion was issue with "x520 ix driver".

    It happens to be that a lot of my vlans are also x520 based ....

    So I wonder which ix-driver version is actually in the pfSense kernel. Actual version on the intel site is "ix-3.3.14.tar.gz"

    Louis



  • @louis2

    for example, use this:

    dmesg | grep ixgbe

    and look for this:

    a55e2b23-aa3c-46cb-8234-ef9218550663-image.png

    of course you don't see "igb" ๐Ÿ˜‰

    BTW:
    not the version on the Intel site, which matters primarily important..........

    *rather, these

    https://www.freebsd.org/cgi/man.cgi?query=ixgbe&sektion=4&manpath=freebsd-release-ports
    https://forums.freebsd.org/threads/intel-x520-da2-or-x520-sr2.72173/
    https://man.openbsd.org/ix



  • Thanx,

    Strange ..... version info is missing !!!??? .......

    ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver> port 0xe020-0xe03f mem 0xdf780000-0xdf7fffff,0xdf804000-0xdf807fff irq 16 at device 0.0 on pci1
    ix0: Using 2048 TX descriptors and 2048 RX descriptors
    ix0: Using 2 RX queues 2 TX queues
    ix0: Using MSI-X interrupts with 3 vectors
    ix0: allocated for 2 queues
    ix0: allocated for 2 rx queues
    ix0: Ethernet address: 6c:b3:11:3b:bb:90
    ix0: PCI Express Bus: Speed 5.0GT/s Width x8
    ix0: netmap queues/slots: TX 2/2048, RX 2/2048
    ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver> port 0xe000-0xe01f mem 0xdf680000-0xdf6fffff,0xdf800000-0xdf803fff irq 17 at device 0.1 on pci1
    ix1: Using 2048 TX descriptors and 2048 RX descriptors
    ix1: Using 2 RX queues 2 TX queues
    ix1: Using MSI-X interrupts with 3 vectors
    ix1: allocated for 2 queues
    ix1: allocated for 2 rx queues
    ix1: Ethernet address: 6c:b3:11:3b:bb:92
    ix1: PCI Express Bus: Speed 5.0GT/s Width x8
    ix1: netmap queues/slots: TX 2/2048, RX 2/2048
    vlan8: changing name to 'ix0.14'
    vlan9: changing name to 'ix0.18'
    vlan10: changing name to 'ix1.116'
    ix0: link state changed to UP
    ix0.18: link state changed to UP
    ix0.14: link state changed to UP
    ix1: link state changed to UP
    ix1.116: link state changed to UP

    So I also had a look at igb

    igb0: <Intel(R) PRO/1000 PCI-Express Network Driver> mem 0xdf400000-0xdf4fffff,0xdf500000-0xdf503fff irq 16 at device 0.0 on pci2
    igb0: Using 1024 TX descriptors and 1024 RX descriptors
    igb0: Using 2 RX queues 2 TX queues
    igb0: Using MSI-X interrupts with 3 vectors
    igb0: Ethernet address: 68:05:ca:58:0f:b6
    igb0: netmap queues/slots: TX 2/1024, RX 2/1024
    igb1: <Intel(R) PRO/1000 PCI-Express Network Driver> mem 0xdf100000-0xdf1fffff,0xdf200000-0xdf203fff irq 17 at device 0.0 on pci3
    igb1: Using 1024 TX descriptors and 1024 RX descriptors
    igb1: Using 2 RX queues 2 TX queues
    igb1: Using MSI-X interrupts with 3 vectors
    igb1: Ethernet address: 68:05:ca:51:70:23
    igb1: netmap queues/slots: TX 2/1024, RX 2/1024
    lagg0: IPv6 addresses on igb0 have been removed before adding it as a member to prevent IPv6 address scope violation.
    lagg0: IPv6 addresses on igb1 have been removed before adding it as a member to prevent IPv6 address scope violation.
    igb0: link state changed to UP
    igb1: link state changed to UP

    No version numbers as well !!!???

    https://www.freebsd.org/cgi/man.cgi?query=ixgbe&sektion=4&manpath=freebsd-release-ports

    Do not know what to do with this ...

    https://forums.freebsd.org/threads/intel-x520-da2-or-x520-sr2.72173/

    My x520 model does support fiber (and as far as I know dac as well)

    https://man.openbsd.org/ix

    IMHO I have this one
    Intel X520-SR2 Dual Port 10GbE Adapter (SFP+/10GbaseSR)

    Note that I really hope that the latest ix-driver version is in the kernel, but that I am not sure that that is the (only) issue.

    I also verdict modules like "swi1: netisr 2", "dpinger", "mrouted", "radvc" etc.
    I just do not know.

    I just know one thing, some where in the kernel, there is at least one related sevice bug

    Louis



  • FreeBSD recently migrated to a new methodolgy for NIC drivers. The new kernel API is called iflib. It is a wrapper library that encompasses several common functions that all NIC drivers need. The idea behind iflib was to reduce redundant coding in the various NIC drivers in order to standardize on certain kernel interface functions. Most, but not all, NIC drivers have been rewritten by the manufacturers to support the iflib API. The new library handles things such as netmap device interfacing, for example, to remove that burden from the manfacturer driver developers.

    So the use of iflib in FreeBSD means that driver versions changed. So the version you see in current FreeBSD kernels is the iflib version of the driver, and that version number mostly will not match the latest version of the driver shown on the manufacturer's web site. That Intel 3.3.14 driver is a prime example. The latest iflib version of that driver is a 4.x something or other (don't remember at the moment off the top of head) in FreeBSD-12.1. So now some vendors have an iflib version of their FreeBSD driver for newer kernel versions, and an older non-iflib version for older kernels. And the real kicker is that with some NIC drivers, the seemingly newer and higher number (you would assume it is newer since it's a higher revision) is actually older code than what may be in a non-iflib version. It can be a little confusing to sort it all out.



  • I like that iflib idea!!

    I hope it is available and used here as well. Do you / any one know!?
    Botum line is of cause better and easier support ... and that it "just works".

    Louis



  • @louis2

    if you are searching for "one".... in the forum now, you can see that others have already addressed this question
    all I can say is there are still difficulties, so it is not yet available as you think now

    but I wonโ€™t spoil your hunting and reading opportunity...



  • @louis2 said in Any one know which Intel ix driver for x520 card is in the actual kernel?:

    I like that iflib idea!!

    I hope it is available and used here as well. Do you / any one know!?
    Botum line is of cause better and easier support ... and that it "just works".

    Louis

    Well, one of the problems iflib introduced is that it also added more work to the driver developers since now they have to produce two different versions of each driver. One for kernels using iflib and one for those older kernels not using it.

    I think the driver you are having trouble with is like this. There is actually newer code in the 3.3.14 driver than in the 4.x version showing in FreeBSD-12.1/STABLE (again, I can't remember the exact version number). One problem some of the newer Intel drivers had (and might be still having in FreeBSD-12.1) is an issue with initializing VLANs on driver load. It has to do with differences in the way driver initialization works when using iflib. The hardware on some of the newer Intel cards wants to be initialized in a manner that iflib does not do. Here's a link to a bug report: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240818.



  • Yep,

    I understand that it is more work during transision.

    Still no idea whichh driver version the pfSense kernel is using ......

    One of the problems, there is at least one other bug!, I have when using PIMD, is that switching on and off one of my vlan interfaces, does / (did?) almost certain lead to a crash if have PIMD active.

    I put "did?" in between because since the today! snapshot pfSense !seems! to crash significant less often .... too early! to be sure! ......... (see peace of crash dump below)

    If PIMD is using interface=x as RP-canidate and I switch that vlan off, PIMD switches to its defaults RP.
    If I switch that prefered interface back on ==> crash (also in actual snapshot!).

    What ever, if this is yes or no related to the bug link you included, I am not sure. Could be, but it is not an "Ah that is the problem!".

    Louis

    Fatal trap 12: page fault while in kernel mode
    cpuid = 1; apic id = 01
    fault virtual address = 0x1000
    fault code = supervisor write data, page not present
    instruction pointer = 0x20:0xffffffff80e934f5
    stack pointer = 0x0:0xfffffe00004de7f0
    frame pointer = 0x0:0xfffffe00004de7f0
    code segment = base 0x0, limit 0xfffff, type 0x1b
    = DPL 0, pres 1, long 1, def32 0, gran 1
    processor eflags = interrupt enabled, resume, IOPL = 0
    current process = 12 (swi1: netisr 2)
    trap number = 12
    panic: page fault

    Louis



  • @louis2 said in Any one know which Intel ix driver for x520 card is in the actual kernel?:

    Still no idea whichh driver version the pfSense kernel is using ......

    if not visible as described above (although it is very strange)

    restart pfSense and observe the kernel messages on the console during boot...
    there you can see the versions of the loaded device drivers



  • @DaddyGo

    I did a restart scrolls very fast. Tried to make a movie with my mobile :) Scrolling too fast to be sharp.

    Whatever, the info seen in the movie (hard to see), the info from "dmesg | grep ix", the bootlog and crashdumps all seems to be the same.

    So that does not help.

    Louis



  • @louis2

    just try this, you need to see the version here also
    (if not then you are in big trouble)

    sysctl dev.ix or sysctl dev.ixgbe

    joke: you don't even have a NIC driver, hahahaha

    43472d77-c36b-40f1-b916-e2e2aa4cb247-image.png



  • Do not worry I do have a driver,

    it is so old that it just forgot its version number ๐Ÿ˜‚

    • sysctl dev.ix:
      dev.ix.0.%desc: Intel(R) PRO/10GbE PCI-Express Network Driver
      dev.ix.0.iflib.rxq1.rxq_fl0.credits: 2047

    So we learned something "iflib", so at least we know now that the new iflib version is used

    lets have a look for the other interfaces:

    • dev.em.0.%desc: Intel(R) PRO/1000 Network Connection
      dev.em.0.iflib.rxq0.rxq_fl0.credits: 1023

    • dev.igb.0.%desc: Intel(R) PRO/1000 PCI-Express Network Driver
      dev.igb.1.iflib.rxq1.rxq_fl0.credits: 1023

    So all network interfaces 1 x em, 2 x igb and 2 x ix do use the new iflib library.
    (perhaps that is causing the problem ???? โ˜บ )

    Lots if other parameters given, to much for now ๐ŸŽ…

    Louis



  • @louis2 said in Any one know which Intel ix driver for x520 card is in the actual kernel?:

    it is so old that it just forgot its version number

    or drank a lot at a party and is now a hangover... ๐Ÿ˜€


Log in to reply