|
|
Subscribe / Log in / New account

A ring buffer for epoll

A ring buffer for epoll

Posted May 31, 2019 0:55 UTC (Fri) by cesarb (subscriber, #6266)
Parent article: A ring buffer for epoll

> takes a familiar form: add yet another ring-buffer interface to the kernel.

I wonder if future operating system designs will use ring buffers for everything instead of system calls. Want to open a file? Add an "open file" request to one ring buffer, and wait for the corresponding response in another ring buffer.


to post comments

A ring buffer for epoll

Posted May 31, 2019 2:50 UTC (Fri) by sbaugh (guest, #103291) [Link] (2 responses)

>I wonder if future operating system designs will use ring buffers for everything instead of system calls

Sounds like FlexSC: https://www.usenix.org/legacy/events/osdi10/tech/full_pap...

FlexSC

Posted May 31, 2019 7:33 UTC (Fri) by smurf (subscriber, #17840) [Link]

That paper seems very interesting. Too bad it's 9 years old and no follow-up has happened.

A ring buffer for epoll

Posted May 31, 2019 22:58 UTC (Fri) by cesarb (subscriber, #6266) [Link]

Very interesting. One of the things mentioned in that paper is that using a ring buffer for system calls allows running the kernel and user space in separate cores; this might be a way to reduce the impact of Spectre/Meltdown/etc mitigations, and even strengthen them by keeping both siblings of each SMT pair either in the kernel or in user space all the time (so there would no longer be a need to either disable SMT, or do a very expensive IPI on every kernel entry/exit to protect against MDS).

A ring buffer for epoll

Posted May 31, 2019 5:48 UTC (Fri) by smurf (subscriber, #17840) [Link]

That, and a single syscall – to signal the kernel, when you write the first event to an empty buffer. (That syscall already exists, by the way: futex_wait(). You simply need to also support kernel threads.)

A ring buffer for epoll

Posted May 31, 2019 21:50 UTC (Fri) by mm7323 (subscriber, #87386) [Link] (6 responses)

You could call that syscall batching. Apart from the downsides of error handling, I believe there are patent issues:

https://patents.google.com/patent/US9038075B2/en

A ring buffer for epoll

Posted Jun 1, 2019 8:05 UTC (Sat) by smurf (subscriber, #17840) [Link] (5 responses)

That patent is owned by Red Hat, so no problem here.

A ring buffer for epoll

Posted Jun 2, 2019 5:07 UTC (Sun) by alison (subscriber, #63752) [Link] (4 responses)

I think you mean "owned by IBM," ahem.

A ring buffer for epoll

Posted Jun 2, 2019 9:48 UTC (Sun) by pbonzini (subscriber, #60935) [Link] (3 responses)

I think you mean "donated to OIN".

A ring buffer for epoll

Posted Jun 2, 2019 14:52 UTC (Sun) by alison (subscriber, #63752) [Link] (1 responses)

>I think you mean "donated to OIN".

There's some good news, at least. The contrast between IBM's handling of RedHat and Oracle's of Sun is striking, at least so far.

A ring buffer for epoll

Posted Jun 2, 2019 19:30 UTC (Sun) by pbonzini (subscriber, #60935) [Link]

So far Red Hat has not been acquired; it's still an independent public company, although in the process of being acquired.

A ring buffer for epoll

Posted Jun 3, 2019 9:09 UTC (Mon) by smurf (subscriber, #17840) [Link]

Assignee of record is still RedHat.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds