All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Brian Gerst <brgerst@gmail.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Denys Vlasenko <dvlasenk@redhat.com>,
	Andy Lutomirski <luto@amacapital.net>,
	linux-tip-commits@vger.kernel.org
Subject: Re: [RFC] Rename various 'IA32' uses in arch/x86/ code
Date: Fri, 19 Jun 2015 09:08:21 +0200	[thread overview]
Message-ID: <20150619070821.GA14768@gmail.com> (raw)
In-Reply-To: <CAMzpN2gfcmN3oB9SwQmHeiHWoidzoGp61fVx07OnfLYADNqBvQ@mail.gmail.com>


* Brian Gerst <brgerst@gmail.com> wrote:

> > Ok, so your goal is to allow the x32 ABI, but not 32-bit user-space?
> 
> It just seems odd that x32 (which is really a 64-bit ABI with 32-bit pointers) 
> depended on enabling 32-bit support.  Other than both using the core compat 
> code, they are not really related.

Yeah.

> > I suppose that makes some sense, it might be a valid 'attack surface 
> > reduction' technique, while still allowing the x32 ABI.
> >
> > But I'm not sure we should bother and complicate things: 32-bit compat isn't 
> > going away anytime soon, and most of CONFIG_COMPAT is needed for x32.
> 
> Many of the compat syscalls are unused by x32.  It only needs to handle syscalls 
> with pointers embedded in data structures differently than native 64-bit.

Yeah, but in fact those are the 'most interesting' (read: most complex) aspects of 
the generic compat machinery. So most of the 'core compat' functionality is used - 
even though we don't use many of the (trivial) argument-converted syscall 
variants.

> 64-bit integer arguments (ie., loff_t) do not need special handling, since they 
> can be passed in a single register instead of a pair of 32-bit registers.  This 
> won't solve that particular issue yet, but it's something to be aware of for 
> future cleanups.

Yes, and I think 'X32' is a misnomer in that sense: in reality it's a 90% 64-bit 
ABI that just happens to have a handful of additional system calls that can deal 
with data pointers truncated to 32 bits.

So 'C64' would have been a better name: a compacted 64-bit ABI - but that 
particular name has its own problems ;-) Maybe S64 (small 64-bit memory model)?

'S64' would also have been an easier sell to distros: they generally resist adding 
anything that smells old, 32-bit ... but kernel hackers and marketing were always 
somewhat disjunct sets ;-)

I'm wondering whether we'll ever see a 48-bit user-space pointer model ;-) They 
are misaligned by 32 bits, but x86 CPUs generally handle 32-bit misalignment just 
fine. The killer would be to zero-extend from 48 bits to 64 bits I suspect - 
there's no natural instruction for that.

> > So maybe we could introduce CONFIG_X86_32_ABI=y or so, which would cover just 
> > the 32-bit entry code and the signal frame compatibility layer?
> 
> Yes.

Ok, then it sounds good to me!

Thanks,

	Ingo

      reply	other threads:[~2015-06-19  7:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <tip-bace7117d3fb59a6ed7ea1aa6c8994df6a28a72a@git.kernel.org>
2015-06-16 20:22 ` [tip:x86/asm] x86/asm/entry: (Re-) rename __NR_entry_INT80_compat_max to __NR_syscall_compat_max H. Peter Anvin
2015-06-18 16:49   ` [RFC] Rename various 'IA32' uses in arch/x86/ code Ingo Molnar
2015-06-18 17:49     ` Brian Gerst
2015-06-18 19:37       ` H. Peter Anvin
2015-06-19  7:13         ` Ingo Molnar
2015-06-19 17:19           ` H. Peter Anvin
2015-06-21 13:44             ` Ingo Molnar
     [not found]       ` <CA+55aFzKOyZ4ZA6zFvCNqqqkYT8hLQOXAgJRj-k+LRqvQ1iiyQ@mail.gmail.com>
2015-06-18 19:41         ` H. Peter Anvin
2015-06-18 21:13       ` Ingo Molnar
2015-06-18 22:11         ` Brian Gerst
2015-06-19  7:08           ` Ingo Molnar [this message]

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=20150619070821.GA14768@gmail.com \
    --to=mingo@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=dvlasenk@redhat.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.