git: c541bd368f86 - main - lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries.

Alexander V. Chernikov melifaro at ipfw.ru
Sun Aug 22 08:50:59 UTC 2021



> On 22 Aug 2021, at 06:58, Cy Schubert <Cy.Schubert at cschubert.com> wrote:
> 
> In message <202108211735.17LHZ0WI081502 at gitrepo.freebsd.org <mailto:202108211735.17LHZ0WI081502 at gitrepo.freebsd.org>>, "Alexander V. 
> Che
> rnikov" writes:
>> The branch main has been updated by melifaro:
>> 
>> URL: https://cgit.FreeBSD.org/src/commit/?id=c541bd368f863bbf5c08dd5c1ecce016
>> 6ad47389
>> 
>> commit c541bd368f863bbf5c08dd5c1ecce0166ad47389
>> Author:     Alexander V. Chernikov <melifaro at FreeBSD.org>
>> AuthorDate: 2021-08-21 14:13:32 +0000
>> Commit:     Alexander V. Chernikov <melifaro at FreeBSD.org>
>> CommitDate: 2021-08-21 17:34:35 +0000
>> 
>>    lltable: Add support for "child" LLEs holding encap for IPv4oIPv6 entries
>> .
>> 
>>    Currently we use pre-calculated headers inside LLE entries as prepend dat
>> a
>>     for `if_output` functions. Using these headers allows saving some
>>     CPU cycles/memory accesses on the fast path.
>> 
>>    However, this approach makes adding L2 header for IPv4 traffic with IPv6
>>     nexthops more complex, as it is not possible to store multiple
>>     pre-calculated headers inside lle. Additionally, the solution space is
>>     limited by the fact that PCB caching saves LLEs in addition to the nexth
>> op.
>> 
>>    Thus, add support for creating special "child" LLEs for the purpose of ho
>> lding
>>     custom family encaps and store mbufs pending resolution. To simplify han
>> dling
>>     of those LLEs, store them in a linked-list inside a "parent" (e.g. norma
>> l) LLE.
>>     Such LLEs are not visible when iterating LLE table. Their lifecycle is b
>> ound
>>     to the "parent" LLE - it is not possible to delete "child" when parent i
>> s alive.
>>     Furthermore, "child" LLEs are static (RTF_STATIC), avoding complex state
>>     machine used by the standard LLEs.
>> 
>>    nd6_lookup() and nd6_resolve() now accepts an additional argument, family
>> ,
>>     allowing to return such child LLEs. This change uses `LLE_SF()` macro wh
>> ich
>>     packs family and flags in a single int field. This is done to simplify m
>> erging
>>     back to stable/. Once this code lands, most of the cases will be convert
>> ed to
>>     use a dedicated `family` parameter.
>> 
>>    Differential Revision: https://reviews.freebsd.org/D31379
>>    MFC after:      2 weeks
>> ---
>> sys/net/if_ethersubr.c                     |   4 +-
>> sys/net/if_fwsubr.c                        |   4 +-
>> sys/net/if_infiniband.c                    |   3 +-
>> sys/net/if_llatbl.c                        |  70 +++++++++++-
>> sys/net/if_llatbl.h                        |  12 +-
>> sys/netinet/toecore.c                      |   2 +-
>> sys/netinet6/icmp6.c                       |   2 +-
>> sys/netinet6/in6.c                         |   5 +
>> sys/netinet6/nd6.c                         | 176 +++++++++++++++++++++++----
>> --
>> sys/netinet6/nd6.h                         |   1 +
>> sys/netinet6/nd6_nbr.c                     |   6 +-
>> sys/ofed/drivers/infiniband/core/ib_addr.c |   5 +-
>> 12 files changed, 241 insertions(+), 49 deletions(-)
> 
> This commit causes two of my machines a bit of gas.
Sorry for the breakage, should be fixed by f8c1b1a9296696f70ac209612a00ae0722d07ed9.

> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address	= 0x128
> fault code		= supervisor read data, page not present
> instruction pointer	= 0x20:0xffffffff806cb53d
> stack pointer	        = 0x28:0xfffffe008da1a210
> frame pointer	        = 0x28:0xfffffe008da1a210
> 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		= 0 (bge0 taskq)
> trap number		= 12
> panic: page fault
> cpuid = 0
> time = 1629610416
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 
> 0xfffffe008da19eb0
> vpanic() at vpanic+0x187/frame 0xfffffe008da19f10
> panic() at panic+0x43/frame 0xfffffe008da19f70
> trap_fatal() at trap_fatal+0x387/frame 0xfffffe008da19fd0
> trap_pfault() at trap_pfault+0x4f/frame 0xfffffe008da1a030
> trap() at trap+0x26a/frame 0xfffffe008da1a140
> calltrap() at calltrap+0x8/frame 0xfffffe008da1a140
> --- trap 0xc, rip = 0xffffffff806cb53d, rsp = 0xfffffe008da1a210, rbp = 
> 0xfffffe008da1a210 ---
> __rw_rlock_int() at __rw_rlock_int+0xd/frame 0xfffffe008da1a210
> in6_lltable_lookup() at in6_lltable_lookup+0xa7/frame 0xfffffe008da1a240
> nd6_lookup() at nd6_lookup+0x4e/frame 0xfffffe008da1a270
> pfxlist_onlink_check() at pfxlist_onlink_check+0xfb/frame 0xfffffe008da1a310
> nd6_ra_input() at nd6_ra_input+0x147f/frame 0xfffffe008da1a5d0
> icmp6_input() at icmp6_input+0x685/frame 0xfffffe008da1a7b0
> ip6_input() at ip6_input+0xa9a/frame 0xfffffe008da1a890
> netisr_dispatch_src() at netisr_dispatch_src+0xca/frame 0xfffffe008da1a8e0
> ether_demux() at ether_demux+0x138/frame 0xfffffe008da1a910
> ether_nh_input() at ether_nh_input+0x34e/frame 0xfffffe008da1a970
> netisr_dispatch_src() at netisr_dispatch_src+0xca/frame 0xfffffe008da1a9c0
> ether_input() at ether_input+0x69/frame 0xfffffe008da1aa20
> if_input() at if_input+0xa/frame 0xfffffe008da1aa30
> bge_rxeof() at bge_rxeof+0x4dc/frame 0xfffffe008da1aab0
> bge_intr_task() at bge_intr_task+0x1a7/frame 0xfffffe008da1ab00
> taskqueue_run_locked() at taskqueue_run_locked+0x191/frame 
> 0xfffffe008da1ab80
> taskqueue_thread_loop() at taskqueue_thread_loop+0xc3/frame 
> 0xfffffe008da1abb0
> fork_exit() at fork_exit+0x8a/frame 0xfffffe008da1abf0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe008da1abf0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> Uptime: 1m18s
> Dumping 511 out of 7972 MB:..4%..13%..22%..32%..41%..51%..63%..72%..82%..91%
> ---<<BOOT>>---
> Copyright (c) 1992-2021 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> 	The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 14.0-CURRENT #85 komquats-n248853-efa24221b032: Sat Aug 21 20:41:37 
> PDT 2021
>    root at cwsys:/export/obj/opt/src/git-src/amd64.amd64/sys/BREAK amd64
> FreeBSD clang version 12.0.1 (git at github.com <mailto:git at github.com>:llvm/llvm-project.git 
> llvmorg-12.0.1-0-gfed41342a82f)
> VT(vga): text 80x25
> module_register: cannot register tmpfs from kernel; already loaded from 
> tmpfs.ko
> Module tmpfs failed to register: 17
> CPU: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (2294.83-MHz K8-class CPU)
>  Origin="GenuineIntel"  Id=0x206a7  Family=0x6  Model=0x2a  Stepping=7
>  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,M
> CA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
>  Features2=0x1dbae3bf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX
> 16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,XSAVE,OSXSAVE,AVX>
>  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
>  AMD Features2=0x1<LAHF>
>  XSAVE Features=0x1<XSAVEOPT>
>  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
>  TSC: P-state invariant, performance statistics
> real memory  = 8589934592 (8192 MB)
> avail memory = 8082354176 (7707 MB)
> Event timer "LAPIC" quality 600
> ACPI APIC Table: <ACRSYS ACRPRDCT>
> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 hardware threads
> random: unblocking device.
> ioapic0 <Version 2.0> irqs 0-23
> Launching APs: 1 3 2
> Timecounter "TSC-low" frequency 1147416650 Hz quality 1000
> random: entropy device external interface
> kbd1 at kbdmux0
> vtvga0: <VT VGA driver>
> aesni0: No AES or SHA support.
> acpi0: <ACRSYS ACRPRDCT>
> acpi0: Power Button (fixed)
> cpu0: <ACPI CPU> on acpi0
> hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
> Timecounter "HPET" frequency 14318180 Hz quality 950
> Event timer "HPET" frequency 14318180 Hz quality 550
> Event timer "HPET1" frequency 14318180 Hz quality 440
> Event timer "HPET2" frequency 14318180 Hz quality 440
> Event timer "HPET3" frequency 14318180 Hz quality 440
> Event timer "HPET4" frequency 14318180 Hz quality 440
> atrtc0: <AT realtime clock> port 0x70-0x77 irq 8 on acpi0
> atrtc0: Warning: Couldn't map I/O.
> atrtc0: registered as a time-of-day clock, resolution 1.000000s
> Event timer "RTC" frequency 32768 Hz quality 0
> attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
> Timecounter "i8254" frequency 1193182 Hz quality 0
> Event timer "i8254" frequency 1193182 Hz quality 100
> Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
> acpi_ec0: <Embedded Controller: GPE 0x17> port 0x62,0x66 on acpi0
> pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
> pci0: <ACPI PCI bus> on pcib0
> vgapci0: <VGA-compatible display> port 0x2000-0x203f mem 
> 0xf0000000-0xf03fffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0
> vgapci0: Boot video device
> pci0: <simple comms> at device 22.0 (no driver attached)
> ehci0: <Intel Cougar Point USB 2.0 controller> mem 0xf060a000-0xf060a3ff 
> irq 16 at device 26.0 on pci0
> usbus0: EHCI version 1.0
> usbus0 on ehci0
> usbus0: 480Mbps High Speed USB v2.0
> hdac0: <Intel Cougar Point HDA Controller> mem 0xf0600000-0xf0603fff irq 22 
> at device 27.0 on pci0
> pcib1: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
> pci1: <ACPI PCI bus> on pcib1
> pcib2: <ACPI PCI-PCI bridge> irq 17 at device 28.1 on pci0
> pci2: <ACPI PCI bus> on pcib2
> iwn0: <Intel Centrino Advanced-N 6205> mem 0xf0500000-0xf0501fff irq 17 at 
> device 0.0 on pci2
> pcib3: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
> pci3: <ACPI PCI bus> on pcib3
> bge0: <Broadcom BCM57765 B0, ASIC rev. 0x57785100> mem 
> 0xf0400000-0xf040ffff,0xf0410000-0xf041ffff irq 19 at device 0.0 on pci3
> bge0: CHIP ID 0x57785100; ASIC REV 0x57785; CHIP REV 0x577851; PCI-E
> miibus0: <MII bus> on bge0
> brgphy0: <BCM57765 1000BASE-T media interface> PHY 1 on miibus0
> brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
> 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
> <6>bge0: Using defaults for TSO: 65518/35/2048
> <6>bge0: Ethernet address: 20:6a:8a:72:03:17
> sdhci_pci0: <Broadcom BCM577xx SDXC/MMC Card Reader> mem 
> 0xf0420000-0xf042ffff irq 16 at device 0.1 on pci3
> sdhci_pci0: 1 slot(s) allocated
> ehci1: <Intel Cougar Point USB 2.0 controller> mem 0xf0609000-0xf06093ff 
> irq 23 at device 29.0 on pci0
> usbus1: EHCI version 1.0
> usbus1 on ehci1
> usbus1: 480Mbps High Speed USB v2.0
> isab0: <PCI-ISA bridge> at device 31.0 on pci0
> isa0: <ISA bus> on isab0
> ahci0: <Intel Cougar Point AHCI SATA controller> port 
> 0x2088-0x208f,0x2094-0x2097,0x2080-0x2087,0x2090-0x2093,0x2060-0x207f mem 
> 0xf0608000-0xf06087ff irq 19 at device 31.2 on pci0
> ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported
> ahcich0: <AHCI channel> at channel 0 on ahci0
> ahcich1: <AHCI channel> at channel 1 on ahci0
> ahcich5: <AHCI channel> at channel 5 on ahci0
> ahciem0: <AHCI enclosure management bridge> on ahci0
> ichsmb0: <Intel Cougar Point SMBus controller> port 0xefa0-0xefbf mem 
> 0xf0604000-0xf06040ff irq 18 at device 31.3 on pci0
> acpi_lid0: <Control Method Lid Switch> on acpi0
> acpi_button0: <Sleep Button> on acpi0
> acpi_tz0: <Thermal Zone> on acpi0
> acpi_tz1: <Thermal Zone> on acpi0
> atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
> atkbd0: <AT Keyboard> irq 1 on atkbdc0
> kbd0 at atkbd0
> atkbd0: [GIANT-LOCKED]
> psm0: <PS/2 Mouse> irq 12 on atkbdc0
> psm0: [GIANT-LOCKED]
> WARNING: Device "psm" is Giant locked and may be deleted before FreeBSD 
> 14.0.
> psm0: model Synaptics Touchpad, device ID 0
> acpi_acad0: <AC Adapter> on acpi0
> battery0: <ACPI Control Method Battery> on acpi0
> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff pnpid 
> PNP0900 on isa0
> ata0: <ATA channel> at port 0x1f0-0x1f7,0x3f6 irq 14 on isa0
> ata1: <ATA channel> at port 0x170-0x177,0x376 irq 15 on isa0
> acpi_perf0: <ACPI CPU Frequency Control> on cpu0
> acpi_throttle0: <ACPI CPU Throttling> on cpu0
> coretemp0: <CPU On-Die Thermal Sensors> on cpu0
> acpi_throttle1: failed to attach P_CNT
> device_attach: acpi_throttle1 attach returned 6
> acpi_throttle2: failed to attach P_CNT
> device_attach: acpi_throttle2 attach returned 6
> acpi_throttle3: failed to attach P_CNT
> device_attach: acpi_throttle3 attach returned 6
> module_register_init: MOD_LOAD (tmpfs, 0xffffffff807a2760, 
> 0xffffffff80c88540) error 17
> Timecounters tick every 10.000 msec
> ZFS filesystem version: 5
> ZFS storage pool version: features support (5000)
> IP Filter: v5.1.2 initialized.  Default = pass all, Logging = enabled
> hdacc0: <Realtek ALC269 HDA CODEC> at cad 0 on hdac0
> hdaa0: <Realtek ALC269 Audio Function Group> at nid 1 on hdacc0
> pcm0: <Realtek ALC269 (Analog 2.0+HP/2.0)> at nid 20,33 and 27 on hdaa0
> pcm1: <Realtek ALC269 (Left Analog Mic)> at nid 24 on hdaa0
> hdacc1: <Intel Cougar Point HDA CODEC> at cad 3 on hdac0
> hdaa1: <Intel Cougar Point Audio Function Group> at nid 1 on hdacc1
> pcm2: <Intel Cougar Point (HDMI/DP 8ch)> at nid 5 on hdaa1
> smbus0: <System Management Bus> on ichsmb0
> smb0: <SMBus generic I/O> on smbus0
> sysctl_unregister_oid: failed(22) to unregister sysctl(tmpfs)
> ugen1.1: <Intel EHCI root HUB> at usbus1
> ugen0.1: <Intel EHCI root HUB> at usbus0
> uhub0 on usbus1
> Trying to mount root from ufs:/dev/ufs/Sroot [rw]...
> Root mount waiting for: usbus0 usbus1 CAM
> uhub1 on usbus0
> uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
> uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
> ses0 at ahciem0 bus 0 scbus3 target 0 lun 0
> ses0: <AHCI SGPIO Enclosure 2.00 0001> SEMB S-E-S 2.00 device
> ses0: SEMB SES Device
> ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
> ada0: <HGST HTS721010A9E630 JB0OA3U0> ATA8-ACS SATA 3.x device
> ada0: Serial Number JR1000D33969RE
> ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
> ada0: Command Queueing enabled
> ada0: 953869MB (1953525168 512 byte sectors)
> ses0: pass0,ada0 in 'Slot 00', SATA Slot: scbus0 target 0
> ses0: pass1,cd0 in 'Slot 01', SATA Slot: scbus1 target 0
> cd0 at ahcich1 bus 0 scbus1 target 0 lun 0
> cd0: <PIONEER DVD-RW DVRTD11RS 1.01> Removable CD-ROM SCSI device
> cd0: Serial Number SBB5103801
> cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
> cd0: Attempt to query device size failed: NOT READY, Medium not present - 
> tray closed
> uhub1: 2 ports with 2 removable, self powered
> uhub0: 2 ports with 2 removable, self powered
> Root mount waiting for: usbus0 usbus1
> ugen0.2: <vendor 0x8087 product 0x0024> at usbus0
> uhub2 on uhub1
> uhub2: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on 
> usbus0
> ugen1.2: <vendor 0x8087 product 0x0024> at usbus1
> uhub3 on uhub0
> uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on 
> usbus1
> Root mount waiting for: usbus0 usbus1
> uhub3: 6 ports with 6 removable, self powered
> uhub2: 6 ports with 6 removable, self powered
> ugen1.3: <ALCOR Generic USB Hub> at usbus1
> uhub4 on uhub3
> uhub4: <ALCOR Generic USB Hub, class 9/0, rev 1.10/3.12, addr 3> on usbus1
> ugen0.3: <vendor 0x05e3 USB2.0 Hub> at usbus0
> uhub5 on uhub2
> uhub5: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/6.03, addr 3> on 
> usbus0
> Root mount waiting for: usbus0 usbus1
> uhub4: 4 ports with 4 removable, self powered
> uhub5: 4 ports with 4 removable, self powered
> ugen1.4: <Logitech USB Receiver> at usbus1
> ukbd0 on uhub4
> ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.07, addr 4> on usbus1
> kbd2 at ukbd0
> ums0 on uhub4
> ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.07, addr 4> on usbus1
> ums0: 16 buttons and [XYZT] coordinates ID=2
> ugen0.4: <vendor 0x05e3 USB2.0 Hub> at usbus0
> uhub6 on uhub5
> uhub6: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/6.03, addr 4> on 
> usbus0
> Root mount waiting for: usbus0 usbus1
> ugen1.5: <Device 2Port KVMSwitcher> at usbus1
> ukbd1 on uhub4
> ukbd1: <Device 2Port KVMSwitcher, class 0/0, rev 1.10/0.01, addr 5> on 
> usbus1
> kbd3 at ukbd1
> uhub6: 4 ports with 4 removable, self powered
> ugen0.5: <NOONTEC DX HDEN10> at usbus0
> umass0 on uhub6
> umass0: <NOONTEC DX HDEN10, class 0/0, rev 2.00/0.01, addr 5> on usbus0
> umass0:  SCSI over Bulk-Only; quirks = 0x4100
> umass0:6:0: Attached to scbus6
> Root mount waiting for: usbus0 CAM
> da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
> da0: <SAMSUNG SP0802N 0000> Fixed Direct Access SCSI device
> da0: 40.000MB/s transfers
> da0: 76351MB (156368016 512 byte sectors)
> da0: quirks=0x2<NO_6_BYTE>
> ugen0.6: <vendor 0x05e3 USB TO IDE> at usbus0
> umass1 on uhub6
> umass1: <vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.33, addr 6> on 
> usbus0
> umass1:  SCSI over Bulk-Only; quirks = 0x408c
> umass1:7:1: Attached to scbus7
> da1 at umass-sim1 bus 1 scbus7 target 0 lun 0
> da1: <ST980082 1A 0811> Fixed Direct Access SCSI device
> da1: 40.000MB/s transfers
> da1: 76319MB (156301488 512 byte sectors)
> da1: quirks=0x2<NO_6_BYTE>
> ugen0.7: <vendor 0x058f Flash Disk> at usbus0
> umass2 on uhub5
> umass2: <vendor 0x058f Flash Disk, class 0/0, rev 2.00/1.02, addr 7> on 
> usbus0
> umass2:  SCSI over Bulk-Only; quirks = 0x4101
> umass2:8:2: Attached to scbus8
> da2 at umass-sim2 bus 2 scbus8 target 0 lun 0
> da2: < Flash Disk 8.07> Removable Direct Access SCSI-2 device
> da2: Serial Number 029B4D84
> da2: 40.000MB/s transfers
> da2: 246MB (504320 512 byte sectors)
> da2: quirks=0x2<NO_6_BYTE>
> Root mount waiting for: usbus0
> ugen0.8: <AABBX0E6S 1.3M HD WebCam> at usbus0
> mountroot: waiting for device /dev/ufs/Sroot...
> WARNING: / was not properly dismounted
> WARNING: /: mount pending error: blocks 24 files 0
> <118>Setting hostuuid: 34f5ed40-8938-11da-b265-efe316da850d.
> <118>Setting hostid: 0x7f5a03b9.
> <118>Starting file system checks:
> <118>** SU+J Recovering /dev/ufs/Sroot
> <118>** Reading 16777216 byte journal from inode 4.
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>** 7 journal records in 1536 bytes for 14.58% utilization
> <118>** Freed 1 inodes (0 dirs) 0 blocks, and 3 frags.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>** SU+J Recovering /dev/ufs/Svar
> <118>** Reading 16777216 byte journal from inode 4.
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>** SU+J Recovering /dev/ufs/Susr
> <118>** Reading 25165824 byte journal from inode 4.
> <118>** 40 journal records in 4096 bytes for 31.25% utilization
> <118>** Freed 0 inodes (0 dirs) 0 blocks, and 0 frags.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>/dev/ada0s3a: 7535 files, 131352 used, 376431 free (1135 frags, 46912 
> blocks, 0.2% fragmentation)
> <118>/dev/ada0s3e: 24573 files, 319053 used, 442234 free (1082 frags, 55144 
> blocks, 0.1% fragmentation)
> <118>/dev/ada0s3d: 22537 files, 105401 used, 402382 free (270 frags, 50264 
> blocks, 0.1% fragmentation)
> <118>/dev/ada0s3f: 18331 files, 109447 used, 398336 free (576 frags, 49720 
> blocks, 0.1% fragmentation)
> <118>/dev/ada0s3h: 22924 files, 188609 used, 572677 free (685 frags, 71499 
> blocks, 0.1% fragmentation)
> <118>/dev/ada0s3g: 5348 files, 49444 used, 458339 free (275 frags, 57258 
> blocks, 0.1% fragmentation)
> <118>** SU+J Recovering /dev/zvol/tank/VMs/current/amd64/disk3p1
> <118>** Reading 33554432 byte journal from inode 4.
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>** SU+J Recovering /dev/zvol/tank/VMs/current/amd64/disk0s1a
> <118>** Reading 16777216 byte journal from inode 827.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>** SU+J Recovering /dev/zvol/tank/VMs/current/amd64/disk0s1d
> <118>** Reading 16777216 byte journal from inode 117.
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>** SU+J Recovering /dev/zvol/tank/VMs/current/amd64/disk0s1e
> <118>** Reading 33554432 byte journal from inode 16.
> <118>** Building recovery table.
> <118>** Resolving unreferenced inode list.
> <118>** Processing journal entries.
> <118>
> <118>***** FILE SYSTEM MARKED CLEAN *****
> <118>/dev/msdosfs/SHARED: 435 files, 6.2 GiB free (203709 clusters)
> <118>FIXED
> <118>/dev/msdosfs/SHARED: MARKING FILE SYSTEM CLEAN
> <118>/dev/zvol/tank/VMs/current/i386/disk0s1a: 114555 files, 255948 used, 
> 251835 free (403 frags, 31429 blocks, 0.1% fragmentation)
> <118>/dev/zvol/tank/VMs/current/i386/disk0s1d: 22759 files, 126960 used, 
> 380823 free (143 frags, 47585 blocks, 0.0% fragmentation)
> <118>/dev/zvol/tank/VMs/current/i386/disk0s1e: 28564 files, 549004 used, 
> 973507 free (1603 frags, 121488 blocks, 0.1% fragmentation)
> <118>Mounting local filesystems:.
> <118>Mounting ZFS filesystems: (193/193)
> <118>Local package initialization:error: ed0: No such device exists 
> (BIOCSETIF failed: Device not configured)
> <118>Unable to read the configuration file: No such file or directory at 
> /usr/local/lib/perl5/site_perl/Jail.pm line 50.
> <118>Compilation failed in require at /usr/local/sbin/jailadmin line 13.
> <118>BEGIN failed--compilation aborted at /usr/local/sbin/jailadmin line 13.
> <118> Jails.
> <118>Autoloading module: acpi_wmi
> acpi_wmi0: <ACPI-WMI mapping> on acpi0
> acpi_wmi0: Embedded MOF found
> ACPI: \_SB.AMWA.WQEE: 1 arguments were passed to a non-method ACPI object 
> (Buffer) (20210730/nsarguments-361)
> acpi_wmi1: <ACPI-WMI mapping> on acpi0
> acpi_wmi1: Embedded MOF found
> ACPI: \_SB.AMW0.WQDD: 1 arguments were passed to a non-method ACPI object 
> (Buffer) (20210730/nsarguments-361)
> <118>Updating CPU Microcode...
> CPU: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (2294.83-MHz K8-class CPU)
>  Origin="GenuineIntel"  Id=0x206a7  Family=0x6  Model=0x2a  Stepping=7
>  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,M
> CA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
>  Features2=0x1dbae3bf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX
> 16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,XSAVE,OSXSAVE,AVX>
>  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
>  AMD Features2=0x1<LAHF>
>  Structured Extended Features3=0x9c000400<MD_CLEAR,IBPB,STIBP,L1DFL,SSBD>
>  XSAVE Features=0x1<XSAVEOPT>
>  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
>  TSC: P-state invariant, performance statistics
> <118>Done.
> <118>ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib 
> /usr/local/lib/compat/pkg /usr/local/krb5/lib /usr/local/kde4/lib 
> /usr/local/dt/lib /usr/local/lib/compat/pkg /usr/local/lib/dovecot 
> /usr/local/lib/e2fsprogs /usr/local/lib/expect5.45.4 
> /usr/local/lib/freeradius-3.0.23 /usr/local/lib/gcc10 /usr/local/lib/gcc11 
> /usr/local/lib/gcc12 /usr/local/lib/gcc8 /usr/local/lib/gcc9 
> /usr/local/lib/graphviz /usr/local/lib/httrack /usr/local/lib/itcl3.4 
> /usr/local/lib/mysql /usr/local/lib/mysql/plugin /usr/local/lib/opencollada 
> /usr/local/lib/perl5/5.30/mach/CORE /usr/local/lib/perl5/5.32/mach/CORE 
> /usr/local/lib/perl5/5.34/mach/CORE /usr/local/lib/pidgin 
> /usr/local/lib/pth /usr/local/lib/qt5 /usr/local/lib/samba4 
> /usr/local/lib/xrdp /usr/local/libexec/openldap /usr/local/llvm-devel/lib 
> /usr/local/llvm10/lib /usr/local/llvm11/lib /usr/local/llvm12/lib 
> /usr/local/llvm70/lib /usr/local/llvm80/lib /usr/local/llvm90/lib 
> /usr/local/share/chromium
> <118>32-bit compatibility ldconfig path: /usr/lib32 
> /alt/i386/root/usr/local/lib
> <118>Setting hostname: slippy.
> <118>Setting up harvesting: [UMA],[FS_ATIME],SWI,INTERRUPT,NET_NG,[NET_ETHER
> ],NET_TUN,MOUSE,KEYBOARD,ATTACH,CACHED
> <118>Feeding entropy: .
> <118>Starting ippool.
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>70018:add pool node(252.0.0.1/255.255.255.255: node entry already 
> present in pool
> <118>Additional TCP/IP options: rfc1323 extensions=NO.
> <118>Enabling ipfilter.
> <118>Installing NAT rules.
> <118>0 entries flushed from NAT table
> <118>0 entries flushed from NAT list
> <118>Starting ipmon.
> <6>wlan0: Ethernet address: 20:6a:8a:72:03:17
> <118>Created wlan(4) interfaces: wlan0.
> <6>bridge0: Ethernet address: 58:9c:fc:10:ff:c8
> <118>Created clone interfaces: lagg0 bridge0.
> <6>lo0: link state changed to UP
> <6>bge0: link state changed to DOWN
> iwn0: iwn_read_firmware: ucode rev=0x12a80601
> <118>Starting wpa_supplicant.
> <6>lagg0: link state changed to DOWN
> <6>lagg0: IPv6 addresses on wlan0 have been removed before adding it as a 
> member to prevent IPv6 address scope violation.
> iwn0: iwn_read_firmware: ucode rev=0x12a80601
> <6>wlan0: link state changed to UP
> <6>lagg0: link state changed to UP
> <6>bge0: link state changed to UP
> 
> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address	= 0x128
> fault code		= supervisor read data, page not present
> instruction pointer	= 0x20:0xffffffff806cb53d
> stack pointer	        = 0x28:0xfffffe00831a3210
> frame pointer	        = 0x28:0xfffffe00831a3210
> 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		= 0 (bge0 taskq)
> trap number		= 12
> panic: page fault
> cpuid = 0
> time = 1629610531
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 
> 0xfffffe00831a2eb0
> vpanic() at vpanic+0x187/frame 0xfffffe00831a2f10
> panic() at panic+0x43/frame 0xfffffe00831a2f70
> trap_fatal() at trap_fatal+0x387/frame 0xfffffe00831a2fd0
> trap_pfault() at trap_pfault+0x4f/frame 0xfffffe00831a3030
> trap() at trap+0x26a/frame 0xfffffe00831a3140
> calltrap() at calltrap+0x8/frame 0xfffffe00831a3140
> --- trap 0xc, rip = 0xffffffff806cb53d, rsp = 0xfffffe00831a3210, rbp = 
> 0xfffffe00831a3210 ---
> __rw_rlock_int() at __rw_rlock_int+0xd/frame 0xfffffe00831a3210
> in6_lltable_lookup() at in6_lltable_lookup+0xa7/frame 0xfffffe00831a3240
> nd6_lookup() at nd6_lookup+0x4e/frame 0xfffffe00831a3270
> pfxlist_onlink_check() at pfxlist_onlink_check+0xfb/frame 0xfffffe00831a3310
> nd6_ra_input() at nd6_ra_input+0x147f/frame 0xfffffe00831a35d0
> icmp6_input() at icmp6_input+0x685/frame 0xfffffe00831a37b0
> ip6_input() at ip6_input+0xa9a/frame 0xfffffe00831a3890
> netisr_dispatch_src() at netisr_dispatch_src+0xca/frame 0xfffffe00831a38e0
> ether_demux() at ether_demux+0x138/frame 0xfffffe00831a3910
> ether_nh_input() at ether_nh_input+0x34e/frame 0xfffffe00831a3970
> netisr_dispatch_src() at netisr_dispatch_src+0xca/frame 0xfffffe00831a39c0
> ether_input() at ether_input+0x69/frame 0xfffffe00831a3a20
> if_input() at if_input+0xa/frame 0xfffffe00831a3a30
> bge_rxeof() at bge_rxeof+0x4dc/frame 0xfffffe00831a3ab0
> bge_intr_task() at bge_intr_task+0x1a7/frame 0xfffffe00831a3b00
> taskqueue_run_locked() at taskqueue_run_locked+0x191/frame 
> 0xfffffe00831a3b80
> taskqueue_thread_loop() at taskqueue_thread_loop+0xc3/frame 
> 0xfffffe00831a3bb0
> fork_exit() at fork_exit+0x8a/frame 0xfffffe00831a3bf0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00831a3bf0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> Uptime: 1m28s
> Dumping 512 out of 7972 MB:..4%..13%..22%..32%..41%..54%..63%..72%..82%..91%
> 
> __curthread () at /opt/src/git-src/sys/amd64/include/pcpu_aux.h:55
> 55		__asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu,
> (kgdb) bt
> #0  __curthread () at /opt/src/git-src/sys/amd64/include/pcpu_aux.h:55
> #1  doadump (textdump=textdump at entry=1) at /opt/src/git-src/sys/kern/kern_sh
> utdown.c:399
> #2  0xffffffff806cf9ab in kern_reboot (howto=260) at 
> /opt/src/git-src/sys/kern/kern_shutdown.c:486
> #3  0xffffffff806cfe26 in vpanic (fmt=0xffffffff80a94e2f "%s", 
> ap=<optimized out>) at /opt/src/git-src/sys/kern/kern_shutdown.c:919
> #4  0xffffffff806cfc23 in panic (fmt=<unavailable>) at 
> /opt/src/git-src/sys/kern/kern_shutdown.c:843
> #5  0xffffffff80a342c7 in trap_fatal (frame=0xfffffe00831a3150, eva=296) at 
> /opt/src/git-src/sys/amd64/amd64/trap.c:946
> #6  0xffffffff80a3431f in trap_pfault (frame=frame at entry=0xfffffe00831a3150,
> usermode=false, signo=<optimized out>, signo at entry=0x0, ucode=<optimized 
> out>, ucode at entry=0x0) at /opt/src/git-src/sys/amd64/amd64/trap.c:765
> #7  0xffffffff80a3399a in trap (frame=0xfffffe00831a3150) at 
> /opt/src/git-src/sys/amd64/amd64/trap.c:443
> #8  <signal handler called>
> #9  __rw_rlock_int (rw=0x110) at /opt/src/git-src/sys/kern/kern_rwlock.c:679
> #10 0xffffffff8087cd07 in in6_lltable_lookup (llt=<optimized out>, 
> flags=<optimized out>, l3addr=<optimized out>) at /opt/src/git-src/sys/netin
> et6/in6.c:2349
> #11 0xffffffff80897dae in lla_lookup (llt=0x110, flags=2374593664, 
> flags at entry=0, l3addr=0xfffffe00831a3250) at /opt/src/git-src/sys/net/if_lla
> tbl.h:261
> #12 nd6_lookup (addr6=<optimized out>, flags=-1920373632, flags at entry=0, 
> ifp=<optimized out>) at /opt/src/git-src/sys/netinet6/nd6.c:1204
> #13 0xffffffff8089ff7b in find_pfxlist_reachable_router 
> (pr=0xfffff8002b64f100) at /opt/src/git-src/sys/netinet6/nd6_rtr.c:1817
> #14 pfxlist_onlink_check () at /opt/src/git-src/sys/netinet6/nd6_rtr.c:1861
> #15 0xffffffff8089fc5f in nd6_ra_input (m=<optimized out>, 
> m at entry=0xfffff8003a3e1d00, off=<optimized out>, icmp6len=<optimized out>, 
> icmp6len at entry=48) at /opt/src/git-src/sys/netinet6/nd6_rtr.c:597
> #16 0xffffffff80874aa5 in icmp6_input (mp=0xfffffe00831a37f8, 
> offp=0xfffffe00831a37f0, proto=<optimized out>) at 
> /opt/src/git-src/sys/netinet6/icmp6.c:780
> #17 0xffffffff8088beca in ip6_input (m=0xfffff8003a3e1d00) at 
> /opt/src/git-src/sys/netinet6/ip6_input.c:929
> #18 0xffffffff80806d6a in netisr_dispatch_src (proto=6, source=<optimized 
> out>, source at entry=0, m=0x0) at /opt/src/git-src/sys/net/netisr.c:1143
> #19 0xffffffff8080704f in netisr_dispatch (proto=272, m=0x10) at 
> /opt/src/git-src/sys/net/netisr.c:1234
> #20 0xffffffff807f3d58 in ether_demux (ifp=ifp at entry=0xfffff8003a30e800, 
> m=0xfffffe008d896c80) at /opt/src/git-src/sys/net/if_ethersubr.c:925
> #21 0xffffffff807f50fe in ether_input_internal (ifp=0xfffff8003a30e800, 
> m=0xfffffe008d896c80) at /opt/src/git-src/sys/net/if_ethersubr.c:711
> #22 ether_nh_input (m=<optimized out>) at /opt/src/git-src/sys/net/if_ethers
> ubr.c:741
> #23 0xffffffff80806d6a in netisr_dispatch_src (proto=proto at entry=5, 
> source=<optimized out>, source at entry=0, m=0x0, m at entry=0xfffff8003a3e1d00) 
> at /opt/src/git-src/sys/net/netisr.c:1143
> #24 0xffffffff8080704f in netisr_dispatch (proto=272, proto at entry=5, 
> m=0x10, m at entry=0xfffff8003a3e1d00) at /opt/src/git-src/sys/net/netisr.c:123
> 4
> #25 0xffffffff807f41a9 in ether_input (ifp=<optimized out>, 
> m=0xfffff8003a3e1d00) at /opt/src/git-src/sys/net/if_ethersubr.c:832
> #26 0xffffffff807f042a in if_input (ifp=0x110, ifp at entry=0xfffff8000516b800,
> sendmp=0xfffffe008d896c80, sendmp at entry=0xfffff8003a3e1d00) at 
> /opt/src/git-src/sys/net/if.c:4444
> #27 0xffffffff818eaabc in bge_rxeof (sc=<optimized out>, 
> sc at entry=0xfffffe00107d0000, rx_prod=rx_prod at entry=2, 
> holdlck=holdlck at entry=0) at /opt/src/git-src/sys/dev/bge/if_bge.c:4436
> #28 0xffffffff818e7d57 in bge_intr_task (arg=0xfffffe00107d0000, 
> pending=<optimized out>) at /opt/src/git-src/sys/dev/bge/if_bge.c:4666
> #29 0xffffffff80731d81 in taskqueue_run_locked (queue=queue at entry=0xfffff800
> 03890600) at /opt/src/git-src/sys/kern/subr_taskqueue.c:476
> #30 0xffffffff80733073 in taskqueue_thread_loop (arg=<optimized out>, 
> arg at entry=0xfffffe00107d7568) at /opt/src/git-src/sys/kern/subr_taskqueue.c:
> 793
> #31 0xffffffff8068b80a in fork_exit (callout=0xffffffff80732fb0 
> <taskqueue_thread_loop>, arg=0xfffffe00107d7568, frame=0xfffffe00831a3c00) 
> at /opt/src/git-src/sys/kern/kern_fork.c:1087
> #32 <signal handler called>
> (kgdb) frame 9
> #9  __rw_rlock_int (rw=0x110) at /opt/src/git-src/sys/kern/kern_rwlock.c:679
> 679		v = RW_READ_VALUE(rw);
> (kgdb) l
> 674		KASSERT(rw_wowner(rw) != td,
> 675		    ("rw_rlock: wlock already held for %s @ %s:%d",
> 676		    rw->lock_object.lo_name, file, line));
> 677		WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER, file, line, NULL);
> 678	
> 679		v = RW_READ_VALUE(rw);
> 680		if (__predict_false(LOCKSTAT_PROFILE_ENABLED(rw__acquire) ||
> 681		    !__rw_rlock_try(rw, td, &v, true LOCK_FILE_LINE_ARG)))
> 682			__rw_rlock_hard(rw, td, v LOCK_FILE_LINE_ARG);
> 683		else
> (kgdb) p rw
> $1 = (struct rwlock *) 0x110
> (kgdb) frame 10
> #10 0xffffffff8087cd07 in in6_lltable_lookup (llt=<optimized out>, 
> flags=<optimized out>, l3addr=<optimized out>) at /opt/src/git-src/sys/netin
> et6/in6.c:2349
> 2349			LLE_RLOCK(lle);
> (kgdb) l
> 2344			return (lle);
> 2345	
> 2346		if (flags & LLE_EXCLUSIVE)
> 2347			LLE_WLOCK(lle);
> 2348		else
> 2349			LLE_RLOCK(lle);
> 2350	
> 2351		/*
> 2352		 * If the afdata lock is not held, the LLE may have been unlinked 
> while
> 2353		 * we were blocked on the LLE lock.  Check for this case.
> (kgdb) p lle
> $2 = (struct llentry *) 0x0
> (kgdb) 
> 
> 
> 
> -- 
> Cheers,
> Cy Schubert <Cy.Schubert at cschubert.com <mailto:Cy.Schubert at cschubert.com>>
> FreeBSD UNIX:  <cy at FreeBSD.org <mailto:cy at FreeBSD.org>>   Web:  https://FreeBSD.org <https://freebsd.org/>
> NTP:           <cy at nwtime.org <mailto:cy at nwtime.org>>    Web:  https://nwtime.org <https://nwtime.org/>
> 
> 	The need of the many outweighs the greed of the few.



More information about the dev-commits-src-all mailing list