linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell King <rmk-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
To: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
Cc: Gerd Hoffmann <kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
	mm-commits-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	arnd-r2nGTMty4D4@public.gmane.org,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	mingo-X9Un+BFzKDI@public.gmane.org,
	ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
	viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org
Subject: Re: + preadv-pwritev-add-preadv-and-pwritev-system-calls.patch added to -mm tree
Date: Tue, 3 Feb 2009 17:42:57 +0000	[thread overview]
Message-ID: <20090203174257.GC20898@flint.arm.linux.org.uk> (raw)
In-Reply-To: <49887EF4.1090300-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>

On Tue, Feb 03, 2009 at 09:29:24AM -0800, H. Peter Anvin wrote:
> Russell King wrote:
> >>
> >> All in all, I think it is WRONG to make sane architectures suffer for
> >> what broken architectures have to do, and we should implement this the
> >> sane way without any shuffling, splitting, or other braindamage.
> > 
> > Disagree.  What is better: having _one_ _common_ argument order in the
> > syscall interface, or having architectures end up doing their own thing?
> > 
> > Think about your strace argument - you're effectively requiring strace
> > to know that on architecture X, the syscall argument order is X1, but
> > on architecture Y, that same syscall has argument order Y1, and maybe
> > architecture Z, it's again a different order Z1.
> > 
> > That _adds_ complexity to strace - rather than having one ordering to
> > deal with for a syscall, it now has three different random orders.
> > 
> > That's completely insane.  With one _common_ ordering, at least strace
> > has the possibility of cleanly sorting it out.
> > 
> 
> What we *SHOULD* be doing is to *HAVE ABIS RULE AND STICK TO THEM*.
> Which is that on architectures that need a padding register, we add the
> padding register on those architectures, and if they need stubs, then we
> add stubs -- preferrably by automation (c.f. my automation scripts for
> doing exactly that.)

This is an overly simplified view of things.  There exist syscalls where
it's not just a matter of padding, but instead where the chosen argument
order interacts with the ABI padding requirements to produce something
which the syscall interface can't handle.  There are two solutions to
that: reorder the syscall arguments or split them up into 32-bit high/low
quantities.

I'm thinking there of the silly fadvise64_64 syscall, where ARM was forced
into having a different argument ordering from everything else through
zero discussion.

So, what would your scripts do with the fadvise64_64 syscall on an
architecture requiring natural alignment of the 64-bit args in 32-bit
regs?

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
--
To unsubscribe from this list: send the line "unsubscribe linux-api" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-02-03 17:42 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-02 21:35 + preadv-pwritev-add-preadv-and-pwritev-system-calls.patch added to -mm tree akpm
     [not found] ` <200902022135.n12LZa1a010673-AB4EexQrvXRQetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
2009-02-02 21:50   ` H. Peter Anvin
     [not found]     ` <49876A91.4000705-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2009-02-03 10:14       ` Gerd Hoffmann
     [not found]         ` <49881904.30705-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-02-03 17:06           ` H. Peter Anvin
     [not found]             ` <498879B3.8030002-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2009-02-03 17:15               ` Russell King
     [not found]                 ` <20090203171559.GA20898-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2009-02-03 17:29                   ` H. Peter Anvin
     [not found]                     ` <49887EF4.1090300-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2009-02-03 17:42                       ` Russell King [this message]
2009-02-03 20:19                         ` H. Peter Anvin
2009-02-05  0:42                         ` H. Peter Anvin
2009-02-02 21:51 ` H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090203174257.GC20898@flint.arm.linux.org.uk \
    --to=rmk-lfz/pmaqli7xmaaqvzeohq@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
    --cc=kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mingo-X9Un+BFzKDI@public.gmane.org \
    --cc=mm-commits-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
    --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
    --cc=viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).