`<div dir="ltr">Let me take a look.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 2, 2016 at 5:23 AM, Saso Kiselkov <span dir="ltr"><<a href="mailto:skiselkov.ml@gmail.com" target="_blank">skiselkov.ml@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Well what I know so far is that after a fixed number of packets<br>
(probably after filling up the RX ring), we get a storm of<br>
RX_FIFO_OVERFLOW_INT | NO_RXDESC_INT interrupts, probably because the<br>
adapter is telling us that it filled up the RX ring and we didn't let it<br>
know that we dequeued the old packets. Unfortunately, for the life of<br>
me, I can't figure out how we're supposed to let it know that. I've been<br>
staring at the drivers (both our and FreeBSD's) for hours and to me it's<br>
all just a jumble of "DMA sync this, write reg that".<br>
<span class="im HOEnZb"><br>
--<br>
Saso<br>
<br>
On 10/2/16 3:40 AM, Garrett D'Amore wrote:<br>
</span><div class="HOEnZb"><div class="h5">> probably we should do something. like reap the descriptors. i am afk but the usual strategy is to treat these kinds of interrupts just like normal rx. after that you should ack the interrupt of course.<br>
><br>
> Sent from my iPhone<br>
><br>
>> On Oct 1, 2016, at 6:31 PM, Saso Kiselkov <<a href="mailto:skiselkov.ml@gmail.com">skiselkov.ml@gmail.com</a>> wrote:<br>
>><br>
>>> On 10/2/16 12:23 AM, Robert Mustacchi wrote:<br>
>>>> On 10/1/16 15:15 , Saso Kiselkov wrote:<br>
>>>>> On 10/1/16 11:45 PM, Dale Ghent wrote:<br>
>>>>><br>
>>>>>> On Oct 1, 2016, at 3:36 PM, Saso Kiselkov <<a href="mailto:skiselkov.ml@gmail.com">skiselkov.ml@gmail.com</a>> wrote:<br>
>>>>>><br>
>>>>>> So I'm playing around with a box that has an on-board Realtek NIC and<br>
>>>>>> periodically, about once every 2-5 minutes, the network just goes out to<br>
>>>>>> lunch and stops responding to ping or attempts to send anything from<br>
>>>>>> the box. I noticed that while doing so, the box is getting floored by<br>
>>>>>> interrupts from the NIC, so I see tons of rge_intr activity and one CPU<br>
>>>>>> core receiving about 160000 interrupts per second (other cores are idle).<br>
>>>>><br>
>>>>> One core getting all the interrupts is expected, as both these chips and the driver do not support RSS.<br>
>>>>><br>
>>>>> The key thing here is to see what rge_intr() is actually doing. It has 2 outcomes: It identifies the interrupt type, processes it, then returns to the DDI that it was claimed. IF it doesn't identify the interrupt, rge_intr() returns and reports unclaimed to the DDI.<br>
>>>>><br>
>>>>> Knowing this info would be a good first step in figuring out what's going on.<br>
>>>><br>
>>>> Gah, I'm an idiot, it's actually a bitmask of two things:<br>
>>>><br>
>>>> RX_FIFO_OVERFLOW_INT | NO_RXDESC_INT<br>
>>>><br>
>>>> Apparently, we don't give it enough rx descriptors. Trying to now figure<br>
>>>> out where to change that...<br>
>>><br>
>>> There'll always be cases where we don't have enough rx descriptors for<br>
>>> devices. Presumably we shouldn't actually care about receiving that<br>
>>> interrupt. Do you happen to have a specification for the device handy?<br>
>>><br>
>>> Given that we're not doing anything with the NO_RXDESC_INT, we probably<br>
>>> should just mask it on the device if possible.<br>
>><br>
>> Just as a general FYI, I'm dealing with 8168G version of the MAC.<br>
>> FreeBSD does have a driver that supports it, but since the driver there<br>
>> appears home-grown (similar to ours), trying to transplant it would be a<br>
>> major undertaking. I'll try to identify the major differences between<br>
>> the versions we support and the 8168G, but of course, this being<br>
>> hardware, they are many and few of them make any logical sense.<br>
>><br>
>> --<br>
>> Saso<br>
>><br>
><br>
><br>
<br>
<br>
------------------------------<wbr>-------------<br>
</div></div><span class="im HOEnZb">illumos-networking<br>
Archives: <a href="https://www.listbox.com/member/archive/182193/=now" rel="noreferrer" target="_blank">https://www.listbox.com/<wbr>member/archive/182193/=now</a><br>
RSS Feed: <a href="https://www.listbox.com/member/archive/rss/182193/22035935-aad458cf" rel="noreferrer" target="_blank">https://www.listbox.com/<wbr>member/archive/rss/182193/<wbr>22035935-aad458cf</a><br>
Modify Your Subscription: <a href="https://www.listbox.com/member/?member_id=22035935&id_secret=22035935-4809d4da" rel="noreferrer" target="_blank">https://www.listbox.com/<wbr>member/?member_id=22035935&id_<wbr>secret=22035935-4809d4da</a><br>
</span><div class="HOEnZb"><div class="h5">Powered by Listbox: <a href="http://www.listbox.com" rel="noreferrer" target="_blank">http://www.listbox.com</a><br>
</div></div></blockquote></div><br></div>
`