From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753320Ab0CUOoN (ORCPT ); Sun, 21 Mar 2010 10:44:13 -0400 Received: from www.tglx.de ([62.245.132.106]:54928 "EHLO www.tglx.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752822Ab0CUOoL (ORCPT ); Sun, 21 Mar 2010 10:44:11 -0400 Date: Sun, 21 Mar 2010 15:43:47 +0100 (CET) From: Thomas Gleixner To: "Eric W. Biederman" cc: Yinghai Lu , Ingo Molnar , "H. Peter Anvin" , Andrew Morton , Julia Lawall , Suresh Siddha , LKML , linux-arch@vger.kernel.org Subject: Re: [PATCH] irq: Start the transition of irq_chip methods taking a desc In-Reply-To: Message-ID: References: <1267697339-5491-1-git-send-email-yinghai@kernel.org> <1267697339-5491-7-git-send-email-yinghai@kernel.org> <4B900250.8020100@kernel.org> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Eric, On Sun, 21 Mar 2010, Eric W. Biederman wrote: > > With SPARSE_IRQ irq_to_desc becomes an unnecessary lookup operation on > the fast path of dispatching irqs to their handlers. We can avoid > this cost by passing an irq_desc pointer instead of using an integer > irq token to the irq_chip methods. > > A single patch to convert all of the architectures is an unreviewable > 2000+ line patch. A gradual transition scenario with two sets of > irq_chip methods in irq_chip is an unmanageable mess in kernel/irq. > > So instead I define some macros so the generic irq code in kernel/irq/ > can compile either way based on a boolean Kconfig variable > CONFIG_CHIP_PARAM_DESC. This allows us to convert one architecture at > a time, reducing the follow on patches to manageable proportions. It > is a little bit ugly but it is much better than the alternatives, and > as soon as we finish the transition we can kill the macros. > > I introduce the macros CHIP_ARG, CHIP_VAR, and CHIP_PARAM where > appropriate. I change a few declarations of irq as int to unsigned > int. I normalize the variables names in the functions that call > chip methods to ensure that I have the variables irq and desc present > allowing CHIP_ARG to work properly. Most importantly none of the irq > logic changes with this patch. I like that approach very much. Is the output binary equivivalent? Thanks, tglx