1. 12 3月, 2016 4 次提交
    • C
      powerpc/8xx: rewrite set_context() in C · a7761fe4
      Christophe Leroy 提交于
      There is no real need to have set_context() in assembly.
      Now that we have mtspr() handling CPU6 ERRATA directly, we
      can rewrite set_context() in C language for easier maintenance.
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NScott Wood <oss@buserror.net>
      a7761fe4
    • C
      powerpc/8xx: remove special handling of CPU6 errata in set_dec() · 63e9e1c2
      Christophe Leroy 提交于
      CPU6 ERRATA is now handled directly in mtspr(), so we can use the
      standard set_dec() fonction in all cases.
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NScott Wood <oss@buserror.net>
      63e9e1c2
    • C
      powerpc/8xx: Map linear kernel RAM with 8M pages · a372acfa
      Christophe Leroy 提交于
      On a live running system (VoIP gateway for Air Trafic Control), over
      a 10 minutes period (with 277s idle), we get 87 millions DTLB misses
      and approximatly 35 secondes are spent in DTLB handler.
      This represents 5.8% of the overall time and even 10.8% of the
      non-idle time.
      Among those 87 millions DTLB misses, 15% are on user addresses and
      85% are on kernel addresses. And within the kernel addresses, 93%
      are on addresses from the linear address space and only 7% are on
      addresses from the virtual address space.
      
      MPC8xx has no BATs but it has 8Mb page size. This patch implements
      mapping of kernel RAM using 8Mb pages, on the same model as what is
      done on the 40x.
      
      In 4k pages mode, each PGD entry maps a 4Mb area: we map every two
      entries to the same 8Mb physical page. In each second entry, we add
      4Mb to the page physical address to ease life of the FixupDAR
      routine. This is just ignored by HW.
      
      In 16k pages mode, each PGD entry maps a 64Mb area: each PGD entry
      will point to the first page of the area. The DTLB handler adds
      the 3 bits from EPN to map the correct page.
      
      With this patch applied, we now get only 13 millions TLB misses
      during the 10 minutes period. The idle time has increased to 313s
      and the overall time spent in DTLB miss handler is 6.3s, which
      represents 1% of the overall time and 2.2% of non-idle time.
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NScott Wood <oss@buserror.net>
      a372acfa
    • C
      powerpc/8xx: Save r3 all the time in DTLB miss handler · 913a6b3d
      Christophe Leroy 提交于
      We are spending between 40 and 160 cycles with a mean of 65 cycles in
      the DTLB handling routine (measured with mftbl) so make it more
      simple althought it adds one instruction.
      With this modification, we get three registers available at all time,
      which will help with following patch.
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NScott Wood <oss@buserror.net>
      913a6b3d
  2. 10 3月, 2016 1 次提交
  3. 03 6月, 2015 7 次提交
  4. 30 1月, 2015 6 次提交
  5. 08 11月, 2014 14 次提交
  6. 05 9月, 2014 7 次提交
  7. 29 10月, 2013 1 次提交