Linux’s scalability has improved greatly over the past ten years, but much work remains. Yes, the Big Kernel Lock is finally almost completely removed, but there are a number of “little kernel locks” throughout the kernel. Some of these are being worked, for example, Nick Piggin’s work breaking up dcache_lock and d_lock, but others need help as well.
But the increasing use of Linux in the embedded arena shows the need to scale down as well as up. In fact, given the arrival of multicore embedded CPUs, Linux must scale both up and down simultaneously, preferably while still maintain good response times.
This microconference will therefore look at efforts to scale up, down, and in both directions simultaneously. Topics include:
- What can the kernel do to help applications perform and scale better?
- What can applications do to help the kernel perform and scale better?
- Memory footprint:
- 100MB here, 100MB there, pretty soon you are talking real memory!
- Improving performance by decreasing icache and dcache footprint.
- Limits to scalability:
- Technological limitations, especially hardware.
- Complexity/maintainability limitations.
- Handling of non-CPU computational hardware (GPGPUs, crypto HW, etc.):
- Can the kernel make good use of non-CPU computational hardware?
- How best to enable user applications to use them?
- Dealing with the numerous remaining “little kernel locks”.
Proposals for this track
An explanation of RCU appealing to life-experience intuitions.
An overview of the Linux kernel scalability bottlenecks relating to signals in multithreaded apps.
Scalability problems in/caused by fork (slides)
Scaling Linux, both up and down
Presentation of the Userspace RCU library features. (slides)