SMP For Linux Kernel

SMP (Symmetric Multi-Processing) has been extensively used in the PC world to increase performance and robustness of PCs. However, till date, this applied to the desktop PCs that find use in offices and homes for use by grown-ups like you and us.

However, the client with whom we share credits for this project, wanted to bring the same performance levels of our desktop PCs to ARM processor laptops.

This project was meant to serve a client who is involved in providing laptops for child education. The client was actually the market leader and wanted to take his business into a higher value realm.

Aim of the Project

In this project, we aimed at implementing Symmetric multiprocessing (SMP) support in Laptop Linux Kernel (version 3.5). That way, we would be functional in revolutionizing the purpose with which children utilize their laptops.

The Challenge

The client was previously utilizing single core in Marvell PXA based SoC, Implementing SMP support in Linux kernel would require a second core to boost performance. The work also included changes in bootloader to enable second core and porting existing drivers for SMP environment. We also needed to add hardware accelerated OpenGL-ES libraries and test applications on Marvell PXA based SoC platform. This included releasing new Xserver, porting of Xserver 2D driver and providing Direct Rendering Infrastructure (DRI) support in Vivante GC2000 kernel driver.


  • Targeted for child with intensive graphics applications
  • Product is PXA2128 based laptop running Fedora-14 Linux
  • Symmetric Multi-Processing(SMP) on Linux kernel with three cores support


We implemented SMP in the Linux kernel which was being used by the client’s existing systems While doing so, we helped in enabling all the three cores of the CPU.We also helped in porting different drivers which would be compatible with the newly implemented SMP architecture. That apart, we also helped in optimizing a few graphic applications.As a result of the work we did, the client was able to increase his business value with an enhanced product.Following list shows our contribution:

  • SMP implementation in Linux Kernel for PXA 2128
  • Development on XO 4.0 touch laptop (OLPC)
  • Added new features by modifying Open-firmware bootloader
  • Enabled Symmetric Multi-Processing(SMP) for dual core CPU & security processor
  • Enhanced the Generic Interrupt Controller(GIC) performance
    • By distributing the interrupts for even load on each core
  • Porting of different drivers to compatible with SMP architecture
  • Enabling of all three cores
  • Performance optimization for Graphics Applications
    • DRM (Direct Rendering Manager) support enabled
    • GCU/GPU (Graphics Controller Unit and Graphics Processing Unit) support enabled
    • Hardware acceleration of OPENGL/OPENGLES applications support