Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2011 01:17:30 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r222209 - in projects/largeSMP: contrib/binutils/binutils contrib/binutils/gas contrib/binutils/ld contrib/gcc contrib/gcclibs/libiberty contrib/top share/mk sys/amd64/conf sys/conf sys...
Message-ID:  <201105230117.p4N1HUCc098502@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Mon May 23 01:17:30 2011
New Revision: 222209
URL: http://svn.freebsd.org/changeset/base/222209

Log:
  MFC

Modified:
  projects/largeSMP/contrib/binutils/binutils/objcopy.c
  projects/largeSMP/contrib/binutils/binutils/readelf.c
  projects/largeSMP/contrib/binutils/binutils/strings.c
  projects/largeSMP/contrib/binutils/gas/read.h
  projects/largeSMP/contrib/binutils/gas/write.c
  projects/largeSMP/contrib/binutils/ld/ldlang.c
  projects/largeSMP/contrib/gcc/combine.c
  projects/largeSMP/contrib/gcc/emit-rtl.c
  projects/largeSMP/contrib/gcc/function.c
  projects/largeSMP/contrib/gcc/omp-low.c
  projects/largeSMP/contrib/gcc/tree-cfg.c
  projects/largeSMP/contrib/gcc/tree-vect-patterns.c
  projects/largeSMP/contrib/gcclibs/libiberty/regex.c
  projects/largeSMP/sys/amd64/conf/GENERIC
  projects/largeSMP/sys/conf/NOTES
  projects/largeSMP/sys/kern/kern_cpuset.c
  projects/largeSMP/sys/kern/kern_ktr.c
  projects/largeSMP/sys/sparc64/include/ktr.h
  projects/largeSMP/sys/sys/cpuset.h
  projects/largeSMP/sys/sys/ktr.h
Directory Properties:
  projects/largeSMP/   (props changed)
  projects/largeSMP/cddl/contrib/opensolaris/   (props changed)
  projects/largeSMP/contrib/bind9/   (props changed)
  projects/largeSMP/contrib/binutils/   (props changed)
  projects/largeSMP/contrib/bzip2/   (props changed)
  projects/largeSMP/contrib/dialog/   (props changed)
  projects/largeSMP/contrib/ee/   (props changed)
  projects/largeSMP/contrib/expat/   (props changed)
  projects/largeSMP/contrib/file/   (props changed)
  projects/largeSMP/contrib/gcc/   (props changed)
  projects/largeSMP/contrib/gdb/   (props changed)
  projects/largeSMP/contrib/gdtoa/   (props changed)
  projects/largeSMP/contrib/gnu-sort/   (props changed)
  projects/largeSMP/contrib/groff/   (props changed)
  projects/largeSMP/contrib/less/   (props changed)
  projects/largeSMP/contrib/libpcap/   (props changed)
  projects/largeSMP/contrib/libstdc++/   (props changed)
  projects/largeSMP/contrib/llvm/   (props changed)
  projects/largeSMP/contrib/llvm/tools/clang/   (props changed)
  projects/largeSMP/contrib/ncurses/   (props changed)
  projects/largeSMP/contrib/netcat/   (props changed)
  projects/largeSMP/contrib/ntp/   (props changed)
  projects/largeSMP/contrib/one-true-awk/   (props changed)
  projects/largeSMP/contrib/openbsm/   (props changed)
  projects/largeSMP/contrib/openpam/   (props changed)
  projects/largeSMP/contrib/pf/   (props changed)
  projects/largeSMP/contrib/sendmail/   (props changed)
  projects/largeSMP/contrib/tcpdump/   (props changed)
  projects/largeSMP/contrib/tcsh/   (props changed)
  projects/largeSMP/contrib/top/   (props changed)
  projects/largeSMP/contrib/top/install-sh   (props changed)
  projects/largeSMP/contrib/tzcode/stdtime/   (props changed)
  projects/largeSMP/contrib/tzcode/zic/   (props changed)
  projects/largeSMP/contrib/tzdata/   (props changed)
  projects/largeSMP/contrib/wpa/   (props changed)
  projects/largeSMP/contrib/xz/   (props changed)
  projects/largeSMP/crypto/openssh/   (props changed)
  projects/largeSMP/crypto/openssl/   (props changed)
  projects/largeSMP/gnu/lib/   (props changed)
  projects/largeSMP/gnu/usr.bin/binutils/   (props changed)
  projects/largeSMP/gnu/usr.bin/cc/cc_tools/   (props changed)
  projects/largeSMP/gnu/usr.bin/gdb/   (props changed)
  projects/largeSMP/lib/libc/   (props changed)
  projects/largeSMP/lib/libc/stdtime/   (props changed)
  projects/largeSMP/lib/libutil/   (props changed)
  projects/largeSMP/lib/libz/   (props changed)
  projects/largeSMP/sbin/   (props changed)
  projects/largeSMP/sbin/ipfw/   (props changed)
  projects/largeSMP/share/mk/bsd.arch.inc.mk   (props changed)
  projects/largeSMP/share/zoneinfo/   (props changed)
  projects/largeSMP/sys/   (props changed)
  projects/largeSMP/sys/amd64/include/xen/   (props changed)
  projects/largeSMP/sys/boot/   (props changed)
  projects/largeSMP/sys/boot/i386/efi/   (props changed)
  projects/largeSMP/sys/boot/ia64/efi/   (props changed)
  projects/largeSMP/sys/boot/ia64/ski/   (props changed)
  projects/largeSMP/sys/boot/powerpc/boot1.chrp/   (props changed)
  projects/largeSMP/sys/boot/powerpc/ofw/   (props changed)
  projects/largeSMP/sys/cddl/contrib/opensolaris/   (props changed)
  projects/largeSMP/sys/conf/   (props changed)
  projects/largeSMP/sys/contrib/dev/acpica/   (props changed)
  projects/largeSMP/sys/contrib/octeon-sdk/   (props changed)
  projects/largeSMP/sys/contrib/pf/   (props changed)
  projects/largeSMP/sys/contrib/x86emu/   (props changed)
  projects/largeSMP/usr.bin/calendar/   (props changed)
  projects/largeSMP/usr.bin/csup/   (props changed)
  projects/largeSMP/usr.bin/procstat/   (props changed)
  projects/largeSMP/usr.sbin/ndiscvt/   (props changed)
  projects/largeSMP/usr.sbin/zic/   (props changed)

Modified: projects/largeSMP/contrib/binutils/binutils/objcopy.c
==============================================================================
--- projects/largeSMP/contrib/binutils/binutils/objcopy.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/binutils/binutils/objcopy.c	Mon May 23 01:17:30 2011	(r222209)
@@ -1542,7 +1542,8 @@ copy_object (bfd *ibfd, bfd *obfd)
 	    /* Umm, not sure what to do in this case.  */
 	    debuglink_vma = 0x1000;
 
-	  bfd_set_section_vma (obfd, gnu_debuglink_section, debuglink_vma);
+	  (void) bfd_set_section_vma (obfd, gnu_debuglink_section,
+				      debuglink_vma);
 	}
     }
 

Modified: projects/largeSMP/contrib/binutils/binutils/readelf.c
==============================================================================
--- projects/largeSMP/contrib/binutils/binutils/readelf.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/binutils/binutils/readelf.c	Mon May 23 01:17:30 2011	(r222209)
@@ -9701,7 +9701,7 @@ process_archive (char *file_name, FILE *
 	}
 
       if ((longnames_size & 1) != 0)
-	getc (file);
+	(void) getc (file);
 
       got = fread (&arhdr, 1, sizeof arhdr, file);
       if (got != sizeof arhdr)

Modified: projects/largeSMP/contrib/binutils/binutils/strings.c
==============================================================================
--- projects/largeSMP/contrib/binutils/binutils/strings.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/binutils/binutils/strings.c	Mon May 23 01:17:30 2011	(r222209)
@@ -593,7 +593,7 @@ print_strings (const char *filename, FIL
 	  case 8:
 #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
 	    if (sizeof (start) > sizeof (long))
-	      printf ("%7Lo ", (unsigned long long) start);
+	      printf ("%7llo ", (unsigned long long) start);
 	    else
 #else
 # if !BFD_HOST_64BIT_LONG
@@ -608,7 +608,7 @@ print_strings (const char *filename, FIL
 	  case 10:
 #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
 	    if (sizeof (start) > sizeof (long))
-	      printf ("%7Ld ", (unsigned long long) start);
+	      printf ("%7lld ", (unsigned long long) start);
 	    else
 #else
 # if !BFD_HOST_64BIT_LONG
@@ -623,7 +623,7 @@ print_strings (const char *filename, FIL
 	  case 16:
 #if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
 	    if (sizeof (start) > sizeof (long))
-	      printf ("%7Lx ", (unsigned long long) start);
+	      printf ("%7llx ", (unsigned long long) start);
 	    else
 #else
 # if !BFD_HOST_64BIT_LONG

Modified: projects/largeSMP/contrib/binutils/gas/read.h
==============================================================================
--- projects/largeSMP/contrib/binutils/gas/read.h	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/binutils/gas/read.h	Mon May 23 01:17:30 2011	(r222209)
@@ -30,7 +30,7 @@ extern char *input_line_pointer;	/* -> c
 
 #ifdef PERMIT_WHITESPACE
 #define SKIP_WHITESPACE()			\
-  ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
+  do { if (*input_line_pointer == ' ') ++input_line_pointer; } while (0)
 #else
 #define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
 #endif

Modified: projects/largeSMP/contrib/binutils/gas/write.c
==============================================================================
--- projects/largeSMP/contrib/binutils/gas/write.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/binutils/gas/write.c	Mon May 23 01:17:30 2011	(r222209)
@@ -345,7 +345,7 @@ record_alignment (/* Segment to which al
     return;
 
   if ((unsigned int) align > bfd_get_section_alignment (stdoutput, seg))
-    bfd_set_section_alignment (stdoutput, seg, align);
+    (void) bfd_set_section_alignment (stdoutput, seg, align);
 }
 
 int
@@ -2247,7 +2247,7 @@ relax_segment (struct frag *segment_frag
 
 		      newf = frag_alloc (ob);
 		      obstack_blank_fast (ob, fragP->fr_var);
-		      obstack_finish (ob);
+		      (void) obstack_finish (ob);
 		      memcpy (newf, fragP, SIZEOF_STRUCT_FRAG);
 		      memcpy (newf->fr_literal,
 			      fragP->fr_literal + fragP->fr_fix,

Modified: projects/largeSMP/contrib/binutils/ld/ldlang.c
==============================================================================
--- projects/largeSMP/contrib/binutils/ld/ldlang.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/binutils/ld/ldlang.c	Mon May 23 01:17:30 2011	(r222209)
@@ -4274,9 +4274,10 @@ lang_size_sections_1
 			   " section %s\n"), os->name);
 
 		input = os->children.head->input_section.section;
-		bfd_set_section_vma (os->bfd_section->owner,
-				     os->bfd_section,
-				     bfd_section_vma (input->owner, input));
+		(void) bfd_set_section_vma (os->bfd_section->owner,
+					    os->bfd_section,
+					    bfd_section_vma (input->owner,
+							     input));
 		os->bfd_section->size = input->size;
 		break;
 	      }
@@ -4361,7 +4362,7 @@ lang_size_sections_1
 			     os->name, (unsigned long) (newdot - savedot));
 		  }
 
-		bfd_set_section_vma (0, os->bfd_section, newdot);
+		(void) bfd_set_section_vma (0, os->bfd_section, newdot);
 
 		os->bfd_section->output_offset = 0;
 	      }

Modified: projects/largeSMP/contrib/gcc/combine.c
==============================================================================
--- projects/largeSMP/contrib/gcc/combine.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcc/combine.c	Mon May 23 01:17:30 2011	(r222209)
@@ -12442,7 +12442,7 @@ distribute_notes (rtx notes, rtx from_in
 	    REG_N_DEATHS (REGNO (XEXP (note, 0)))++;
 
 	  REG_NOTES (place2) = gen_rtx_fmt_ee (GET_CODE (note),
-					       REG_NOTE_KIND (note),
+					       GET_MODE (note),
 					       XEXP (note, 0),
 					       REG_NOTES (place2));
 	}

Modified: projects/largeSMP/contrib/gcc/emit-rtl.c
==============================================================================
--- projects/largeSMP/contrib/gcc/emit-rtl.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcc/emit-rtl.c	Mon May 23 01:17:30 2011	(r222209)
@@ -3210,7 +3210,7 @@ try_split (rtx pat, rtx trial, int last)
 	    {
 	      if (CALL_P (insn))
 		REG_NOTES (insn)
-		  = gen_rtx_EXPR_LIST (REG_NOTE_KIND (note),
+		  = gen_rtx_EXPR_LIST (GET_MODE (note),
 				       XEXP (note, 0),
 				       REG_NOTES (insn));
 	      insn = PREV_INSN (insn);
@@ -3223,7 +3223,7 @@ try_split (rtx pat, rtx trial, int last)
 	    {
 	      if (JUMP_P (insn))
 		REG_NOTES (insn)
-		  = gen_rtx_EXPR_LIST (REG_NOTE_KIND (note),
+		  = gen_rtx_EXPR_LIST (GET_MODE (note),
 				       XEXP (note, 0),
 				       REG_NOTES (insn));
 	      insn = PREV_INSN (insn);
@@ -4589,7 +4589,8 @@ set_unique_reg_note (rtx insn, enum reg_
       return note;
     }
 
-  REG_NOTES (insn) = gen_rtx_EXPR_LIST (kind, datum, REG_NOTES (insn));
+  REG_NOTES (insn) = gen_rtx_EXPR_LIST ((enum machine_mode) kind, datum,
+					REG_NOTES (insn));
   return REG_NOTES (insn);
 }
 
@@ -5344,12 +5345,12 @@ emit_copy_of_insn_after (rtx insn, rtx a
       {
 	if (GET_CODE (link) == EXPR_LIST)
 	  REG_NOTES (new)
-	    = copy_insn_1 (gen_rtx_EXPR_LIST (REG_NOTE_KIND (link),
+	    = copy_insn_1 (gen_rtx_EXPR_LIST (GET_MODE (link),
 					      XEXP (link, 0),
 					      REG_NOTES (new)));
 	else
 	  REG_NOTES (new)
-	    = copy_insn_1 (gen_rtx_INSN_LIST (REG_NOTE_KIND (link),
+	    = copy_insn_1 (gen_rtx_INSN_LIST (GET_MODE (link),
 					      XEXP (link, 0),
 					      REG_NOTES (new)));
       }

Modified: projects/largeSMP/contrib/gcc/function.c
==============================================================================
--- projects/largeSMP/contrib/gcc/function.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcc/function.c	Mon May 23 01:17:30 2011	(r222209)
@@ -4008,22 +4008,19 @@ stack_protect_epilogue (void)
 
   /* Allow the target to compare Y with X without leaking either into
      a register.  */
-  switch (HAVE_stack_protect_test != 0)
+  if (HAVE_stack_protect_test != 0)
     {
-    case 1:
       tmp = gen_stack_protect_test (x, y, label);
       if (tmp)
 	{
 	  emit_insn (tmp);
-	  break;
+	  goto done;
 	}
-      /* FALLTHRU */
-
-    default:
-      emit_cmp_and_jump_insns (x, y, EQ, NULL_RTX, ptr_mode, 1, label);
-      break;
     }
 
+  emit_cmp_and_jump_insns (x, y, EQ, NULL_RTX, ptr_mode, 1, label);
+ done:
+
   /* The noreturn predictor has been moved to the tree level.  The rtl-level
      predictors estimate this branch about 20%, which isn't enough to get
      things moved out of line.  Since this is the only extant case of adding

Modified: projects/largeSMP/contrib/gcc/omp-low.c
==============================================================================
--- projects/largeSMP/contrib/gcc/omp-low.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcc/omp-low.c	Mon May 23 01:17:30 2011	(r222209)
@@ -118,7 +118,7 @@ static tree maybe_lookup_decl_in_outer_c
 /* Find an OpenMP clause of type KIND within CLAUSES.  */
 
 static tree
-find_omp_clause (tree clauses, enum tree_code kind)
+find_omp_clause (tree clauses, enum omp_clause_code kind)
 {
   for (; clauses ; clauses = OMP_CLAUSE_CHAIN (clauses))
     if (OMP_CLAUSE_CODE (clauses) == kind)

Modified: projects/largeSMP/contrib/gcc/tree-cfg.c
==============================================================================
--- projects/largeSMP/contrib/gcc/tree-cfg.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcc/tree-cfg.c	Mon May 23 01:17:30 2011	(r222209)
@@ -2854,7 +2854,7 @@ bsi_insert_before (block_stmt_iterator *
 {
   set_bb_for_stmt (t, i->bb);
   update_modified_stmts (t);
-  tsi_link_before (&i->tsi, t, m);
+  tsi_link_before (&i->tsi, t, (enum tsi_iterator_update) m);
 }
 
 
@@ -2867,7 +2867,7 @@ bsi_insert_after (block_stmt_iterator *i
 {
   set_bb_for_stmt (t, i->bb);
   update_modified_stmts (t);
-  tsi_link_after (&i->tsi, t, m);
+  tsi_link_after (&i->tsi, t, (enum tsi_iterator_update) m);
 }
 
 

Modified: projects/largeSMP/contrib/gcc/tree-vect-patterns.c
==============================================================================
--- projects/largeSMP/contrib/gcc/tree-vect-patterns.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcc/tree-vect-patterns.c	Mon May 23 01:17:30 2011	(r222209)
@@ -487,7 +487,7 @@ vect_pattern_recog_1 (
     }
   else
     {
-      enum tree_code vec_mode;
+      enum machine_mode vec_mode;
       enum insn_code icode;
       optab optab;
 

Modified: projects/largeSMP/contrib/gcclibs/libiberty/regex.c
==============================================================================
--- projects/largeSMP/contrib/gcclibs/libiberty/regex.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/contrib/gcclibs/libiberty/regex.c	Mon May 23 01:17:30 2011	(r222209)
@@ -149,7 +149,7 @@ char *realloc ();
 #    include <string.h>
 #    ifndef bzero
 #     ifndef _LIBC
-#      define bzero(s, n)	(memset (s, '\0', n), (s))
+#      define bzero(s, n)	((void) (memset (s, '\0', n), (s)))
 #     else
 #      define bzero(s, n)	__bzero (s, n)
 #     endif

Modified: projects/largeSMP/sys/amd64/conf/GENERIC
==============================================================================
--- projects/largeSMP/sys/amd64/conf/GENERIC	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/amd64/conf/GENERIC	Mon May 23 01:17:30 2011	(r222209)
@@ -75,6 +75,8 @@ options 	INVARIANT_SUPPORT	# Extra sanit
 options 	WITNESS			# Enable checks to detect deadlocks and cycles
 options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
 options 	MALLOC_DEBUG_MAXZONES=8	# Separate malloc(9) zones
+options 	KTR
+options 	KTR_CPUMASK=("0x3")
 
 # Make an SMP-capable kernel by default
 options 	SMP			# Symmetric MultiProcessor Kernel

Modified: projects/largeSMP/sys/conf/NOTES
==============================================================================
--- projects/largeSMP/sys/conf/NOTES	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/conf/NOTES	Mon May 23 01:17:30 2011	(r222209)
@@ -441,7 +441,7 @@ options 	KTR
 options 	KTR_ENTRIES=1024
 options 	KTR_COMPILE=(KTR_INTR|KTR_PROC)
 options 	KTR_MASK=KTR_INTR
-options 	KTR_CPUMASK=0x3
+options 	KTR_CPUMASK=("0x3")
 options 	KTR_VERBOSE
 
 #

Modified: projects/largeSMP/sys/kern/kern_cpuset.c
==============================================================================
--- projects/largeSMP/sys/kern/kern_cpuset.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/kern/kern_cpuset.c	Mon May 23 01:17:30 2011	(r222209)
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/cpuset.h>
 #include <sys/sx.h>
 #include <sys/queue.h>
+#include <sys/libkern.h>
 #include <sys/limits.h>
 #include <sys/bus.h>
 #include <sys/interrupt.h>
@@ -660,6 +661,41 @@ cpusetobj_strprint(char *buf, const cpus
 }
 
 /*
+ * Build a valid cpuset_t object from a string representation.
+ * It expects an incoming buffer at least sized as CPUSETBUFSIZ.
+ */
+int
+cpusetobj_strscan(cpuset_t *set, const char *buf)
+{
+	u_int nwords;
+	int i;
+
+	if (strlen(buf) > CPUSETBUFSIZ - 1)
+		return (-1);
+
+	/* Allow to pass a shorter version of the mask when necessary. */
+	nwords = 1;
+	for (i = 0; buf[i] != '\0'; i++)
+		if (buf[i] == ',')
+			nwords++;
+	if (nwords > _NCPUWORDS)
+		return (-1);
+
+	CPU_ZERO(set);
+	for (i = nwords - 1; i > 0; i--) {
+		if (!sscanf(buf, "%lx, ", &set->__bits[i]))
+			return (-1);
+		buf = strstr(buf, " ");
+		if (buf == NULL)
+			return (-1);
+		buf++;
+	}
+	if (!sscanf(buf, "%lx", &set->__bits[0]))
+		return (-1);
+	return (0);
+}
+
+/*
  * Apply an anonymous mask to a single thread.
  */
 int

Modified: projects/largeSMP/sys/kern/kern_ktr.c
==============================================================================
--- projects/largeSMP/sys/kern/kern_ktr.c	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/kern/kern_ktr.c	Mon May 23 01:17:30 2011	(r222209)
@@ -40,8 +40,10 @@ __FBSDID("$FreeBSD$");
 #include "opt_alq.h"
 
 #include <sys/param.h>
+#include <sys/queue.h>
 #include <sys/alq.h>
 #include <sys/cons.h>
+#include <sys/cpuset.h>
 #include <sys/kernel.h>
 #include <sys/ktr.h>
 #include <sys/libkern.h>
@@ -68,10 +70,6 @@ __FBSDID("$FreeBSD$");
 #define	KTR_MASK	(0)
 #endif
 
-#ifndef KTR_CPUMASK
-#define	KTR_CPUMASK	(~0)
-#endif
-
 #ifndef KTR_TIME
 #define	KTR_TIME	get_cyclecount()
 #endif
@@ -84,10 +82,10 @@ FEATURE(ktr, "Kernel support for KTR ker
 
 SYSCTL_NODE(_debug, OID_AUTO, ktr, CTLFLAG_RD, 0, "KTR options");
 
-int	ktr_cpumask = KTR_CPUMASK;
-TUNABLE_INT("debug.ktr.cpumask", &ktr_cpumask);
-SYSCTL_INT(_debug_ktr, OID_AUTO, cpumask, CTLFLAG_RW,
-    &ktr_cpumask, 0, "Bitmask of CPUs on which KTR logging is enabled");
+static char ktr_cpumask[CPUSETBUFSIZ];
+TUNABLE_STR("debug.ktr.cpumask", ktr_cpumask, sizeof(ktr_cpumask));
+SYSCTL_STRING(_debug_ktr, OID_AUTO, cpumask, CTLFLAG_RW, ktr_cpumask,
+    sizeof(ktr_cpumask), "Bitmask of CPUs on which KTR logging is enabled");
 
 int	ktr_mask = KTR_MASK;
 TUNABLE_INT("debug.ktr.mask", &ktr_mask);
@@ -198,6 +196,7 @@ ktr_tracepoint(u_int mask, const char *f
     u_long arg1, u_long arg2, u_long arg3, u_long arg4, u_long arg5,
     u_long arg6)
 {
+	cpuset_t intern_cpumask;
 	struct ktr_entry *entry;
 #ifdef KTR_ALQ
 	struct ale *ale = NULL;
@@ -212,8 +211,16 @@ ktr_tracepoint(u_int mask, const char *f
 		return;
 	if ((ktr_mask & mask) == 0)
 		return;
+#ifndef KTR_CPUMASK
+	CPU_FILL(&intern_cpumask);
+#else
+	if (ktr_cpumask[0] == '\0')
+		strncpy(ktr_cpumask, KTR_CPUMASK, sizeof(ktr_cpumask));
+	if (cpusetobj_strscan(&intern_cpumask, ktr_cpumask) == -1)
+		return;
+#endif
 	cpu = KTR_CPU;
-	if (((1 << cpu) & ktr_cpumask) == 0)
+	if (!CPU_ISSET(cpu, &intern_cpumask))
 		return;
 #if defined(KTR_VERBOSE) || defined(KTR_ALQ)
 	td = curthread;

Modified: projects/largeSMP/sys/sparc64/include/ktr.h
==============================================================================
--- projects/largeSMP/sys/sparc64/include/ktr.h	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/sparc64/include/ktr.h	Mon May 23 01:17:30 2011	(r222209)
@@ -85,7 +85,9 @@ l2:	add	r2, 1, r3 ; \
 	lduw	[PCPU(MID)], r1 ; \
 	mov	1, r2 ; \
 	sllx	r2, r1, r1 ; \
+#if 0
 	TEST(ktr_cpumask, r1, r2, r3, l3) ; \
+#endif
 	ATR(desc, r1, r2, r3, l1, l2)
 
 #endif /* LOCORE */

Modified: projects/largeSMP/sys/sys/cpuset.h
==============================================================================
--- projects/largeSMP/sys/sys/cpuset.h	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/sys/cpuset.h	Mon May 23 01:17:30 2011	(r222209)
@@ -216,6 +216,7 @@ int	cpuset_create_root(struct prison *, 
 int	cpuset_setproc_update_set(struct proc *, struct cpuset *);
 int	cpusetobj_ffs(const cpuset_t *);
 char	*cpusetobj_strprint(char *, const cpuset_t *);
+int	cpusetobj_strscan(cpuset_t *, const char *);
 
 #else
 __BEGIN_DECLS

Modified: projects/largeSMP/sys/sys/ktr.h
==============================================================================
--- projects/largeSMP/sys/sys/ktr.h	Sun May 22 22:28:07 2011	(r222208)
+++ projects/largeSMP/sys/sys/ktr.h	Mon May 23 01:17:30 2011	(r222209)
@@ -107,7 +107,6 @@ struct ktr_entry {
 	u_long	ktr_parms[KTR_PARMS];
 };
 
-extern int ktr_cpumask;
 extern int ktr_mask;
 extern int ktr_entries;
 extern int ktr_verbose;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105230117.p4N1HUCc098502>