[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH 6/6] Under conditions of high load, it was possible for xenvif to queue up very large numbers of packets before pushing them all upstream in one go. This was partially ameliorated by use of the NDIS_RECEIVE_FLAGS_RESOURCES flag.
-----Original Message----- From: Paul Durrant <xadimgnik@xxxxxxxxx> Sent: 28 July 2021 08:46 To: Martin Harvey <martin.harvey@xxxxxxxxxx>; win-pv-devel@xxxxxxxxxxxxxxxxxxxx Subject: Re: [PATCH 6/6] Under conditions of high load, it was possible for xenvif to queue up very large numbers of packets before pushing them all upstream in one go. This was partially ameliorated by use of the NDIS_RECEIVE_FLAGS_RESOURCES flag. > Well, we could do away with low resources and have NDIS take everything we > can throw at it, but some upper bound seems reasonable and it's an upper > bound in one place. Yes, I agree that's the right thing to do. > No, with a single DPC we don't have separate packet queue and packet > complete; that's the point. OK, I see what you mean - you'd just go from ring to complete in one through step. > - And if ring overflows, tough cookies. > How does a ring overflow? If there's no space in the ring then netback has > nowhere to put stuff so it puts back-pressure on its queuing discipline; > which is pfifo by default but could be something that doesn't tail drop. I should clarify I was assuming the thing upstream was dumb. Better to say, if things back up upstream, then tough cookies. That might involve tail drops or h/w throwaways somewhere. > I would very much prefer that we don't band-aid the two-DPC approach if it is > not doing the right thing. OK. Well I will have to go back and head-scratch for a bit. Perhaps the best way to proceed is: - I resubmit these patches with your suggested changes except the last one, so I can get most of my upstreaming done. - Consider how to rework the last one. General approach being to not use NDIS_FLAGS_RESOURCES but allow some fixed number of packets indicated up to NDIS (maybe configurable), as checked and enforced by XenNet. Then consider further re-work in XenVif eliminating the extra queue and DPC if possible, along with some interface changes to allow XenNet to indicate to XenVif when it is no longer possible to push packets up the stack. I will need to do a fair bit of internal testing. MH.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |