Remix.run Logo
frognumber 19 hours ago

> A GPU driver is unlikely to ever be bug free, but if the GPU is in an unstable state, because the keyboard should still be working fine, it should be easy to reset the GPU and continue the work without rebooting the computer.

Yes, it should be. I can name zero times in the past half-decade that it's been possible to soft-reset the hardware in my GPU.

The "reset the GPU switch" is the power switch on my computer.

That's true of most hardware. If my ethernet, wifi, or whatever else enter an unstable state, on paper, the monolithic kernel can do the same thing as the microkernel: unload the module, then reload the module. In practice, I've virtually never seen a driver able to pick up a piece of hardware in an unstable state and be able to "reset" it.

> With device drivers in separate processes, bugs in one should not corrupt the memory of others, so restarting a device driver should be enough, instead of rebooting the computer.

Device drivers can corrupt other devices easily enough. The hardware itself would need to be built for isolation.

> Any complex program must be designed from the beginning to be easy to test and debug. If the device drivers are distinct processes, there is no reason to be more difficult to debug them. On the contrary, because the interactions between them are more limited than when they live in a common address space, they should be easier to debug.

That's exactly the myth.

In practice, a complex data flow for a heisenbug might start at the network layer, go through the disk, and land on the GPU. Tracing that on a microkernel requires instrumentation which, while possible in theory, I've never seen in practice.

I'd love to see a hardware stack where everything is ECC, devices are isolated, etc. but for now, on a typical computer, plugging in a bad USB device can brick the whole system (regardless of the software on it). The assumption is that devices on your PCIe bus can be trusted.

> This can only make much easier the reasoning about how the entire system works.

You make very strong statements, without support.

There's a reason Linux runs on every Android phone, almost every router, and increasingly, devices like home microwaves.

mike_hearn 18 hours ago | parent [-]

I think Windows is capable of resetting the GPU and its driver without a hard reboot, actually. At least in theory.

frognumber 7 hours ago | parent [-]

In theory is right. I've never seen a modern NVidia or AMD reset out of a failed state without a hardware reset.

This was possible with old-school graphics cards in the nineties and early 00's, when they were mostly a framebuffer, with a bit of 2d acceleration.