1. 20 6月, 2006 1 次提交
    • [
      [PATCH] Fix BCM1480 doubled process accounting times. · e1701fb2
      [MIPS] James E Wilson 提交于
      Running a UP kernel on a bcm1480 board, I get nonsensical timing
      results, like this:
      release@unknown:~/tmp$ time ./a.out
      real    0m22.906s
      user    0m45.792s
      sys     0m0.010s
      According to my watch, this program took 23 seconds to run, so the real
      time clock is OK.  It is process accounting that is broken.
      
      I tracked this down to a problem with the function
      bcm1480_timer_interrupt in the file sibyte/bcm1480/time.c.  This
      function calls ll_timer_interrupt for cpu0, and ll_local_timer_interrupt
      for all cpus.  However, both of these functions do process accounting.
      Thus processes running on cpu0 end up with doubled times.  This is very
      obvious in a UP kernel where all processes run on cpu0.
      
      The correct way to do this is to only call ll_local_timer interrupt if
      this is not cpu0.  This can be seen in the mips-board/generic/time.c
      file, and also in the sibyte/sb1250/time.c file, both of which handle
      this correctly.  I fixed the bcm1480/time.c file by copying over the
      correct code from the sb1250/time.c file.
      
      With this fix, I now get sensible results.
      release@unknown:~/tmp$ time ./a.out
      real    0m22.903s
      user    0m22.894s
      sys     0m0.006s
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e1701fb2
  2. 19 4月, 2006 1 次提交
    • R
      [MIPS] Rewrite all the assembler interrupt handlers to C. · e4ac58af
      Ralf Baechle 提交于
      Saves like 1,600 lines of code, is way easier to debug, compilers
      frequently do a better job than the cut and paste type of handlers many
      boards had.  And finally having all the stuff done in a single place
      also means alot of bug potencial for the MT ASE is gone.
      
      The only surviving handler in assembler is the DECstation one; I hope
      Maciej will rewrite it.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e4ac58af
  3. 28 3月, 2006 1 次提交
  4. 19 3月, 2006 2 次提交
    • R
      [MIPS] Sibyte: Fix race in sb1250_gettimeoffset(). · a904f747
      Ralf Baechle 提交于
          
      From Dave Johnson <djohnson+linuxmips@sw.starentnetworks.com>:
          
      sb1250_gettimeoffset() simply reads the current cpu 0 timer remaining
      value, however once this counter reaches 0 and the interrupt is raised,
      it immediately resets and begins to count down again.
          
      If sb1250_gettimeoffset() is called on cpu 1 via do_gettimeofday() after
      the timer has reset but prior to cpu 0 processing the interrupt and
      taking write_seqlock() in timer_interrupt() it will return a full value
      (or close to it) causing time to jump backwards 1ms. Once cpu 0 handles
      the interrupt and timer_interrupt() gets far enough along it will jump
      forward 1ms.
          
      Fix this problem by implementing mips_hpt_*() on sb1250 using a spare
      timer unrelated to the existing periodic interrupt timers. It runs at
      1Mhz with a full 23bit counter.  This eliminated the custom
      do_gettimeoffset() for sb1250 and allowed use of the generic
      fixed_rate_gettimeoffset() using mips_hpt_*() and timerhi/timerlo.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a904f747
    • R
      [MIPS] Sibyte: Fix interrupt timer off by one bug. · 4308cb16
      Ralf Baechle 提交于
          
      From Dave Johnson <djohnson+linuxmips@sw.starentnetworks.com>:
          
      The timers need to be loaded with 1 less than the desired interval not
      the interval itself.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      4308cb16
  5. 28 2月, 2006 1 次提交
    • R
      [MIPS] SMP: Fix initialization order bug. · 9b6695a8
      Ralf Baechle 提交于
          
      A recent change requires cpu_possible_map to be initialized before
      smp_sched_init() but most MIPS platforms were initializing their
      processors in the prom_prepare_cpus callback of smp_prepare_cpus.  The
      simple fix of calling prom_prepare_cpus from one of the earlier SMP
      initialization hooks doesn't work well either since IPIs may require
      init_IRQ() to have completed, so bit the bullet and split
      prom_prepare_cpus into two initialization functions, plat_smp_setup
      which is called early from setup_arch and plat_prepare_cpus called where
      prom_prepare_cpus used to be called.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      9b6695a8
  6. 22 2月, 2006 2 次提交
  7. 07 2月, 2006 3 次提交
  8. 13 1月, 2006 1 次提交
  9. 08 11月, 2005 1 次提交
  10. 30 10月, 2005 12 次提交
  11. 05 9月, 2005 2 次提交
  12. 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