From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261624AbVAHVit (ORCPT ); Sat, 8 Jan 2005 16:38:49 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261628AbVAHVit (ORCPT ); Sat, 8 Jan 2005 16:38:49 -0500 Received: from viper.oldcity.dca.net ([216.158.38.4]:29353 "HELO viper.oldcity.dca.net") by vger.kernel.org with SMTP id S261624AbVAHVir (ORCPT ); Sat, 8 Jan 2005 16:38:47 -0500 Subject: Re: Make pipe data structure be a circular list of pages, rather than From: Lee Revell To: Chris Friesen Cc: Mike Waychison , Linus Torvalds , Alan Cox , Oleg Nesterov , William Lee Irwin III , Linux Kernel Mailing List In-Reply-To: <41DF1F3D.3030006@nortelnetworks.com> References: <41DE9D10.B33ED5E4@tv-sign.ru> <1105113998.24187.361.camel@localhost.localdomain> <41DEF81B.60905@sun.com> <41DF1F3D.3030006@nortelnetworks.com> Content-Type: text/plain Date: Sat, 08 Jan 2005 16:38:45 -0500 Message-Id: <1105220326.24592.98.camel@krustophenia.net> Mime-Version: 1.0 X-Mailer: Evolution 2.0.3 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2005-01-07 at 17:46 -0600, Chris Friesen wrote: > Mike Waychison wrote: > > > This got me to thinking about how you can heuristically optimize away > > coalescing support and still allow PAGE_SIZE bytes minimum in the > > effective buffer. > > While coalescing may be a win in some cases, there should also be some > way to tell the kernel to NOT coalesce, to handle the case where you > want minimum latency at the cost of some throughput. Many latency critical apps use (tmpfs mounted) FIFO's for IPC; the Linux FIFO being one of the fastest known IPC mechanisms. Each client in the JACK (http://jackit.sf.net) graph wakes the next one by writing a single byte to a FIFO. Ardour's GUI, control, and audio threads interact via a similar mechanism. How would you expect this change to impact the inter thread wakeup latency? It's confusing when people say "performance", meaning "increased throughput albeit with more latency". For many people that's a regression. These apps *certainly* care about performance, they just don't define it in terms of throughput. And yes we do know futexes are the right tool for this but they weren't available at the time and aren't available on 2.4. Lee