Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750803AbVIQBPj (ORCPT ); Fri, 16 Sep 2005 21:15:39 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750769AbVIQBPj (ORCPT ); Fri, 16 Sep 2005 21:15:39 -0400 Received: from scrub.xs4all.nl ([194.109.195.176]:31626 "EHLO scrub.xs4all.nl") by vger.kernel.org with ESMTP id S1750803AbVIQBPj (ORCPT ); Fri, 16 Sep 2005 21:15:39 -0400 Date: Sat, 17 Sep 2005 03:15:29 +0200 (CEST) From: Roman Zippel X-X-Sender: roman@scrub.home To: Nick Piggin cc: Russell King , Linux Kernel Mailing List , Dipankar Sarma Subject: Re: [PATCH 2/5] atomic: introduce atomic_inc_not_zero In-Reply-To: <4328D39C.2040500@yahoo.com.au> Message-ID: References: <43283825.7070309@yahoo.com.au> <4328387E.6050701@yahoo.com.au> <43285374.3020806@yahoo.com.au> <20050914230049.F30746@flint.arm.linux.org.uk> <20050914232106.H30746@flint.arm.linux.org.uk> <4328D39C.2040500@yahoo.com.au> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1041 Lines: 33 Hi, On Thu, 15 Sep 2005, Nick Piggin wrote: > Roman: any ideas about what you would prefer? You'll notice > atomic_inc_not_zero replaces rcuref_inc_lf, which is used several times > in the VFS. In the larger picture I'm not completely happy with these scalibilty patches, as they add extra overhead at the lower end. On a UP system in general nothing beats: spin_lock(); if (*ptr) ptr += 1; spin_unlock(); The main problem is here that the atomic functions are used in two basic situation: 1) interrupt synchronization 2) multiprocessor synchronization The atomic functions have to assume both, but on UP systems it often is a lot cheaper if they don't have to synchronize with interrupts. So replacing a spinlock with a few atomic operations can hurt UP performance. bye, Roman - 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/