1. 16 Jun, 2003 2 commits
    • David Mosberger's avatar
      ia64: Make brl-branches to ia64_spinlock_contention work from modules. · 17e74013
      David Mosberger authored
      	Since these branches use a special calling-convention, we don't
      	want to go through the PLT stubs normally used for cross-module
      	calls.  Also fix a 1-bit bug in the plt_reloc() function which
      	got triggered now that the core code lives below the module
      	code (due to the virtual mapping of the core).
      17e74013
    • Arun Sharma's avatar
      [PATCH] ia64: work around race conditions in ia32 support code · 630128c3
      Arun Sharma authored
      This is an old problem, first reported in December 2001. 
      The test case is a multithreaded application doing a large number of 
      malloc()/free().
      
      When running on a 16k page size kernel, the current algorithm creates
      a temporary page, copies data to that page, does a new mmap and copies
      back subpages from the temporary page. This leaves a window of opportunity
      open for another thread to unmap or change the data in such a way that
      the new page has stale data.
      
      A patch was proposed which tries to do away with copying if the old page
      was writable.  The patch was rejected because it could corrupt data in
      the MAP_SHARED case.
      
      https://external-lists.vasoftware.com/archives/linux-ia64/2001-December/002549.html
      https://external-lists.vasoftware.com/archives/linux-ia64/2001-December/002550.html
      
      Since we found that most of the apps which ran into this problem were
      dealing with pages where the old data and new data are both anonymous,
      I reworked the above patch in such a way that we don't optimize for
      the MAP_SHARED case. Infact, the only case that we optimize is the case
      where the old and new mapping are both anonymous.
      630128c3
  2. 13 Jun, 2003 2 commits
    • David Mosberger's avatar
      ia64: Still more gate DSO tuning. Turns out a linker bug prevented · ff04a0fd
      David Mosberger authored
      	us from building the gate DSO in a way that makes it fit in
      	<= 1 page. If a fixed linker is available, we do it in this
      	space-saving way now. Otherwise, we'll do it the old way
      	(the gate DSO will then take up about 18KB instead of just
      	~3KB).  Thanks to Roland McGrath for making this all work.
      ff04a0fd
    • Stéphane Eranian's avatar
      [PATCH] ia64: minor perfmon fixes · 92f3b57c
      Stéphane Eranian authored
      - remove extra include of asm/perfmon.h
      - fix a bug if PFM_LOAD_CONTEXT by which it would not return an
        error if the task already had a context attached.
      92f3b57c
  3. 12 Jun, 2003 5 commits
  4. 11 Jun, 2003 3 commits
  5. 10 Jun, 2003 7 commits
  6. 09 Jun, 2003 5 commits
  7. 06 Jun, 2003 2 commits
    • David Mosberger's avatar
      4259186d
    • Stéphane Eranian's avatar
      [PATCH] ia64: switch to perfmon2 · 3b4e81bd
      Stéphane Eranian authored
      This patch contains a major rewrite of the perfmon subsystem to
      bring it to version 2.0. This version is NOT compatible with the
      existing perfmon-1.x version which was in 2.5 and still is in 2.4
      kernels. This new codebase brings a lot of new features including
      the ability to attach to already running tasks, the ability the
      follow clone2, the ability to write your own sampling buffer format
      via kernel modules. It is also much more robust than its 1.x
      counter-part. This version supports the Itanium, McKinley and
      Madison PMUs. This is beta quality code and extensions to the
      interface are planned.
      3b4e81bd
  8. 05 Jun, 2003 4 commits
  9. 04 Jun, 2003 3 commits
  10. 03 Jun, 2003 1 commit
  11. 02 Jun, 2003 2 commits
    • Tony Luck's avatar
      [PATCH] ia64: fix SAVE_RESET so OS INIT handler works again · 387178be
      Tony Luck authored
      The syscall optimization patches broke the OS INIT handler because
      SAVE_RESET was addressing relative to r12, which contains the virtual
      address of the stack pointer.  Fixed by addressing relative to r2/r3
      instead.
      387178be
    • Fenghua Yu's avatar
      [PATCH] ia64: performance-tweak syscall exit path some more · 76e974c7
      Fenghua Yu authored
      Please find the attached patch that:
      
      1. Moves user stack flag memory access before srlz.i;
      
      2. Moves mov b6=r22 as late as possible. 
      
      3. Changes (pSys) to (pLvSys) in skip_rbs_switch: section. IA32 syscall
      set pSys=1 but pLvSys=0. It's not necessary to clear bank1 r16-r19 registers
      for IA32 syscall.
      
      The number for leave_syscall is 268 cycles with this patch. The number
      is 295 cycles w/o this patch. It was 245 cycles with the original kee patched
      kernel. The 23 cycles come from restoring b6 operation which didn't exist in
      the orignal kee patch.
      76e974c7
  12. 30 May, 2003 4 commits
    • Keith Owens's avatar
      [PATCH] ia64: fix unwinder to call get_scratch_regs() only when really needed · 3d029c25
      Keith Owens authored
      Only call get_scratch_regs() when pt is really needed.  The extraneous
      calls to get_scratch_regs() can otherwise pick up the wrong address for pt.
      For example, calling unw_access_ar(&info, UNW_AR_BSPSTORE,...) before pt_regs
      had been reached could trigger this bug.
      3d029c25
    • Venkatesh Pallipadi's avatar
      [PATCH] ia64: IA-32 emulation patch: ptrace get_FPREGS bug fix · 75a559eb
      Venkatesh Pallipadi authored
      A bug-fix in IA-32 emulation ptrace code. The bug originally got
      introduced with the addition of FPXREGS support in ptrace.
      
      The bug is in ptrace get/set FPREGS routine. gdb by default will not use
      FPREGS routines when FPXREGS routines are supported.  So we may not see
      this bug during normal gdb operations. But, if gdb (or any other app)
      directly tries to get/set FPREGS (probably an old version of gdb), it
      will end with an segmentation fault due to this bug.
      
      Attached patch fixes the issue. The patch is taken against 2.5.69. But
      it applies to 2.4 tree as well.
      75a559eb
    • Stéphane Eranian's avatar
      [PATCH] ia64: two small fixes (perfmon & GENERIC build) · 0320185f
      Stéphane Eranian authored
      the first patch  moves some definitions
      out of perfmon.c to perfmon.h (similar to what is in 2.4). 
      
      The second patch contains a fix for the generic built. I did 
      it that way to avoid other problems such as SIMSCSI depends
      on SCSI. so simply hardcoding this in the MAkefile could cause
      other problems. Anyway, SIMSCI is not defaulting to y when
      HP_SIM is defined so it is not so different.
      0320185f
    • Kochi Takayoshi's avatar
      [PATCH] ia64: Discontigmem bank fix · f7d5cbcd
      Kochi Takayoshi authored
      Attached is a patch for interleaved discontigmem banks.
      
      When memory banks are interleaved between nodes,
      bank ids can be overwritten by other nodes.
      f7d5cbcd