voxtech | 1 year ago
voxtech's comments
voxtech | 1 year ago | on: Déjà vu: Ghostly CVEs in my terminal title
voxtech | 1 year ago | on: CrowdStrike CEO: "defect in a single content update for Windows"
voxtech | 2 years ago | on: The new headache for bosses: Employees aren't quitting
It never works but companies always try it and then HAVE to do a shady layoff just to rebalance their teams.
voxtech | 3 years ago | on: Purego – A library for calling C functions from Go without Cgo
If cgo's only overhead was the "ordinary" overhead, most people wouldn't have an issue with it. It's downright zippy, in fact... as long as your syscall/C call takes less than 1us. If you stay under the 1us threshold, go will put the OS thread used for the syscall back where it found it and everything moves on.
The issue is that the OS thread was previously serving N goroutines that other parts of the program may be waiting on to move forward, and the OS thread is in a state where go can't pre-empt it and allow those other goroutines to move forward, and it has no idea how long it will be until it can move forward.
As a result, if a syscall/c call takes longer than 1us, go has no choice at this time but to resume a new thread, context switch all the old work onto that thread, and then suspend the syscall thread when it comes back. If you do this a lot, your performance will crater.
There's also separately a few issues around how go chooses to resume/suspend OS threads (for instance, if an os-locked goroutine does coooperative park for any reason to wait on another thread to do something, go will suspend the thread it was on, context switch to a different thread, then when the goroutine wakes up, it will realize its mistake, resume the thread it was on and context switch again).
This is all fixable stuff, but all the use cases that google cares about are working fine so it doesn't really get any attention.
voxtech | 3 years ago | on: Google has been DDoSing Sourcehut for over a year
If the behavior is unimportant enough that drew should accept eliminating it, then its value does not justify the load.
If the behavior is important enough to justify the load, then eliminating it is no solution.
voxtech | 3 years ago | on: Google has been DDoSing Sourcehut for over a year
voxtech | 3 years ago | on: Google has been DDoSing Sourcehut for over a year
And to be frank, filippo's contribution to this thread places a clear reason why- drew was incredibly rude in the second link, but his arguments were not bad faith. He clearly meant everything he said, and I would even argue that he was right, although his method of engagement was unacceptable.
More importantly, the exchange was 3 years ago, and the more recent exchange showed him engaging exactly how I would expect a professional to. If the 3 year old exchange is the best filippo could find, it indicates that drew has changed his tactics for the better. So why the ban?
voxtech | 3 years ago | on: Google has been DDoSing Sourcehut for over a year
voxtech | 3 years ago | on: Google has been DDoSing Sourcehut for over a year
voxtech | 4 years ago | on: Peter Bourgon: I have been permanently banned from all Golang community spaces
voxtech | 4 years ago | on: Rethinking Triplebyte
voxtech | 4 years ago | on: Rethinking Triplebyte