← Back to context

Comment by heavyset_go

2 days ago

Having networking, routing, VPN etc all not leave kernel space can be a performance improvement for some use cases.

Similarly, splitting the networking/etc stacks out from the kernel into userspace can also be a performance improvement for some use cases.

Can't you say that about virtually anything? I'm sure having, say, MIDI synthesizers in the kernel would improve performance too, but not many think that is a good idea.

  • Depends on the workload and scale. There are cases where offloading everything to userspace in order to minimize context switches into kernel space would improve performance, as well.

Yup, context switches between kernelspace and userspace are very expensive in high-performance situations, which is why these types of offloads are used.

At specific workloads (think: load balancers / proxy servers / etc), these things become extremely expensive.