linux-mips
[Top] [All Lists]

Re: [PATCH V2 1/2] asm-offsets.c: adding #define to break circular depen

To: Jim Quinlan <jim2101024@gmail.com>
Subject: Re: [PATCH V2 1/2] asm-offsets.c: adding #define to break circular dependency
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 30 Aug 2012 16:15:25 +0200
Cc: David Daney <ddaney.cavm@gmail.com>, linux-mips@linux-mips.org
In-reply-to: <CANCKTBsXhKNtNJxYhyn4Ygt=c3=4ZT-quB3L1XJVFC4y-mWM7Q@mail.gmail.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
References: <1346279647-27955-1-git-send-email-jim2101024@gmail.com> <503E9F66.9030200@gmail.com> <CANCKTBsXhKNtNJxYhyn4Ygt=c3=4ZT-quB3L1XJVFC4y-mWM7Q@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
On Thu, Aug 30, 2012 at 10:06:30AM -0400, Jim Quinlan wrote:

> I'm not sure the tangle is so easily undone.  The first dependency I see is
> 
> asm-offsets.c
> asm/processors.h
> linux/cpumask.h
> linux/kernel.h
> linux/bitops.h
> asm/bitops.h
> linux/irqflags.h
> asm/irqflags.h
> 
> When compared to other architectures, the MIPS asm/bitops.h seems to
> include more files at the top, including linux/irqflags.h.
> Any suggestions?

This is because MIPS bitops for some ancient processors which don't have
atomic operations and Cavium cnMIPS cores where disabling interrupts is
faster than the atomic operations are implemented by disabling interrupts.

This makes these atomic operations relativly bloated in terms of code size
generated and may it'd be a good idea to outline the bits.  With a bit
of luck we even get better cache locality - and fewer header file
inclusions.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>