Re: [PATCH -mm] i386 syscall opcode reordering (pipelining)

From: H. Peter Anvin
Date: Tue Jun 13 2006 - 18:10:37 EST


Followup to: <448F1B97.3070207@xxxxxxxxxxxxxxx>
By author: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
In newsgroup: linux.dev.kernel
>
> Andreas Mohr wrote:
> > Hi all,
> >
> > I'd guess that this version features improved pipeline parallelism,
> > since we isolate competing %ebx accesses (_syscall4()) and
> > stack push operations (_syscall5()), right?
>
> is anybody actually EVER using those???
> I would think not....

Probably not. The _syscallN() macros are broken for the general case
on any 32-bit architecture, since they can't handle multiregister
arguments.

Similarly, a general syscall() function is broken (in the sense that
one would have to have syscall-specific code to mangle the arguments)
on *some*, but not all, 32-bit architectures, since some architectures
have alignment constraints on multiregister arguments, and the syscall
number argument throws off that alignment.

-hpa

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