You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2014/05/22 21:07:21 UTC

git commit: TS-1866 Remove Sparc residues

Repository: trafficserver
Updated Branches:
  refs/heads/master 8e01f9dda -> 78aa134ca


TS-1866 Remove Sparc residues


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/78aa134c
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/78aa134c
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/78aa134c

Branch: refs/heads/master
Commit: 78aa134cae59b3d265ad7a7aaa75004f39e18d7d
Parents: 8e01f9d
Author: Leif Hedstrom <zw...@apache.org>
Authored: Wed May 21 18:43:20 2014 -0600
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Thu May 22 13:05:43 2014 -0600

----------------------------------------------------------------------
 configure.ac                         |   8 -
 iocore/cluster/ClusterHandlerBase.cc |  21 --
 mgmt/Main.cc                         |   3 -
 proxy/CoreUtils.cc                   | 335 +-----------------------------
 proxy/CoreUtils.h                    |  29 ---
 5 files changed, 2 insertions(+), 394 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/78aa134c/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 4142d0d..ab39b06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -975,9 +975,6 @@ if test "x${GCC}" = "xyes"; then
       i?86* | k[5-8]* | pentium* | athlon)
         cpu_architecture="-march=i586"
       ;;
-      *sparc*)
-        cpu_architecture="-mv8"
-      ;;
     esac
   else
     case "$host_cpu" in
@@ -985,13 +982,8 @@ if test "x${GCC}" = "xyes"; then
         # XXX: Any need for 64-bit arch flags?
         # cpu_architecture="-march=native"
       ;;
-      *sparc*)
-        cpu_architecture="-march=ultrasparc"
-      ;;
     esac
   fi
-  # TODO: Add support for other compilers
-  #
 fi
 
 # Overrride detected architecture with the user suplied one

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/78aa134c/iocore/cluster/ClusterHandlerBase.cc
----------------------------------------------------------------------
diff --git a/iocore/cluster/ClusterHandlerBase.cc b/iocore/cluster/ClusterHandlerBase.cc
index 6022b9f..633743d 100644
--- a/iocore/cluster/ClusterHandlerBase.cc
+++ b/iocore/cluster/ClusterHandlerBase.cc
@@ -260,10 +260,6 @@ n_byte_bank(0), byte_bank_size(0), missed(0), missed_msg(false), read_state_t(RE
   iob_iov = new_IOBufferData(BUFFER_SIZE_FOR_XMALLOC(size));
   char *addr = (char *) align_pointer_forward(iob_iov->data(), pagesize);
 
-#if defined(__sparc)
-  if (mprotect(addr, pagesize, PROT_NONE))
-    perror("ClusterState mprotect0 failed");
-#endif
   iov = (IOVec *) (addr + pagesize);
 
   ///////////////////////////////////////////////////
@@ -276,10 +272,6 @@ n_byte_bank(0), byte_bank_size(0), missed(0), missed_msg(false), read_state_t(RE
 
   addr = (char *) align_pointer_forward(msg.iob_descriptor_block->data->data(), pagesize);
 
-#if defined(__sparc)
-  if (mprotect(addr, pagesize, PROT_NONE))
-    perror("ClusterState mprotect failed");
-#endif
   addr = addr + pagesize;
   memset(addr, 0, size - (2 * pagesize));
   msg.descriptor = (Descriptor *) (addr + sizeof(ClusterMsgHeader));
@@ -290,24 +282,11 @@ n_byte_bank(0), byte_bank_size(0), missed(0), missed_msg(false), read_state_t(RE
 ClusterState::~ClusterState()
 {
   mutex = 0;
-#if defined(__sparc)
-  int pagesize = ats_pagesize();
-#endif
   if (iov) {
-#if defined(__sparc)
-    iov = (IOVec *) ((char *) iov - pagesize);
-    if (mprotect((char *) iov, pagesize, (PROT_READ | PROT_WRITE)))
-      perror("~ClusterState mprotect0 failed");
-#endif
     iob_iov = 0;                // Free memory
   }
 
   if (msg.descriptor) {
-#if defined(__sparc)
-    char *a = (char *) msg.descriptor - (sizeof(ClusterMsgHeader) + pagesize);
-    if (mprotect(a, pagesize, (PROT_READ | PROT_WRITE)))
-      perror("~ClusterState mprotect failed");
-#endif
     msg.iob_descriptor_block = 0;       // Free memory
   }
   // Deallocate IO Core structures

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/78aa134c/mgmt/Main.cc
----------------------------------------------------------------------
diff --git a/mgmt/Main.cc b/mgmt/Main.cc
index ba5f9ba..79b6b92 100644
--- a/mgmt/Main.cc
+++ b/mgmt/Main.cc
@@ -1129,9 +1129,6 @@ runAsUser(char *userName)
       _exit(1);
     }
 
-// this is behaving weird.  refer to getpwnam(3C) sparc -jcoates
-// this looks like the POSIX getpwnam_r
-
     struct passwd passwdInfo;
     struct passwd *ppasswd = NULL;
     result = NULL;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/78aa134c/proxy/CoreUtils.cc
----------------------------------------------------------------------
diff --git a/proxy/CoreUtils.cc b/proxy/CoreUtils.cc
index d0da9c1..fe0bb53 100644
--- a/proxy/CoreUtils.cc
+++ b/proxy/CoreUtils.cc
@@ -25,7 +25,7 @@
 
    CoreUtils.cc
 
-   Description:  Automated processing of core files on Sparc & Linux
+   Description:  Automated processing of core files on Linux
  ****************************************************************************/
 
 
@@ -93,34 +93,6 @@
 
 #include "ink_config.h"
 
-#if defined(sparc)
-// We need procfs data strucutures and they
-//   don't support large files
-#undef _LARGEFILE_SOURCE
-#undef _FILE_OFFSET_BITS
-#define is_debug_tag_set(_t) 1
-#include <sys/types.h>
-#include <sys/core.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <math.h>
-#include "libts.h"
-#include "DynArray.h"
-#include "CoreUtils.h"
-#include "Diags.h"
-#include "http/HttpSM.h"
-#include "P_EventSystem.h"
-#include "I_Version.h"
-#include  <string.h>
-#include  <sys/elf.h>
-#include  <procfs.h>
-int lwpid;
-int moffset = (int) &(((HttpSM *) NULL)->magic);
-lwpTable default_lwpTable = { 0, 0 };
-DynArray<struct lwpTable>arrayLwp(&default_lwpTable, 0);
-#endif /* sparc */
-
 #if defined(linux)
 #include "CoreUtils.h"
 
@@ -319,124 +291,6 @@ CoreUtils::read_from_core(intptr_t vaddr, intptr_t bytes, char *buf)
   return -1;
 }
 
-/* SPARC specific functions */
-
-#if defined(sparc)
-// returns the active thread id
-int
-CoreUtils::get_active_thread_Id()
-{
-  return lwpid;
-}
-
-// copies stack info for the thread's base frame to the given
-// core_stack_state pointer
-void
-CoreUtils::get_base_frame(intptr_t threadId, core_stack_state * coress)
-{
-  intptr_t framep = arrayLwp[threadId - 1].framep;
-  // finds vaddress less than framep
-  intptr_t index = find_vaddr(framep, arrayMem.length(), 0);
-  intptr_t vadd = arrayMem[index - 1].vaddr;
-  intptr_t off = arrayMem[index - 1].offset;
-  intptr_t off2 = abs(vadd - framep);
-  intptr_t size = arrayMem[index - 1].fsize;
-
-  memset(coress, 0, sizeof(*coress));
-
-  // seek to the framep offset
-  if (fseek(fp, off + off2, SEEK_SET) != -1) {
-    char *frameoff;
-
-    if ((frameoff = (char *)ats_malloc(sizeof(char) * sizeof(rwindow)))) {
-      if (fread(frameoff, sizeof(rwindow), 1, fp) == 1) {
-        // memcpy rwindow struct and print out
-        struct rwindow regs, *r;
-        r = (struct rwindow *) frameoff;
-        memcpy(&regs, r, sizeof(struct rwindow));
-        coress->regs = regs;
-        framep = regs.rw_in[6];
-        coress->framep = framep;
-      }
-      ats_free(frameoff);
-    } else {
-      printf("Failed to seek to top of the stack\n");
-    }
-    coress->stkbase = vadd + size;
-  }
-}
-
-// returns 0 if current frame is already at the top of the stack
-// or returns 1 and moves up the stack once
-int
-CoreUtils::get_next_frame(core_stack_state * coress)
-{
-  int framep = coress->framep;
-
-  if (framep >= coress->stkbase) {
-    if (is_debug_tag_set("stack")) {
-      printf("already at top of stack\n");
-    }
-    return 0;
-  } else {
-    if (is_debug_tag_set("stack")) {
-      printf("distance from end of the stack: %d\n", coress->stkbase - framep);
-    }
-
-    int index = find_vaddr(framep, arrayMem.length(), 0);
-    // finds vaddress less than framep
-    int vadd = arrayMem[index - 1].vaddr;
-    int off = arrayMem[index - 1].offset;
-    int off2 = abs(vadd - framep);
-
-    // seek to the framep offset
-    if (fseek(fp, off + off2, SEEK_SET) != -1) {
-      char *frameoff;
-      if ((frameoff = (char *)ats_malloc(sizeof(char) * sizeof(rwindow)))) {
-        if (fread(frameoff, sizeof(rwindow), 1, fp) == 1) {
-
-          // memcpy rwindow struct and print out
-          struct rwindow regs, *r;
-          r = (struct rwindow *) frameoff;
-          memcpy(&regs, r, sizeof(struct rwindow));
-          coress->regs = regs;
-          framep = regs.rw_in[6];
-          coress->framep = framep;
-        }
-      }
-      ats_free(frameoff);
-    }
-  }
-  return 1;
-}
-
-// prints the http header
-void
-CoreUtils::find_stuff(StuffTest_f f)
-{
-  core_stack_state coress;
-  int i;
-  void *test_val;
-  int id = get_active_thread_Id();
-
-  get_base_frame(id, &coress);
-
-  do {
-    // looping through all of the local and in registers
-    // all the way up the stack
-    for (int i = 0; i < 8; i++) {
-      test_val = (void *) coress.regs.rw_local[i];
-      f(test_val);
-    }
-    for (i = 0; i < 8; i++) {
-      test_val = (void *) coress.regs.rw_in[i];
-      f(test_val);
-    }
-  } while (get_next_frame(&coress) != 0);
-}
-
-#endif /* SPARC specific Stack unwinding */
-
 
 /* Linux Specific functions */
 
@@ -617,11 +471,6 @@ CoreUtils::test_HttpSM(void *arg)
 void
 CoreUtils::process_HttpSM(HttpSM * core_ptr)
 {
-
-#if defined(sparc)
-  int id = get_active_thread_Id();
-#endif
-
   // extracting the HttpSM from the core file
   if (last_seen_http_sm != core_ptr) {
     HttpSM *http_sm = (HttpSM *)ats_malloc(sizeof(HttpSM));
@@ -640,9 +489,6 @@ CoreUtils::process_HttpSM(HttpSM * core_ptr)
 #if defined(linux)
         printf("\n*****match-ALIVE*****\n");
 #endif
-#if defined(sparc)
-        printf("\n*****match-ALIVE*****!! lwpid: %d\n", arrayLwp[id].lwpId);
-#endif
       }
       // I don't think this is 64-bit correct. /leif
       printf("---- Found HttpSM --- id %" PRId64 "  ------ @ 0x%p -----\n\n", http_sm->sm_id, http_sm);
@@ -660,9 +506,6 @@ CoreUtils::process_HttpSM(HttpSM * core_ptr)
 #if defined(linux)
         printf("\n*****match-DEAD*****\n");
 #endif
-#if defined(sparc)
-        printf("\n*****match-DEAD*****!! lwpid: %d\n", arrayLwp[id].lwpId);
-#endif
       }
     } else {
       if (is_debug_tag_set("magic")) {
@@ -1202,181 +1045,7 @@ process_core(char *fname)
 }
 #endif
 
-#if defined(sparc)
-void
-process_core(char *fname)
-{
-  Elf32_Ehdr ehdr;
-  Elf32_Phdr phdr;
-  int phoff, phnum, phentsize, phsize;
-
-  /* Open the input file */
-  if (!(fp = fopen(fname, "r"))) {
-    printf("cannot open file\n");
-    _exit(1);
-  }
-
-  /* Obtain the .shstrtab data buffer */
-  if (fread(&ehdr, sizeof ehdr, 1, fp) != 1) {
-    printf("Unable to read ehdr\n");
-    _exit(1);
-  }
-  // program header offset
-  phoff = ehdr.e_phoff;
-  // number of program headers
-  phnum = ehdr.e_phnum;
-  // size of each program header
-  phentsize = ehdr.e_phentsize;
-  phsize = phnum * phentsize;
-  for (int i = 0; i < phnum; i++) {
-
-    if (fseek(fp, ehdr.e_phoff + i * ehdr.e_phentsize, SEEK_SET) == -1) {
-      fprintf(stderr, "Unable to seek to Phdr %d\n", i);
-      _exit(1);
-    }
-
-    if (fread(&phdr, sizeof phdr, 1, fp) != 1) {
-      fprintf(stderr, "Unable to read Phdr %d\n", i);
-      _exit(1);
-    }
-    int poffset, psize;
-    int pvaddr;
-    pvaddr = phdr.p_vaddr;
-    poffset = phdr.p_offset;
-    psize = phdr.p_filesz;
-
-    if (pvaddr != 0) {
-      CoreUtils::insert_table(pvaddr, poffset, psize);
-    }
-
-    if (is_debug_tag_set("phdr")) {
-      printf("\n******* PHDR %d *******\n", i);
-      printf("p_type = %d  ", phdr.p_type);
-      printf("p_offset = %d  ", phdr.p_offset);
-      printf("p_vaddr = %#x  ", pvaddr);
-
-      printf("p_paddr = %#x\n", phdr.p_paddr);
-      printf("p_filesz = %d  ", phdr.p_filesz);
-      printf("p_memsz = %d  ", phdr.p_memsz);
-      printf("p_flags = %d  ", phdr.p_flags);
-      printf("p_align = %d\n", phdr.p_align);
-    }
-
-    if (phdr.p_type == PT_NOTE) {
-
-      if (fseek(fp, phdr.p_offset, SEEK_SET) != -1) {
-        Elf32_Nhdr *nhdr, *thdr;
-        if ((nhdr = (Elf32_Nhdr *)ats_malloc(sizeof(Elf32_Nhdr) * phdr.p_filesz))) {
-          if (fread(nhdr, phdr.p_filesz, 1, fp) == 1) {
-            int size = phdr.p_filesz;
-            int sum = 0;
-            thdr = nhdr;
-            while (size) {
-              int len;
-
-              len = sizeof *thdr + ((thdr->n_namesz + 3) & ~3) + ((thdr->n_descsz + 3) & ~3);
-              // making sure the offset is byte aligned
-              char *offset = (char *) (thdr + 1) + ((thdr->n_namesz + 3) & ~3);
-
-              if (len<0 || len> size) {
-                _exit(1);
-              }
-              char *name;
-              name = (char *) (thdr + 1);
-
-              pstatus_t pstat;
-              pstatus_t *ps;
-              lwpstatus_t lwpstat, *lp;
-              lwpstatus_t lwpst;
-              prgreg_t rinfo[NPRGREG];
-              int j;
-              switch (thdr->n_type) {
-
-              case NT_PSTATUS:
-                ps = (pstatus_t *) offset;
-                memcpy(&pstat, ps, sizeof(pstatus_t));
-                lwpst = pstat.pr_lwp;
-                // get the active lwp id
-                lwpid = lwpst.pr_lwpid;
-
-                if (is_debug_tag_set("note")) {
-                  printf("\n**** NT_PSTATUS ****\n");
-                  printf("number of lwps in process = %d\n", pstat.pr_nlwp);
-                  printf("base of stack = %#x\n", pstat.pr_stkbase);
-                  printf("size of process stack = %d\n", pstat.pr_stksize);
-                  printf("lwp id = %d\n", lwpid);
-                }
-                break;
-
-              case NT_LWPSTATUS:
-                lp = (lwpstatus_t *) offset;
-                memcpy(&lwpstat, lp, sizeof(lwpstatus_t));
-
-                for (j = 0; j < NPRGREG; j++) {
-                  rinfo[j] = lwpstat.pr_reg[j];
-                }
-
-                arrayLwp(lwpstat.pr_lwpid - 1);
-                arrayLwp[lwpstat.pr_lwpid - 1].lwpId = lwpstat.pr_lwpid;
-                arrayLwp[lwpstat.pr_lwpid - 1].framep = lwpstat.pr_reg[30];
-
-                if (lwpstat.pr_lwpid == lwpid) {
-
-                  if (is_debug_tag_set("note")) {
-                    printf("\n**** NT_LWPSTATUS of active lwp****\n");
-                    printf("lwp status = 0x%x\n", lwpstat.pr_flags);
-                    printf("lwp id = %d\n", lwpstat.pr_lwpid);
-                    printf("pr_why = %#x\n", lwpstat.pr_why);
-                    printf("pr_what = %#x\n", lwpstat.pr_why);
-
-                    printf("stack pointer = %#x\n", lwpstat.pr_reg[14]);
-                    printf("frame pointer = %#x\n", lwpstat.pr_reg[30]);
-                    printf("program counter if no save = %#x\n", lwpstat.pr_reg[15]);
-                  }
-                }
-                break;
-
-              default:
-                break;
-              }
-              thdr = (Elf32_Nhdr *) ((char *) thdr + len);
-              sum += len;
-              size -= len;
-            }
-          }
-          ats_free(nhdr);
-        }
-      }
-    }
-  }
-
-  if (is_debug_tag_set("core")) {
-    printf("    \tv. address\t\toffset\t\tend of region\t\tnum bytes\n");
-    printf("    \t----------\t\t------\t\t-------------\t\t---------\n");
-
-    for (unsigned int l = 0; l < arrayMem.length(); l++) {
-      printf("%4d)\t", l + 1);
-      printf("%10#x\t\t", arrayMem[l].vaddr);
-      printf("%8d\t%8d\t\t%8d\n", arrayMem[l].offset, arrayMem[l].offset + arrayMem[l].fsize, arrayMem[l].fsize);
-    }
-  }
-
-  if (is_debug_tag_set("arrayLwp")) {
-    for (unsigned int l = 0; l < arrayLwp.length(); l++) {
-      printf("%4d)\t", l + 1);
-      printf("%10d\t\t", arrayLwp[l].lwpId);
-      printf("%8d\n", arrayLwp[l].framep);
-    }
-  }
-
-  CoreUtils::find_stuff(&CoreUtils::test_HdrHeap);
-  CoreUtils::find_stuff(&CoreUtils::test_HttpSM);
-
-  fclose(fp);
-}
-#endif /* sparc */
-
-#if !defined(linux) && !defined(sparc)
+#if !defined(linux)
 void
 process_core(char *fname)
 {

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/78aa134c/proxy/CoreUtils.h
----------------------------------------------------------------------
diff --git a/proxy/CoreUtils.h b/proxy/CoreUtils.h
index 5d973e0..fe16f68 100644
--- a/proxy/CoreUtils.h
+++ b/proxy/CoreUtils.h
@@ -31,27 +31,6 @@
 #ifndef _CORE_UTILS_H_
 #define _CORE_UTILS_H_
 
-
-#if defined(sparc)
-#include  <sys/regset.h>
-#include "DynArray.h"
-
-// to be sorted by lwpid, but lwps are assumed to come in order
-struct lwpTable
-{
-  intptr_t lwpId;
-  intptr_t framep;
-};
-
-// contains local and in registers, frame pointer, and stack base
-struct core_stack_state
-{
-  struct rwindow regs;
-  intptr_t framep;
-  intptr_t stkbase;
-};
-#endif
-
 #if defined(linux)
 #include <stdio.h>
 #include <sys/procfs.h>
@@ -174,10 +153,6 @@ public:
   * outputs: returns the active lwp id
   **********************************************************************/
 
-#if defined(sparc)
-  static intptr_t get_active_thread_Id();
-#endif
-
   /**********************************************************************
   * purpose: returns the base core_stack_state for the given thread id
   * inputs: int threadId, core_stack_state* coress
@@ -187,10 +162,6 @@ public:
   static void get_base_frame(intptr_t framep, core_stack_state * coress);
 #endif
 
-#if defined(sparc)
-  static void get_base_frame(intptr_t threadId, core_stack_state * coress);
-#endif
-
   /**********************************************************************
   * purpose: returns the core_stack_state of the next frame up
   * inputs: core_stack_state* coress