[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-kernel
Subject: Re: [3/10 PATCH] inline wake_up_bit
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2008-06-25 20:37:58
Message-ID: 200806252237.58046.vda.linux () googlemail ! com
[Download RAW message or body]
On Wednesday 25 June 2008 18:01, Mikulas Patocka wrote:
> > Ingo's suggestion to talk to gcc people to remedy
> > insane call convention sounds as a more workable solution.
> >
> > BTW, i386 uses regparm call convention, is similar trick
> > possible for sparc64?
>
> Sparc64 has register windows: it passes arguments in registers, but it
> must allocate space for that registers. If the call stack is too deep (8
> levels), the CPU runs out of registers and starts spilling the registers
> of the function 8-levels-deep to the stack.
>
> The stack usage could be reduced to 176 bytes with little work from gcc
> developers and to 128 bytes with more work (ABI change). If you wanted to
Wow, it's nearly x2 reduction.
ABI change in not a problem for kernel, since it is a "freestanding
application". Exactly like i386 switched to regparm, which is a different ABI.
> go below 128 bytes, you could use one register to indicate number of used
> registers and modify the spill/fill handlers to load only that number of
> registers and reduce the stack usage even more --- that would be a big
> code change in both gcc and linux.
--
vda
--
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/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic