Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761352AbXFRKsQ (ORCPT ); Mon, 18 Jun 2007 06:48:16 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759826AbXFRKr7 (ORCPT ); Mon, 18 Jun 2007 06:47:59 -0400 Received: from mail-gw3.sa.ew.hu ([212.108.200.82]:34525 "EHLO mail-gw3.sa.ew.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751616AbXFRKr6 (ORCPT ); Mon, 18 Jun 2007 06:47:58 -0400 To: tgraf@suug.ch CC: davem@davemloft.net, akpm@linux-foundation.org, viro@ftp.linux.org.uk, alan@lxorguk.ukuu.org.uk, netdev@vger.kernel.org, linux-kernel@vger.kernel.org In-reply-to: <20070618104059.GY521@postel.suug.ch> (message from Thomas Graf on Mon, 18 Jun 2007 12:40:59 +0200) Subject: Re: [PATCH] fix race in AF_UNIX References: <20070618.021813.105401188.davem@davemloft.net> <20070618.023520.102546505.davem@davemloft.net> <20070618103241.GX521@postel.suug.ch> <20070618104059.GY521@postel.suug.ch> Message-Id: From: Miklos Szeredi Date: Mon, 18 Jun 2007 12:47:17 +0200 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1827 Lines: 37 > * Thomas Graf 2007-06-18 12:32 > > * Miklos Szeredi 2007-06-18 11:44 > > > Garbage collection only ever happens, if the app is sending AF_UNIX > > > sockets over AF_UNIX sockets. Which is a rather rare case. And which > > > is basically why this bug went unnoticed for so long. > > > > > > So my second patch only affects the performance of _exactly_ those > > > apps which might well be bitten by the bug itself. > > > > That's not entirely the truth. It affects all applications using > > AF_UNIX sockets while file descriptors are being transfered. I > > agree that the performance impact is not severe on most systems > > but if file descriptors are being transfered continously by just > > a single application it can become rather severe. > > Also think of the scenario where an application, deliberately or not, > begins a file descriptor tranfser using sendmsg() and the receiving > part never invokes recvmsg() to decrement the inflight counters > again. Every unix socket that gets closed would result in a gc call > locking all sockets. And if some of the sent files were unix sockets, rightly so, since the sent sockets might need to be garbage collected. And BTW the whole gc is done with the unix_table_lock held, so it will stop some socket operations anyway. The fact that it needs to stop some more operations is a necessary thing. But we are talking about a _spinlocked_ region, which for zillions of sockets might run for a long time, but it's not as if it's really going to affect performance in real cases. Miklos - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/