Yes.
In some cases, yes (if there are other runnable threads on this CPU's queue).
A better example: a page fault for a non-present page.
Don't forget gltron!
You are absolutely right. They are used everywhere in the Linux, OpenBSD, and FreeBSD kernels, and likely many other kernels. Replacing large linked lists with arrays is rarely an actual win. With an array, insertion…
> I don't see how it could. Kernel data structures don't go on pagecache pages. Kernel data structures could end up on a pagecache page: all it takes is a reference counting bug and the page could be reallocated in the…
OpenBSD's choice is arguably reasonable, given their prioritization of security, since it reduces opportunities for user programs to corrupt kernel memory. What is the problem with OpenBSD's plan for coherency? Why is…
What coherence is lacking? OpenBSD supports msync(2), which is the only POSIX mechanism I know of for ensuring coherency between read(2) and shared file mappings. Otherwise relying on unspecified behavior sounds…
OpenSSH does have confirmation: use the '-c' switch to ssh-add. https://man.openbsd.org/ssh-add
Is recovery of a shared memory queue after one of the workers crashes even possible, in general? (what if the worker crashed before releasing a lock?)
Sounds like a fun project! Isn't seL4's multicore support either unverified or limited (i.e. shared memory is forbidden)? Is your platform single-threaded then?
Instead of an ad hominem, please clearly explain the main way that the example Go code is less safe than the C example code.
This is a great point. Jargon can be really intimidating and make the simplest statements impossible to understand for the unfamiliar. But is often trivial to learn with a little study.
A particularly tricky task with GNU make is automatically adding target dependencies on header files and handling updates to them (gcc's -M and -MMD switches). It would be great if the article explained those best…
Well, for one thing, zig apparently has no built-in memory allocator?
Turns out the x86 already has some bounds checking support; see chapter 17 in volume 1 of Intel's developer manuals and the BOUND and BND* instructions.
Hah, I am Cody and I'm not related to Dave Cutler (as far as I know!).
Well that was fast! I'm an author of this paper and would be happy to answer questions.
Different Linux kernel config options, probably. Different options can drastically affect performance.
That's correct. The primary performance benefit of generational GC (in terms of throughput and maybe also latency) is that it can reclaim the memory (backing the young generation) without marking or otherwise processing…
No, the size of the array doesn't need to be a power-of-2 if you use modulus to derive indices. But you need to deal with the overflow somehow. For instance: 0xffffffff % 7 = 3, but (0xffffffff + 1) % 7 = 0.
I guess the browser calls system(3) on the arbitrary URI instead of directly exec'ing /usr/bin/nnrurlshow? How amusing.
You are addressing criticisms of Stalin with a logical fallacy called "whataboutism".
I don't understand you. Is your answer to my question: "Modern UNIX OSes cannot take advantage of said ideas because they are POSIX compatible."?
> "...while lots of different, great ideas about computing and networks have been developed in the last 30 years." > What we really need are OSes that take the ideas from human-computer interaction from Xerox PARC and…
Yes.
In some cases, yes (if there are other runnable threads on this CPU's queue).
A better example: a page fault for a non-present page.
Don't forget gltron!
You are absolutely right. They are used everywhere in the Linux, OpenBSD, and FreeBSD kernels, and likely many other kernels. Replacing large linked lists with arrays is rarely an actual win. With an array, insertion…
> I don't see how it could. Kernel data structures don't go on pagecache pages. Kernel data structures could end up on a pagecache page: all it takes is a reference counting bug and the page could be reallocated in the…
OpenBSD's choice is arguably reasonable, given their prioritization of security, since it reduces opportunities for user programs to corrupt kernel memory. What is the problem with OpenBSD's plan for coherency? Why is…
What coherence is lacking? OpenBSD supports msync(2), which is the only POSIX mechanism I know of for ensuring coherency between read(2) and shared file mappings. Otherwise relying on unspecified behavior sounds…
OpenSSH does have confirmation: use the '-c' switch to ssh-add. https://man.openbsd.org/ssh-add
Is recovery of a shared memory queue after one of the workers crashes even possible, in general? (what if the worker crashed before releasing a lock?)
Sounds like a fun project! Isn't seL4's multicore support either unverified or limited (i.e. shared memory is forbidden)? Is your platform single-threaded then?
Instead of an ad hominem, please clearly explain the main way that the example Go code is less safe than the C example code.
This is a great point. Jargon can be really intimidating and make the simplest statements impossible to understand for the unfamiliar. But is often trivial to learn with a little study.
A particularly tricky task with GNU make is automatically adding target dependencies on header files and handling updates to them (gcc's -M and -MMD switches). It would be great if the article explained those best…
Well, for one thing, zig apparently has no built-in memory allocator?
Turns out the x86 already has some bounds checking support; see chapter 17 in volume 1 of Intel's developer manuals and the BOUND and BND* instructions.
Hah, I am Cody and I'm not related to Dave Cutler (as far as I know!).
Well that was fast! I'm an author of this paper and would be happy to answer questions.
Different Linux kernel config options, probably. Different options can drastically affect performance.
That's correct. The primary performance benefit of generational GC (in terms of throughput and maybe also latency) is that it can reclaim the memory (backing the young generation) without marking or otherwise processing…
No, the size of the array doesn't need to be a power-of-2 if you use modulus to derive indices. But you need to deal with the overflow somehow. For instance: 0xffffffff % 7 = 3, but (0xffffffff + 1) % 7 = 0.
I guess the browser calls system(3) on the arbitrary URI instead of directly exec'ing /usr/bin/nnrurlshow? How amusing.
You are addressing criticisms of Stalin with a logical fallacy called "whataboutism".
I don't understand you. Is your answer to my question: "Modern UNIX OSes cannot take advantage of said ideas because they are POSIX compatible."?
> "...while lots of different, great ideas about computing and networks have been developed in the last 30 years." > What we really need are OSes that take the ideas from human-computer interaction from Xerox PARC and…