Date: Sun, 14 Jan 2024 14:07:34 -0300 From: =?UTF-8?Q?Vin=C3=ADcius_dos_Santos_Oliveira?= <vini.ipsmaker@gmail.com> To: Alan Somers <asomers@freebsd.org> Cc: Konstantin Belousov <kostikbel@gmail.com>, freebsd-threads@freebsd.org, Konstantin Belousov <kib@freebsd.org> Subject: Re: aio_read2() and aio_write2() Message-ID: <CAK9RveK-sjLxCkKpkSTYkecRQVwT%2BuoOSsaW3xD130Hnwb=cog@mail.gmail.com> In-Reply-To: <CAOtMX2h7vmwKHWUm7aHAfJ0QGPYfaWUmriu%2BxpwA2yK8O2YOoA@mail.gmail.com> References: <CAOtMX2haq%2BErvqD2PDYKUGRgdCrk2SDjtoPL-W5jR8q8_4denA@mail.gmail.com> <CAK9RveJLK9uU0twM%2BKznUNnUnsqzwoqidPN8dzNptMQ50Z7r1Q@mail.gmail.com> <CAOtMX2ijQ=KsccMyqH-yAn6SJPR7MD_yy6CF0R2vNrQ-fhUq2Q@mail.gmail.com> <ZaMsUn8xFKrDkJb_@kib.kiev.ua> <CAK9Rve%2BuYpxWyRPwh6gxjRkisU7WPKjXicU9%2BYiqFG-=c3trvg@mail.gmail.com> <CAOtMX2h7vmwKHWUm7aHAfJ0QGPYfaWUmriu%2BxpwA2yK8O2YOoA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Em dom., 14 de jan. de 2024 =C3=A0s 13:30, Alan Somers <asomers@freebsd.org> escreveu: > I don't understand. What are you worried about that would block? > lseek never does. It never actually goes to disk; it just retrieves a > variable from within the kernel. So while the expense of a syscall is > non-zero, you don't have to worry about lseek blocking. Sorry, that was a lot of condensed information that I dumped together. We can use lseek to get the offset and use AIO specifying the offset we just queried. However the untrusted sandboxed process might actually send as a socket file descriptor (we don't control what we get from the untrusted sandboxed process), and lseek is then inappropriate. From what I've read from the source code, we can pass these bogus offsets to AIO, and it'll just work. However we're still paying an extra syscall (and code doesn't feel right anyway). Anyway, the kernel *already* has this thread pool (AIO daemons), and the only change required here is a flag that controls whether FOF_OFFSET is passed along. That's a pretty non-invasive change. What is the problem? Again, the model already works fine on Windows and Linux. -- Vin=C3=ADcius dos Santos Oliveira https://vinipsmaker.github.io/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK9RveK-sjLxCkKpkSTYkecRQVwT%2BuoOSsaW3xD130Hnwb=cog>