Remove some old dead code from ftrace

This commit is contained in:
Justine Tunney 2022-05-20 04:01:50 -07:00
parent b4ae385a6a
commit 4245da19e2
2 changed files with 14 additions and 21 deletions

View file

@ -16,28 +16,14 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
*/ */
#include "libc/bits/safemacros.internal.h"
#include "libc/calls/calls.h" #include "libc/calls/calls.h"
#include "libc/fmt/itoa.h" #include "libc/fmt/itoa.h"
#include "libc/intrin/cmpxchg.h"
#include "libc/intrin/kprintf.h" #include "libc/intrin/kprintf.h"
#include "libc/intrin/lockcmpxchgp.h" #include "libc/intrin/lockcmpxchgp.h"
#include "libc/intrin/spinlock.h"
#include "libc/log/libfatal.internal.h"
#include "libc/macros.internal.h" #include "libc/macros.internal.h"
#include "libc/math.h"
#include "libc/nexgen32e/rdtsc.h"
#include "libc/nexgen32e/rdtscp.h"
#include "libc/nexgen32e/stackframe.h" #include "libc/nexgen32e/stackframe.h"
#include "libc/nexgen32e/x86feature.h"
#include "libc/runtime/memtrack.internal.h"
#include "libc/runtime/runtime.h"
#include "libc/runtime/stack.h" #include "libc/runtime/stack.h"
#include "libc/runtime/symbols.internal.h" #include "libc/runtime/symbols.internal.h"
#include "libc/stdio/stdio.h"
#include "libc/sysv/consts/map.h"
#include "libc/sysv/consts/o.h"
#include "libc/time/clockstonanos.internal.h"
#define MAX_NESTING 512 #define MAX_NESTING 512
@ -57,7 +43,6 @@ static struct Ftrace {
int skew; int skew;
int stackdigs; int stackdigs;
int64_t lastaddr; int64_t lastaddr;
uint64_t laststamp;
} g_ftrace; } g_ftrace;
static privileged int GetNestingLevelImpl(struct StackFrame *frame) { static privileged int GetNestingLevelImpl(struct StackFrame *frame) {
@ -112,17 +97,14 @@ static privileged inline bool AcquireFtraceLock(void) {
*/ */
privileged void ftracer(void) { privileged void ftracer(void) {
long stackuse; long stackuse;
uint64_t stamp;
struct StackFrame *frame; struct StackFrame *frame;
if (AcquireFtraceLock()) { if (AcquireFtraceLock()) {
stamp = rdtsc();
frame = __builtin_frame_address(0); frame = __builtin_frame_address(0);
frame = frame->next; frame = frame->next;
if (frame->addr != g_ftrace.lastaddr) { if (frame->addr != g_ftrace.lastaddr) {
stackuse = (intptr_t)GetStackAddr(0) + GetStackSize() - (intptr_t)frame; stackuse = (intptr_t)GetStackAddr(0) + GetStackSize() - (intptr_t)frame;
kprintf("%rFUN %5P %'13T %'*ld %*s%t\n", g_ftrace.stackdigs, stackuse, kprintf("%rFUN %5P %'13T %'*ld %*s%t\n", g_ftrace.stackdigs, stackuse,
GetNestingLevel(frame) * 2, "", frame->addr); GetNestingLevel(frame) * 2, "", frame->addr);
g_ftrace.laststamp = X86_HAVE(RDTSCP) ? rdtscp(0) : rdtsc();
g_ftrace.lastaddr = frame->addr; g_ftrace.lastaddr = frame->addr;
} }
ReleaseFtraceLock(); ReleaseFtraceLock();
@ -132,7 +114,6 @@ privileged void ftracer(void) {
textstartup int ftrace_install(void) { textstartup int ftrace_install(void) {
if (GetSymbolTable()) { if (GetSymbolTable()) {
g_ftrace.lastaddr = -1; g_ftrace.lastaddr = -1;
g_ftrace.laststamp = kStartTsc;
g_ftrace.stackdigs = LengthInt64Thousands(GetStackSize()); g_ftrace.stackdigs = LengthInt64Thousands(GetStackSize());
g_ftrace.skew = GetNestingLevelImpl(__builtin_frame_address(0)); g_ftrace.skew = GetNestingLevelImpl(__builtin_frame_address(0));
return __hook(ftrace_hook, GetSymbolTable()); return __hook(ftrace_hook, GetSymbolTable());

View file

@ -6552,10 +6552,13 @@ static int MemoryMonitor(void *arg) {
mi = mi2; mi = mi2;
mi[0].x = (intptr_t)_base >> 16; mi[0].x = (intptr_t)_base >> 16;
mi[0].size = _etext - _base; mi[0].size = _etext - _base;
mi[0].flags = 0;
mi[1].x = (intptr_t)_etext >> 16; mi[1].x = (intptr_t)_etext >> 16;
mi[1].size = _edata - _etext; mi[1].size = _edata - _etext;
mi[1].flags = 0;
mi[2].x = (intptr_t)_edata >> 16; mi[2].x = (intptr_t)_edata >> 16;
mi[2].size = _end - _edata; mi[2].size = _end - _edata;
mi[2].flags = 0;
_spinlock(&_mmi.lock); _spinlock(&_mmi.lock);
if (_mmi.i == intervals - 3) { if (_mmi.i == intervals - 3) {
memcpy(mi + 3, _mmi.p, _mmi.i * sizeof(*mi)); memcpy(mi + 3, _mmi.p, _mmi.i * sizeof(*mi));
@ -6585,7 +6588,11 @@ static int MemoryMonitor(void *arg) {
rc = mincore(addr + j * PAGESIZE, PAGESIZE, &rez); rc = mincore(addr + j * PAGESIZE, PAGESIZE, &rez);
if (!rc) { if (!rc) {
if (rez & 1) { if (rez & 1) {
color2 = 42; if (mi[i].flags & MAP_SHARED) {
color2 = 105;
} else {
color2 = 42;
}
} else { } else {
color2 = 41; color2 = 41;
} }
@ -6597,7 +6604,11 @@ static int MemoryMonitor(void *arg) {
color = color2; color = color2;
appendf(&b, "\e[%dm", color); appendf(&b, "\e[%dm", color);
} }
appendw(&b, ' '); if (mi[i].flags & MAP_ANONYMOUS) {
appendw(&b, ' ');
} else {
appendw(&b, '/');
}
} }
} }
@ -7294,6 +7305,7 @@ void RedBean(int argc, char *argv[]) {
#else #else
GetHostsTxt(); // for effect GetHostsTxt(); // for effect
GetResolvConf(); // for effect GetResolvConf(); // for effect
__print_maps();
if (daemonize || uniprocess || !linenoiseIsTerminal()) { if (daemonize || uniprocess || !linenoiseIsTerminal()) {
EventLoop(HEARTBEAT); EventLoop(HEARTBEAT);
} else if (IsWindows()) { } else if (IsWindows()) {