Hi We are running linux kernel-3.4 on a powerpc based platform(LSI AXM3500). The system has 4GB of RAM. The kernel is supposed to run in RT-Preempt mode, and also need to enable HIGHMEM support in kernel configuration to be able to use all the available 4GB RAM. It seems that the RT-Preempt & HIGHMEM option cannot be enabled together. This restricts our platform to use only 1GB, if we run preempt-rt enabled. Can someone clarify how preempt RT & Highmem are related ? Is there a solution/patch available to enable preempt RT & Highmem both for powerpc? -Vasu
HIGHMEM has periodically been a problem for preempt-rt, due to the locking semantics in the allocator, kmap_atomic and a number of migration issues. While it was sometimes enabled on pre 3.0-rt kernel's, it caused issues when used under load. I'm sure you've seen the mailing list posts on the topic, but I'll reference a few here, just for completeness sake. HIGHMEM was disabled for all architectures in the 3.0-rt release, due to the hacked implementation and the amount of runtime issues it was causing, this thread has the details: https://lkml.org/lkml/2011/7/27/428 It stayed disabled for all architectures until the 3.6-rt release, where it was re-enabled for ARM and x86 due to some fixes in the impacted code: https://lkml.org/lkml/2013/2/4/377 There have been other discussions specifically about preempt-rt, powerpc and highmem: http://marc.info/?l=linux-rt-users&m=134271352628041&w=3, with no resolution to the issues in sight. Only doing a different high/low mem split has currently been offered as a workaround. There are better chances to get this working in the latest 3.10 or 3.14 -rt releases, but I don't know of any active development to get it working for ppc32, but there of course is a reference in the ARM and x86 changes.