<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>6377</bug_id>
          
          <creation_ts>2014-05-28 09:46:30 +0000</creation_ts>
          <short_desc>highmem support with preempt-rt for powerpc</short_desc>
          <delta_ts>2014-05-28 14:58:03 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Yocto Project Subprojects</classification>
          <product>Kernel</product>
          <component>kernel-configuration</component>
          <version>2.0</version>
          <rep_platform>Other</rep_platform>
          <op_sys>ppc</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Undecided</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vasudevan">inbox.vasu</reporter>
          <assigned_to name="Bruce Ashfield">bruce.ashfield</assigned_to>
          <cc>yp.kernel.watcher</cc>
    
    <cc>yp.watcher</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>43612</commentid>
    <comment_count>0</comment_count>
    <who name="Vasudevan">inbox.vasu</who>
    <bug_when>2014-05-28 09:46:30 +0000</bug_when>
    <thetext>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 &amp;  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 &amp; Highmem are related ?  Is there a solution/patch available to enable preempt RT &amp; Highmem both for powerpc?

-Vasu</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43619</commentid>
    <comment_count>1</comment_count>
    <who name="Bruce Ashfield">bruce.ashfield</who>
    <bug_when>2014-05-28 14:58:03 +0000</bug_when>
    <thetext>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&apos;s, it caused issues when
used under load.

I&apos;m sure you&apos;ve seen the mailing list posts on the topic, but I&apos;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&amp;m=134271352628041&amp;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&apos;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.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>