svn commit: r209060 - head/sys/dev/ixgbe

Jack Vogel jfvogel at gmail.com
Fri Jun 11 20:02:21 UTC 2010


HMMMMM, I put in a change in response to some people having problems with
mbuf resources,  it seemed to work ok, but now i'm kinda concerned. Does
this
happen every time you bring the device up?

In the routine 'ixgbe_setup_receive_ring()'  I changed a couple of
M_NOWAIT's
to M_WAITOK, thinking that it would be ok in this code, can you test it,
change
it back to M_NOWAIT, and see if this symptom goes away?

How many cores does the machine have, I'm guessing its big?

Jack


On Fri, Jun 11, 2010 at 12:44 PM, Bjoern A. Zeeb <bz at freebsd.org> wrote:

> On Fri, 11 Jun 2010, Jack F Vogel wrote:
>
>  Author: jfv
>> Date: Fri Jun 11 19:03:59 2010
>> New Revision: 209060
>> URL: http://svn.freebsd.org/changeset/base/209060
>>
>> Log:
>>  Remove a disable_queue from the beginning of the
>>  interrupt handler, automask handles it.
>>  Also, add in msix vector descriptions.
>>
>>  MFC for 8.1 asap
>>
>
> Hi Jack,
>
> I just tried a couple of days old HEAD before going to update to this one
> and found hundreds of the follwoing "hanging" the machine as the console
> stays
> busy for .. well don't know yet... load: 1.84  cmd: ifconfig 1386 [*ix0]
> 399.98r 0.00u 0.07s 0% 1364k
>
> ...
> uma_zalloc_arg: zone "mbuf_packet" with the following non-sleepable locks
> held:
> exclusive sleep mutex ix0:rx(0) (ix0:rx(0)) r = 0 (0xffffff0001c25808)
> locked @ sys/modules/ixgbe/../../dev/ixgbe/ixgbe.c:3615
> exclusive sleep mutex ix0 (IXGBE Core Lock) r = 0 (0xffffff80110a73b8)
> locked @ sys/modules/ixgbe/../../dev/ixgbe/ixgbe.c:1197
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wt_delta 15.e4dd9523a934dd00 too
> short rapper+0x2a
> kdb_backtrace() at kdb_backtrace+0x32
> _witness_debugger() at _witness_debugger+0x2b
> witness_warn() at witness_warn+0x314
> uma_zalloc_arg() at uma_zalloc_arg+0x3e
> ixgbe_init_locked() at ixgbe_init_locked+0x6cd
> ixgbe_init() at ixgbe_init+0x39
> ether_ioctl() at ether_ioctl+0x71
> ...
>
>
> This happened on:
>        foo.example.net# ifconfig ix0 up
> after kldload ixgbe.
>
> /bz
>
>
>
>  Modified:
>>  head/sys/dev/ixgbe/ixgbe.c
>>
>> Modified: head/sys/dev/ixgbe/ixgbe.c
>>
>> ==============================================================================
>> --- head/sys/dev/ixgbe/ixgbe.c  Fri Jun 11 18:46:34 2010        (r209059)
>> +++ head/sys/dev/ixgbe/ixgbe.c  Fri Jun 11 19:03:59 2010        (r209060)
>> @@ -1365,7 +1365,6 @@ ixgbe_msix_que(void *arg)
>>        bool            more_tx, more_rx;
>>        u32             newitr = 0;
>>
>> -       ixgbe_disable_queue(adapter, que->msix);
>>        ++que->irqs;
>>
>>        more_rx = ixgbe_rxeof(que, adapter->rx_process_limit);
>> @@ -2121,6 +2120,9 @@ ixgbe_allocate_msix(struct adapter *adap
>>                        device_printf(dev, "Failed to register QUE
>> handler");
>>                        return (error);
>>                }
>> +#if __FreeBSD_version >= 800504
>> +               bus_describe_intr(dev, que->res, que->tag, "que %d", i);
>> +#endif
>>                que->msix = vector;
>>                adapter->que_mask |= (u64)(1 << que->msix);
>>                /*
>> @@ -2155,6 +2157,9 @@ ixgbe_allocate_msix(struct adapter *adap
>>                device_printf(dev, "Failed to register LINK handler");
>>                return (error);
>>        }
>> +#if __FreeBSD_version >= 800504
>> +       bus_describe_intr(dev, adapter->res, adapter->tag, "link");
>> +#endif
>>        adapter->linkvec = vector;
>>        /* Tasklets for Link, SFP and Multispeed Fiber */
>>        TASK_INIT(&adapter->link_task, 0, ixgbe_handle_link, adapter);
>>
>>
>


More information about the svn-src-all mailing list