Re: GNU/Hurd portability patches
Samuel Thibault <samuel.thibault@gnu.org>
From: Samuel Thibault <samuel.thibault@gnu.org>
To: Michael Banck <mbanck@gmx.net>
Cc: Thomas Munro <thomas.munro@gmail.com>, Alexander Lakhin <exclusion@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>, pgsql-hackers@lists.postgresql.org
Date: 2025-11-17T23:31:43Z
Lists: pgsql-hackers
Hello,
On Mon, Nov 17, 2025 at 03:59:30PM +1300, Thomas Munro wrote:
> On Tue, Nov 11, 2025 at 10:49 AM Michael Banck <mbanck@gmx.net> wrote:
> > |login: task ./test_signalhandler(767) looked up a bogus port 23 for3205, most probably a bug.
>
> . o O { An absurdly far-fetched thought while browsing glibc/hurd glue
> code: if synchronous I/O is implemented as RPC on Mach ports, could
> that mean that it's technically possible to submit now and consume
> results later, for asynchronous I/O?
Yes, it is completely possible.
> Possibly too private/undocumented anyway,
It's not really documented much, but it's completely public. One
can include <hurd/io_request.h> and call e.g. io_read_request(port,
reply_port, offset, amount). One then has to run a msgserver loop on the
reply_port to get the reply messages. An example can be seen in the hurd
source in trans/streamio.c, for e.g. device_open_request() calls.
> I idly wondered about driving I/O directly with ports
> while studying the dismal implementation of POSIX AIO on macOS, which
> also derives from CMU Mach, but NeXT/Apple jammed file systems down
> into the unikernel part behind traditional syscalls, and it looks like
> maybe only raw devices are accessible with ports.
On MacOS, probably indeed. But GNU/Hurd POSIX files are represent as
mach port too so the usual MIG asynchronous mechanism is available.
Samuel
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add minimal sleep to stats isolation test functions.
- ef18eeeeaea7 18.1 landed
- e849bd551c32 19 (unreleased) landed
- fa42213d4af6 15.15 landed
- b4ef835f5e7d 17.7 landed
- 21ada43a6105 16.11 landed
-
Include pg_test_timing's full output in the TAP test log.
- 7ccbf6d8b5e5 19 (unreleased) landed
-
Make sure IOV_MAX is defined.
- d25d392e8944 16.10 landed
- 581305a4659d 18.0 landed
- 1fd772d19290 19 (unreleased) landed
- 0991249d7ab5 17.6 landed
-
Make safeguard against incorrect flags for fsync more portable.
- d0a695cf41de 13.22 landed
- 71d71ac4d1bb 14.19 landed
- 0fb496c704fc 15.14 landed
- 45c5276628d1 18.0 landed
- 3a2617e4f0be 16.10 landed
- 29c54ea7b49c 17.6 landed
- 29213636e6cd 19 (unreleased) landed