1. 25 10月, 2006 2 次提交
    • B
      [POWERPC] Cell timebase bug workaround · 859deea9
      Benjamin Herrenschmidt 提交于
      The Cell CPU timebase has an erratum. When reading the entire 64 bits
      of the timebase with one mftb instruction, there is a handful of cycles
      window during which one might read a value with the low order 32 bits
      already reset to 0x00000000 but the high order bits not yet incremeted
      by one. This fixes it by reading the timebase again until the low order
      32 bits is no longer 0. That might introduce occasional latencies if
      hitting mftb just at the wrong time, but no more than 70ns on a cell
      blade, and that was considered acceptable.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      859deea9
    • B
      [POWERPC] Support feature fixups in vdso's · 0909c8c2
      Benjamin Herrenschmidt 提交于
      This patch reworks the feature fixup mecanism so vdso's can be fixed up.
      The main issue was that the construct:
      
              .long   label  (or .llong on 64 bits)
      
      will not work in the case of a shared library like the vdso. It will
      generate an empty placeholder in the fixup table along with a reloc,
      which is not something we can deal with in the vdso.
      
      The idea here (thanks Alan Modra !) is to instead use something like:
      
      1:
              .long   label - 1b
      
      That is, the feature fixup tables no longer contain addresses of bits of
      code to patch, but offsets of such code from the fixup table entry
      itself. That is properly resolved by ld when building the .so's. I've
      modified the fixup mecanism generically to use that method for the rest
      of the kernel as well.
      
      Another trick is that the 32 bits vDSO included in the 64 bits kernel
      need to have a table in the 64 bits format. However, gas does not
      support 32 bits code with a statement of the form:
      
              .llong  label - 1b  (Or even just .llong label)
      
      That is, it cannot emit the right fixup/relocation for the linker to use
      to assign a 32 bits address to an .llong field. Thus, in the specific
      case of the 32 bits vdso built as part of the 64 bits kernel, we are
      using a modified macro that generates:
      
              .long   0xffffffff
              .llong  label - 1b
      
      Note that is assumes that the value is negative which is enforced by
      the .lds (those offsets are always negative as the .text is always
      before the fixup table and gas doesn't support emiting the reloc the
      other way around).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0909c8c2
  2. 26 4月, 2006 1 次提交
  3. 12 10月, 2005 1 次提交
    • B
      [PATCH] ppc32: Fix timekeeping · cbd27b8c
      Benjamin Herrenschmidt 提交于
      Interestingly enough, ppc32 had broken timekeeping for ages...  It
      worked, but probably drifted a bit more than could be explained by the
      actual bad precision of the timebase calibration.  We discovered that
      recently when somebody figured out that the common code was using
      CLOCK_TICK_RATE to correct the timekeeing, and ppc32 had a completely
      bogus value for it.
      
      This patch turns it into something saner.  Probably not as good as doing
      something based on the actual timebase frequency precision but I'll
      leave that sort of math to others.  This at least makes it better for
      the common HZ values.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cbd27b8c
  4. 09 9月, 2005 1 次提交
  5. 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