Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-05 Thread Adrian Bunk
On Wed, Dec 05, 2007 at 11:18:45AM +0100, Ingo Molnar wrote:
> 
> * Adrian Bunk <[EMAIL PROTECTED]> wrote:
> 
> > On Tue, Dec 04, 2007 at 07:19:45PM -0500, Jeff Dike wrote:
> > > On Wed, Dec 05, 2007 at 12:15:19AM +0100, Adrian Bunk wrote:
> > > > UML can't switch to the regparm(3) convention on i386 since it links 
> > > > with userspace code, so if assembler code uses this calling convention 
> > > > we need the C prototype of it annotated accordingly.
> > > 
> > > We're not talking about a global calling convention switch, right?
> > > We're talking about selected functions only, in which case, the fact
> > > that UML links against libc is irrelevant.
> > 
> > The non-UML i386 switched to globally using the regparm(3) calling 
> > convention in 2.6.20.
> 
> maybe i'm a bit dense, but why cannot UML switch to -mregparm=3 too?

The UML kernel is linked against libc...

>   Ingo

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-05 Thread Ingo Molnar

* Adrian Bunk <[EMAIL PROTECTED]> wrote:

> On Tue, Dec 04, 2007 at 07:19:45PM -0500, Jeff Dike wrote:
> > On Wed, Dec 05, 2007 at 12:15:19AM +0100, Adrian Bunk wrote:
> > > UML can't switch to the regparm(3) convention on i386 since it links 
> > > with userspace code, so if assembler code uses this calling convention 
> > > we need the C prototype of it annotated accordingly.
> > 
> > We're not talking about a global calling convention switch, right?
> > We're talking about selected functions only, in which case, the fact
> > that UML links against libc is irrelevant.
> 
> The non-UML i386 switched to globally using the regparm(3) calling 
> convention in 2.6.20.

maybe i'm a bit dense, but why cannot UML switch to -mregparm=3 too?

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-05 Thread Adrian Bunk
On Tue, Dec 04, 2007 at 07:19:45PM -0500, Jeff Dike wrote:
> On Wed, Dec 05, 2007 at 12:15:19AM +0100, Adrian Bunk wrote:
> > UML can't switch to the regparm(3) convention on i386 since it links 
> > with userspace code, so if assembler code uses this calling convention 
> > we need the C prototype of it annotated accordingly.
> 
> We're not talking about a global calling convention switch, right?
> We're talking about selected functions only, in which case, the fact
> that UML links against libc is irrelevant.

The non-UML i386 switched to globally using the regparm(3) calling 
convention in 2.6.20.

>   Jeff

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Jeff Dike
On Wed, Dec 05, 2007 at 12:15:19AM +0100, Adrian Bunk wrote:
> UML can't switch to the regparm(3) convention on i386 since it links 
> with userspace code, so if assembler code uses this calling convention 
> we need the C prototype of it annotated accordingly.

We're not talking about a global calling convention switch, right?
We're talking about selected functions only, in which case, the fact
that UML links against libc is irrelevant.

Jeff

-- 
Work email - jdike at linux dot intel dot com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Jeff Dike
On Tue, Dec 04, 2007 at 11:45:43PM +0100, Adrian Bunk wrote:
> > the removal of FASTCALL is fine: the default (and only) compiler model 
> > for x86 (32-bit) is regparm(3), so the regparm(3) macro is equivalent to 
> > the empty one in linux/linkage.h.
> >...
> 
> But please ensure that they stay in assembler code also used by UML.

Why?  AFAIK, whatever works for x86 will also be fine for UML.

Jeff

-- 
Work email - jdike at linux dot intel dot com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Adrian Bunk
On Tue, Dec 04, 2007 at 02:57:55PM -0800, Harvey Harrison wrote:
> 
> On Tue, 2007-12-04 at 23:45 +0100, Adrian Bunk wrote:
> > On Tue, Dec 04, 2007 at 11:27:17PM +0100, Ingo Molnar wrote:
> > > 
> > > * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > > 
> > > > On Tue, 2007-12-04 at 22:32 +0100, Ingo Molnar wrote:
> > > > > * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > > > > 
> > > > > > I'm not sure if the definition of asmlinkage and prevent_tail_call 
> > > > > > can 
> > > > > > be omitted as well and let the linux/linkage.h version get picked 
> > > > > > up 
> > > > > > instead.
> > > > > 
> > > > > no, we cannot remove them - asmlinkage is needed for the syscall 
> > > > > entry (and other entry code) to work, the and the prevent_tail_call 
> > > > > works around a compiler bug. (which might or might not be fixed in 
> > > > > latest gcc - but we generally dont remove workarounds unless we are 
> > > > > really sure it's fine.)
> > > > 
> > > > OK, but if this patch is acceptable, then there is no more places in 
> > > > the tree that define the FASTCALL macro, other than the empty default 
> > > > in include/linux/linkage.h.  So I think a second step would be to 
> > > > start to get rid of FASTCALL callers elsewhere in the tree...thoughts?
> > > 
> > > the removal of FASTCALL is fine: the default (and only) compiler model 
> > > for x86 (32-bit) is regparm(3), so the regparm(3) macro is equivalent to 
> > > the empty one in linux/linkage.h.
> > >...
> > 
> > But please ensure that they stay in assembler code also used by UML.
> 
> I'm curious how UML is using FASTCALL/fastcall.  Any pointers?

UML can't switch to the regparm(3) convention on i386 since it links 
with userspace code, so if assembler code uses this calling convention 
we need the C prototype of it annotated accordingly.

> Harvey

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Harvey Harrison

On Tue, 2007-12-04 at 23:45 +0100, Adrian Bunk wrote:
> On Tue, Dec 04, 2007 at 11:27:17PM +0100, Ingo Molnar wrote:
> > 
> > * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > 
> > > On Tue, 2007-12-04 at 22:32 +0100, Ingo Molnar wrote:
> > > > * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > > > 
> > > > > I'm not sure if the definition of asmlinkage and prevent_tail_call 
> > > > > can 
> > > > > be omitted as well and let the linux/linkage.h version get picked up 
> > > > > instead.
> > > > 
> > > > no, we cannot remove them - asmlinkage is needed for the syscall 
> > > > entry (and other entry code) to work, the and the prevent_tail_call 
> > > > works around a compiler bug. (which might or might not be fixed in 
> > > > latest gcc - but we generally dont remove workarounds unless we are 
> > > > really sure it's fine.)
> > > 
> > > OK, but if this patch is acceptable, then there is no more places in 
> > > the tree that define the FASTCALL macro, other than the empty default 
> > > in include/linux/linkage.h.  So I think a second step would be to 
> > > start to get rid of FASTCALL callers elsewhere in the tree...thoughts?
> > 
> > the removal of FASTCALL is fine: the default (and only) compiler model 
> > for x86 (32-bit) is regparm(3), so the regparm(3) macro is equivalent to 
> > the empty one in linux/linkage.h.
> >...
> 
> But please ensure that they stay in assembler code also used by UML.

I'm curious how UML is using FASTCALL/fastcall.  Any pointers?

Harvey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Adrian Bunk
On Tue, Dec 04, 2007 at 11:27:17PM +0100, Ingo Molnar wrote:
> 
> * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> 
> > On Tue, 2007-12-04 at 22:32 +0100, Ingo Molnar wrote:
> > > * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > > 
> > > > I'm not sure if the definition of asmlinkage and prevent_tail_call can 
> > > > be omitted as well and let the linux/linkage.h version get picked up 
> > > > instead.
> > > 
> > > no, we cannot remove them - asmlinkage is needed for the syscall 
> > > entry (and other entry code) to work, the and the prevent_tail_call 
> > > works around a compiler bug. (which might or might not be fixed in 
> > > latest gcc - but we generally dont remove workarounds unless we are 
> > > really sure it's fine.)
> > 
> > OK, but if this patch is acceptable, then there is no more places in 
> > the tree that define the FASTCALL macro, other than the empty default 
> > in include/linux/linkage.h.  So I think a second step would be to 
> > start to get rid of FASTCALL callers elsewhere in the tree...thoughts?
> 
> the removal of FASTCALL is fine: the default (and only) compiler model 
> for x86 (32-bit) is regparm(3), so the regparm(3) macro is equivalent to 
> the empty one in linux/linkage.h.
>...

But please ensure that they stay in assembler code also used by UML.

>   Ingo

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Harvey Harrison
On Tue, 2007-12-04 at 23:27 +0100, Ingo Molnar wrote:
> * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > OK, but if this patch is acceptable, then there is no more places in 
> > the tree that define the FASTCALL macro, other than the empty default 
> > in include/linux/linkage.h.  So I think a second step would be to 
> > start to get rid of FASTCALL callers elsewhere in the tree...thoughts?
> 
> the removal of FASTCALL is fine: the default (and only) compiler model 
> for x86 (32-bit) is regparm(3), so the regparm(3) macro is equivalent to 
> the empty one in linux/linkage.h.
> 
> btw., removal of FASTCALL from the tree is worthwile after this: it 
> should probably be done via the -mm tree, because it's more of a generic 
> kernel matter than an arch/x86 matter.
> 
>   Ingo

Agreed, just noting that there was nobody defining it anymore, it's
widespread enough that I'll submit them separately to appropriate
maintainers and they can dribble in over time.

Cheers,

Harvey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Ingo Molnar

* Harvey Harrison <[EMAIL PROTECTED]> wrote:

> On Tue, 2007-12-04 at 22:32 +0100, Ingo Molnar wrote:
> > * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> > 
> > > I'm not sure if the definition of asmlinkage and prevent_tail_call can 
> > > be omitted as well and let the linux/linkage.h version get picked up 
> > > instead.
> > 
> > no, we cannot remove them - asmlinkage is needed for the syscall 
> > entry (and other entry code) to work, the and the prevent_tail_call 
> > works around a compiler bug. (which might or might not be fixed in 
> > latest gcc - but we generally dont remove workarounds unless we are 
> > really sure it's fine.)
> 
> OK, but if this patch is acceptable, then there is no more places in 
> the tree that define the FASTCALL macro, other than the empty default 
> in include/linux/linkage.h.  So I think a second step would be to 
> start to get rid of FASTCALL callers elsewhere in the tree...thoughts?

the removal of FASTCALL is fine: the default (and only) compiler model 
for x86 (32-bit) is regparm(3), so the regparm(3) macro is equivalent to 
the empty one in linux/linkage.h.

btw., removal of FASTCALL from the tree is worthwile after this: it 
should probably be done via the -mm tree, because it's more of a generic 
kernel matter than an arch/x86 matter.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Harvey Harrison
On Tue, 2007-12-04 at 22:32 +0100, Ingo Molnar wrote:
> * Harvey Harrison <[EMAIL PROTECTED]> wrote:
> 
> > I'm not sure if the definition of asmlinkage and prevent_tail_call can 
> > be omitted as well and let the linux/linkage.h version get picked up 
> > instead.
> 
> no, we cannot remove them - asmlinkage is needed for the syscall entry 
> (and other entry code) to work, the and the prevent_tail_call works 
> around a compiler bug. (which might or might not be fixed in latest gcc 
> - but we generally dont remove workarounds unless we are really sure 
> it's fine.)

OK, but if this patch is acceptable, then there is no more places in the
tree that define the FASTCALL macro, other than the empty default in
include/linux/linkage.h.  So I think a second step would be to start to
get rid of FASTCALL callers elsewhere in the tree...thoughts?

Cheers,

Harvey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC PATCH] x86: Unify include/asm-x86/linkage_[32|64].h

2007-12-04 Thread Ingo Molnar

* Harvey Harrison <[EMAIL PROTECTED]> wrote:

> I'm not sure if the definition of asmlinkage and prevent_tail_call can 
> be omitted as well and let the linux/linkage.h version get picked up 
> instead.

no, we cannot remove them - asmlinkage is needed for the syscall entry 
(and other entry code) to work, the and the prevent_tail_call works 
around a compiler bug. (which might or might not be fixed in latest gcc 
- but we generally dont remove workarounds unless we are really sure 
it's fine.)

so your patch looks good to me, i've queued it up.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/