libera/#sicl - IRC Chatlog
Search
7:14:38
hayley
SBCL now generates code for the write barrier for generational GC, rather than using memory protection on x86-64 and 64-bit PowerPC, and it is faster than using the memory management unit.
7:19:23
hayley
Quoth the Douglas Katzman: "No more spurious tripping of the barrier for storing fixnums. As of now this is a compile-time determination, but it could be made to choose at runtime. We'd have to measure the benefit."
7:20:46
hayley
...and using instructions to mark cards should result in mprotect() being called less often, and the TLB should be utilized better.
7:21:02
beach
Ah, yes, there is that. Compiler type inference and other information can elide the barriers, but that's not generally possible with memory protection.
7:56:13
hayley
Though the generated store barriers don't include a runtime type test, and so storing a fixnum would still mark a card.
7:57:47
hayley
The concurrent GC planned for SICL is a "snapshot-at-the-beginning" type and the write barrier has to mark the old value of the location being written to, right? Thus there would be a type test on the old value.
9:41:37
hayley
Also, while unrelated, today I read a blog post by a server hardware company about its embedded operating system, and the post stated that "even in memory safe languages [..., hardware] memory protection is essential" which cracks me up. I guess it's the effects of long-term exposure to Unix or something.
9:42:51
hayley
(I suppose overflowing the stack would be very unfortunate, but what they mentioned sounded more like process isolation, with "tasks, the kernel, and drivers all in disjoint protection domains".)
9:44:46
beach
I guess they are selling hardware that has memory protection, so they can't be caught saying it is sometimes now required.
9:46:11
hayley
I'm not very familiar with server hardware, but the hardware apparently has embedded devices as well as more general purpose hardware, and application code only runs on the latter.
9:48:43
hayley
Ah, the embedded hardware is a replacement for a "baseband management controller", which is typically an ARM system-on-chip, and is used to have remote access to facilities which are usually only accessible through a physical interface, such as forcefully rebooting a server.
9:50:32
hayley
...and the BMC is also used to read off sensors, but why not just have the general purpose hardware read those sensors, as desktop computers do? Guess I don't run servers.