1. 11 3月, 2008 1 次提交
    • H
      [IA64] cleanup and improve fsys_gettimeofday · 4fe01c68
      Hidetoshi Seto 提交于
      This patch does:
      
       - Remove outdated comments (which someday I marked with "?").
       - Reassemble instructions to fit them in fewer bundles.
       - If McKinley Errata 9 workaround is not needed, the workaround
         bundles will be patched out with NOPs. However it also not
         needed to have a totally NOP bundle (nop * 3) before branch.
      
      As a result, this makes the code path 3 (or 2) bundles shorter
      (and remove 1 unnecessary stop bit). It seems to be 1% faster.
      
      (10sec loop test, with nojitter @ Madison 1.5GHz x 4)
      Before:
       CPU  0:  0.14 (usecs) (0 errors / 69598875 iterations)
       CPU  1:  0.14 (usecs) (0 errors / 69630721 iterations)
       CPU  2:  0.14 (usecs) (0 errors / 69607850 iterations)
       CPU  3:  0.14 (usecs) (0 errors / 69619832 iterations)
      
      After:
       CPU  0:  0.14 (usecs) (0 errors / 70257728 iterations)
       CPU  1:  0.14 (usecs) (0 errors / 70309498 iterations)
       CPU  2:  0.14 (usecs) (0 errors / 70280639 iterations)
       CPU  3:  0.14 (usecs) (0 errors / 70260682 iterations)
      Signed-off-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      4fe01c68
  2. 07 11月, 2007 1 次提交
  3. 07 2月, 2007 1 次提交
    • C
      [IA64] remove per-cpu ia64_phys_stacked_size_p8 · a0776ec8
      Chen, Kenneth W 提交于
      It's not efficient to use a per-cpu variable just to store
      how many physical stack register a cpu has.  Ever since the
      incarnation of ia64 up till upcoming Montecito processor, that
      variable has "glued" to 96. Having a variable in memory means
      that the kernel is burning an extra cacheline access on every
      syscall and kernel exit path.  Such "static" value is better
      served with the instruction patching utility exists today.
      Convert ia64_phys_stacked_size_p8 into dynamic insn patching.
      
      This also has a pleasant side effect of eliminating access to
      per-cpu area while psr.ic=0 in the kernel exit path. (fixable
      for per-cpu DTC work, but why bother?)
      
      There are some concerns with the default value that the instruc-
      tion encoded in the kernel image.  It shouldn't be concerned.
      The reasons are:
      
      (1) cpu_init() is called at CPU initialization.  In there, we
          find out physical stack register size from PAL and patch
          two instructions in kernel exit code.  The code in question
          can not be executed before the patching is done.
      
      (2) current implementation stores zero in ia64_phys_stacked_size_p8,
          and that's what the current kernel exit path loads the value with.
          With the new code, it is equivalent that we store reg size 96
          in ia64_phys_stacked_size_p8, thus creating a better safety net.
          Given (1) above can never fail, having (2) is just a bonus.
      
      All in all, this patch allow one less memory reference in the kernel
      exit path, thus reducing syscall and interrupt return latency; and
      avoid polluting potential useful data in the CPU cache.
      Signed-off-by: NKen Chen <kenneth.w.chen@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a0776ec8
  4. 23 3月, 2006 1 次提交
  5. 26 10月, 2005 1 次提交
  6. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4