From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [RFC PATCH] ptr_ring: linked list fallback Date: Mon, 26 Feb 2018 03:10:35 +0200 Message-ID: <20180226031015-mutt-send-email-mst@kernel.org> References: <20180216094054-mutt-send-email-mst@kernel.org> <20180216.163205.742896307415861222.davem@davemloft.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-kernel@vger.kernel.org, john.fastabend@gmail.com, netdev@vger.kernel.org, jasowang@redhat.com To: David Miller Return-path: Content-Disposition: inline In-Reply-To: <20180216.163205.742896307415861222.davem@davemloft.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Fri, Feb 16, 2018 at 04:32:05PM -0500, David Miller wrote: > From: "Michael S. Tsirkin" > Date: Fri, 16 Feb 2018 09:40:54 +0200 > > > So pointer rings work fine, but they have a problem: > > make them too small and not enough entries fit. > > Make them too large and you start flushing your cache > > and running out of memory. > > > > This is a new idea of mine: a ring backed by a > > linked list. Once you run out of rin entries, > > instead of a drop you fall back on a list with > > a common lock. > > > > Should work well for the case where the ring is typically sized > > correctly, but will help address the fact that some user try to set e.g. > > tx queue length to 1000000. > > > > My hope this will move us closer to direction where e.g. fw codel can > > use ptr rings without locking at all. > > The API is still very rough, and I really need to take a hard look > > at lock nesting. > > > > Completely untested, sending for early feedback/flames. > > > > Signed-off-by: Michael S. Tsirkin > > So the idea is that if a user sets a really huge TX queue length, we allocate > a ptr_ring which is smaller, and use the backup linked list when necessary > to provide the requested TX queue length legitimately. > > Right? Exactly, thanks for adding this clarification. -- MST