summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@rei2.9hal>2012-02-13 06:06:13 +0100
committercinap_lenrek <cinap_lenrek@rei2.9hal>2012-02-13 06:06:13 +0100
commit6cb7ba7ed5e515a7ae4a286c25f8adf13b01349a (patch)
tree2ab4d12064b2ade1b546afacef7fbea756111c72 /sys/src
parentc9f5d14ea6948355e760bb55b281640a3ebbca55 (diff)
libmach: use correct kernel base, kprof: use kernel base from libmach (from applied/kprof patch)
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/cmd/kprof.c14
-rw-r--r--sys/src/libmach/8.c2
2 files changed, 11 insertions, 5 deletions
diff --git a/sys/src/cmd/kprof.c b/sys/src/cmd/kprof.c
index e3cd5cb61..4dab86dc1 100644
--- a/sys/src/cmd/kprof.c
+++ b/sys/src/cmd/kprof.c
@@ -94,19 +94,25 @@ main(int argc, char *argv[])
exits(0);
if (!textsym(&s, 0))
error(0, "no text symbols");
- tbase = s.value & ~(mach->pgsize-1); /* align down to page */
- print("KTZERO %.8llux\n", tbase);
+
+ tbase = mach->kbase;
+ if(tbase != s.value & ~0xFFF)
+ print("warning: kbase %.8llux != tbase %.8llux\n",
+ tbase, s.value&~0xFFF);
+ print("KTZERO %.8llux PGSIZE %dKb\n", tbase, mach->pgsize/1024);
/*
* Accumulate counts for each function
*/
cp = 0;
k = 0;
- for (i = 0, j = (s.value-tbase)/PCRES+2; j < n; i++) {
+ for (i = 0, j = 2; j < n; i++) {
name = s.name; /* save name */
if (!textsym(&s, i)) /* get next symbol */
break;
+ s.value -= tbase;
+ s.value /= PCRES;
sum = 0;
- while (j < n && j*PCRES < s.value-tbase)
+ while (j < n && j < s.value)
sum += data[j++];
if (sum) {
cp = realloc(cp, (k+1)*sizeof(struct COUNTER));
diff --git a/sys/src/libmach/8.c b/sys/src/libmach/8.c
index 7ab7afcc9..112e1977c 100644
--- a/sys/src/libmach/8.c
+++ b/sys/src/libmach/8.c
@@ -68,7 +68,7 @@ Mach mi386 =
"setSB", /* static base register name (bogus anyways) */
0, /* static base register value */
0x1000, /* page size */
- 0x80100000ULL, /* kernel base */
+ 0xF0100000ULL, /* kernel base */
0xF0000000ULL, /* kernel text mask */
0x7FFFFFFFULL, /* user stack top */
1, /* quantization of pc */