public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org>
Cc: Stafford Horne <shorne@gmail.com>,
	 Adhemerval Zanella <adhemerval.zanella@linaro.org>
Subject: Re: [PATCH 3/6] linux: Implement mremap in C
Date: Thu, 06 Jun 2024 17:15:20 +0200	[thread overview]
Message-ID: <87y17iqf07.fsf@oldenburg3.str.redhat.com> (raw)
In-Reply-To: <20211122185437.1934590-4-adhemerval.zanella@linaro.org> (Adhemerval Zanella via Libc-alpha's message of "Mon, 22 Nov 2021 15:54:34 -0300")

* Adhemerval Zanella via Libc-alpha:

> Variadic function calls in syscalls.list does not work for all ABIs
> (for instance where the argument are passed on the stack instead of
> registers) and might have underlying issues depending of the variadic
> type (for instance if a 64-bit argument is used).
>
> Checked on x86_64-linux-gnu.

Where exactly does this break?

If the syscall generator cannot handle pointer arguments, we should fix
that.  As far as I can tell, we currently assume that the kernel can
handle sign-extended pointers.  I don't see any special code for
processing a/p/s pointers, for example.  That impacts far more than just
mremap.  These pointers are generally not marked as U, for which we have
special processing.

Conditional varargs processing for system calls is very bad.  It causes
an ongoing maintenance headache, and weird application issues.  For
example, Linux 5.7 added MREMAP_DONTUNMAP, and it can use the address
argument just like MREMAP_FIXED.  But the current mremap implementation
always passes NULL as a system call argument.

Then there's the issue where varargs functions have more stringent ABI
requirements than non-varargs functions, as we recently saw with prctl.

I think we should just revert this change, to be honest.

Thanks,
Florian


  parent reply	other threads:[~2024-06-06 15:15 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-22 18:54 [PATCH 0/6] linux: Some syscall refactors Adhemerval Zanella
2021-11-22 18:54 ` [PATCH 1/6] linux: Add fanotify_mark C implementation Adhemerval Zanella
2021-11-24 21:45   ` Stafford Horne
2021-11-25 12:55     ` Adhemerval Zanella
2021-11-22 18:54 ` [PATCH 2/6] linux: Add prlimit64 " Adhemerval Zanella
2021-11-25 23:39   ` Stafford Horne
2021-11-30 11:51     ` Adhemerval Zanella
2021-11-22 18:54 ` [PATCH 3/6] linux: Implement mremap in C Adhemerval Zanella
2021-11-26  0:26   ` Stafford Horne
2021-11-30 11:55     ` Adhemerval Zanella
2024-06-06 15:15   ` Florian Weimer [this message]
2024-06-06 16:01     ` enh
2024-06-06 19:38       ` enh
2024-06-06 20:26         ` Adhemerval Zanella Netto
2024-06-07  8:40           ` Sam James
2024-06-07  8:51             ` Sam James
2024-06-07  9:06           ` Xi Ruoyao
2021-11-22 18:54 ` [PATCH 4/6] linux: Implement pipe in terms of __NR_pipe2 Adhemerval Zanella
2021-11-26 23:03   ` Stafford Horne
2021-11-30 14:53     ` Adhemerval Zanella
2021-11-22 18:54 ` [PATCH 5/6] linux: Add generic syscall implementation Adhemerval Zanella
2021-11-22 18:54 ` [PATCH 6/6] linux: Add generic ioctl implementation Adhemerval Zanella
2021-12-04  7:50   ` Stafford Horne

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=87y17iqf07.fsf@oldenburg3.str.redhat.com \
    --to=fweimer@redhat.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    --cc=shorne@gmail.com \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).