Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
Re: igc(4) tso
To:
Moritz Buhl <mbuhl@openbsd.org>
Cc:
tech@openbsd.org, bket@openbsd.org, jan@openbsd.org
Date:
Fri, 3 May 2024 14:13:44 +0200

Download raw body.

Thread
  • Alexander Bluhm:

    igc(4) tso

    • Alexander Bluhm:

      igc(4) tso

  • On Thu, May 02, 2024 at 11:58:45PM +0200, Alexander Bluhm wrote:
    > On Wed, May 01, 2024 at 06:24:36PM +0200, Moritz Buhl wrote:
    > > The VLAN_HWTAGGING diff is in snapshots for a while, I saw no
    > > additional feedback.  How about adding TSO to igc(4) next?
    > >
    > > I ran thorough tests on bluhms' setup:
    > > http://bluhm.genua.de/netlink/results/2024-04-30T00%3A37%3A41Z/netlink.html
    > > and additional tests on my home router using pppoe(4) and vlan(4).
    > 
    > I did test it with more options.  With jumbo frames I see this crash.
    > Next I will test igc with jumbos, but without diff.
    
    Looks like igc(4) with jumbo frames is broken regardless of the TSO
    diff.
    
    panic: pool_cache_item_magic_check: mcl2k2 cpu free list modified: item addr 0xfffffd80bc08b480+16 0x33c144d5e0383f2e!=0x4fa073e50b458552
    Stopped at      db_enter+0x14:  popq    %rbp
        TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
     393473  76617   1000  0x18100002          0    2  tcpbench
     117181  23314      0     0x14000      0x200    1  softnet3
     379304  26108      0     0x14000      0x200    3  softnet0
    db_enter() at db_enter+0x14
    panic(ffffffff82108f78) at panic+0xc3
    pool_cache_get(ffffffff8261ca18) at pool_cache_get+0x24a
    pool_get(ffffffff8261ca18,2) at pool_get+0x62
    m_clget(0,2,802) at m_clget+0x1b4
    igc_get_buf(ffff800000304688,381) at igc_get_buf+0x9f
    igc_rxfill(ffff800000304688) at igc_rxfill+0xce
    igc_intr_queue(ffff8000002fd6d8) at igc_intr_queue+0x55
    intr_handler(ffff80005c0417e0,ffff80000009f280) at intr_handler+0x72
    Xintr_ioapic_edge6_untramp() at Xintr_ioapic_edge6_untramp+0x18f
    acpicpu_idle() at acpicpu_idle+0x11f
    sched_idle(ffff80005a60dff0) at sched_idle+0x272
    end trace frame: 0x0, count: 3
    https://www.openbsd.org/ddb.html describes the minimum info required in bug
    reports.  Insufficient info makes it difficult to find and fix bugs.
    ddb{5}> client_loop: send disconnect: Broken pipe
    
    
    
  • Alexander Bluhm:

    igc(4) tso