Re: soft-lockups in sunvnet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On (08/08/14 11:46), David Miller wrote:
> Date: Fri, 08 Aug 2014 11:46:01 -0700 (PDT)
> From: David Miller <davem@xxxxxxxxxxxxx>
> To: sowmini.varadhan@xxxxxxxxxx
> Cc: david.stevens@xxxxxxxxxx, karl.volz@xxxxxxxxxx,
>  sparclinux@xxxxxxxxxxxxxxx
> Subject: Re: soft-lockups in sunvnet
> X-Mailer: Mew version 6.5 on Emacs 24.1 / Mule 6.0 (HANACHIRUSATO)
> 
> From: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
> Date: Fri, 8 Aug 2014 14:39:39 -0400
> 
> 
> So you are able to successfully trigger the tasklet from vnet_event(),
> and have that tasklet do the queue wakeups?

yes.

> But removing the backoff logic from __vnet_tx_trigger() does work,
> right?

It "works" to the extent that it recovers. You get a lot more 
errors, much more easily, though -  thus throughput sinks. 
I dont know how the heuristics were determined, but they seem to help...
 
> I don't think vnet_walk_rx() is really able to handle any kind of real
> failures from vnet_send_ack() properly.  If we send one or more
> VIO_DRING_ACTIVE ACKs and then can't send the VIO_DRING_STOPPED one
> out, the ring will likely be left in an inconsistent state.

I just found out last week that you dont actually need to set the
VIO_ACK_ENABLE (and thus trigger the ACTIVE acks)- evidently the protocol
is such that the STOPPED ldc message is sufficient. 

So one patch that I'm working on lining up (after due testing etc)
is to not set VIO_ACK_ENABLE in vnet_start_xmit- it also helps perf
slightly because it reduces the trips through ldc (and potentail
for filling up the ldc ring).

--Sowmini

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux