1. 27 May, 2008 4 commits
    • Isaku Yamahata's avatar
      [IA64] pvops: preparation: introduce ia64_set_rr0_to_rr4() to make kernel... · 0e1a77cc
      Isaku Yamahata authored
      [IA64] pvops: preparation: introduce ia64_set_rr0_to_rr4() to make kernel paravirtualization friendly.
      
      make kernel paravirtualization friendly by introducing
      ia64_set_rr0_to_rr4().
      ia64/Xen will replace setting rr[0-4] with single hypercall later.
      Signed-off-by: default avatarIsaku Yamahata <yamahata@valinux.co.jp>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      0e1a77cc
    • Isaku Yamahata's avatar
      [IA64] pvops: preparation: move the constants, LOAD_OFFSET, to a header file. · 8311d21c
      Isaku Yamahata authored
      Move the LOAD_OFFSET definition from vmlinux.lds.S into system.h.
      On paravirtualized environments, it is necessary to detect the
      execution environment. One of the solutions is the multi entry point.
      The multi entry point allows a boot loader to start the kernel execution
      from the entry point which is different from the ELF entry point.
      The non standard entry point will defined as the specialized elf note
      which contains the LMA of the entry point symbol.
      The constant, LOAD_OFFSET, is necessary to calculate the symbol's LMA.
      Move the definition into the public header file to make it available
      to the multi entry point support.
      
      Cc: "He, Qing" <qing.he@intel.com>
      Signed-off-by: default avatarIsaku Yamahata <yamahata@valinux.co.jp>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      8311d21c
    • Isaku Yamahata's avatar
      [IA64] pvops: preparation: remove extern in irq_ia64.c · 444933c6
      Isaku Yamahata authored
      remove extern declaration of handle_IPI() in irq_ia64.c.
      Instead, declare it in asm-ia64/smp.h.
      Later handle_IPI() will be referenced from another file.
      Signed-off-by: default avatarIsaku Yamahata <yamahata@valinux.co.jp>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      444933c6
    • Tony Luck's avatar
      [IA64] Workaround for RSE issue · 4dcc29e1
      Tony Luck authored
      Problem: An application violating the architectural rules regarding
      operation dependencies and having specific Register Stack Engine (RSE)
      state at the time of the violation, may result in an illegal operation
      fault and invalid RSE state.  Such faults may initiate a cascade of
      repeated illegal operation faults within OS interruption handlers.
      The specific behavior is OS dependent.
      
      Implication: An application causing an illegal operation fault with
      specific RSE state may result in a series of illegal operation faults
      and an eventual OS stack overflow condition.
      
      Workaround: OS interruption handlers that switch to kernel backing
      store implement a check for invalid RSE state to avoid the series
      of illegal operation faults.
      
      The core of the workaround is the RSE_WORKAROUND code sequence
      inserted into each invocation of the SAVE_MIN_WITH_COVER and
      SAVE_MIN_WITH_COVER_R19 macros.  This sequence includes hard-coded
      constants that depend on the number of stacked physical registers
      being 96.  The rest of this patch consists of code to disable this
      workaround should this not be the case (with the presumption that
      if a future Itanium processor increases the number of registers, it
      would also remove the need for this patch).
      
      Move the start of the RBS up to a mod32 boundary to avoid some
      corner cases.
      
      The dispatch_illegal_op_fault code outgrew the spot it was
      squatting in when built with this patch and CONFIG_VIRT_CPU_ACCOUNTING=y
      Move it out to the end of the ivt.
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      4dcc29e1
  2. 26 May, 2008 12 commits
  3. 25 May, 2008 16 commits
  4. 24 May, 2008 8 commits