mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
Restore lost wake_up().
Sun May 8 15:45:08 2005 Søren Sandmann <sandmann@redhat.com> * sysprof-module.c (do_generate): Restore lost wake_up(). * sfile.c: Comment out use of bz2. * Makefile: Add an install target. Add GLADE_DIR and PIXMAP_DIR * sysprof.c (build_gui): use GLADE_DIR and PIXMAP_DIR here. * TODO: Updates.
This commit is contained in:
committed by
Søren Sandmann Pedersen
parent
c427b88352
commit
aaa38daad8
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
Sun May 8 15:45:08 2005 Søren Sandmann <sandmann@redhat.com>
|
||||||
|
|
||||||
|
* sysprof-module.c (do_generate): Restore lost wake_up().
|
||||||
|
|
||||||
|
* sfile.c: Comment out use of bz2.
|
||||||
|
|
||||||
|
* Makefile: Add an install target. Add GLADE_DIR and PIXMAP_DIR
|
||||||
|
|
||||||
|
* sysprof.c (build_gui): use GLADE_DIR and PIXMAP_DIR here.
|
||||||
|
|
||||||
|
* TODO: Updates.
|
||||||
|
|
||||||
Sat May 7 13:57:17 2005 Søren Sandmann <sandmann@redhat.com>
|
Sat May 7 13:57:17 2005 Søren Sandmann <sandmann@redhat.com>
|
||||||
|
|
||||||
* sfile.c (sfile_output_free): Implement this function
|
* sfile.c (sfile_output_free): Implement this function
|
||||||
|
|||||||
82
Makefile
82
Makefile
@ -5,8 +5,16 @@ CFLAGS += $(MODCFLAGS) -DKERNEL26
|
|||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
CFLAGS := $(shell pkg-config --cflags gtk+-2.0 libglade-2.0) -Wall -g
|
ifeq ($(PREFIX),)
|
||||||
LIBS := $(shell pkg-config --libs gtk+-2.0 libglade-2.0) -lbfd -liberty -lbz2
|
PREFIX := /usr/local
|
||||||
|
endif
|
||||||
|
|
||||||
|
BINDIR := $(PREFIX)/bin
|
||||||
|
GLADE_DIR := $(PREFIX)/share/sysprof
|
||||||
|
PIXMAP_DIR := $(PREFIX)/share/pixmaps/sysprof
|
||||||
|
|
||||||
|
CFLAGS := $(shell pkg-config --cflags gtk+-2.0 libglade-2.0) -Wall -g -DGLADE_DIR=\"$(GLADE_DIR)\" -DPIXMAP_DIR=\"$(PIXMAP_DIR)\"
|
||||||
|
LIBS := $(shell pkg-config --libs gtk+-2.0 libglade-2.0) -lbfd -liberty
|
||||||
C_FILES := sysprof.c binfile.c stackstash.c watch.c process.c \
|
C_FILES := sysprof.c binfile.c stackstash.c watch.c process.c \
|
||||||
profile.c treeviewutils.c sfile.c
|
profile.c treeviewutils.c sfile.c
|
||||||
OBJS := $(addsuffix .o, $(basename $(C_FILES)))
|
OBJS := $(addsuffix .o, $(basename $(C_FILES)))
|
||||||
@ -17,12 +25,26 @@ INCLUDE := -isystem $(KDIR)/include
|
|||||||
MODCFLAGS := -DMODULE -D__KERNEL__ -Wall ${INCLUDE}
|
MODCFLAGS := -DMODULE -D__KERNEL__ -Wall ${INCLUDE}
|
||||||
MODULE := sysprof-module
|
MODULE := sysprof-module
|
||||||
|
|
||||||
all: check $(BINARY) $(MODULE).o
|
KMAKE := $(MAKE) -C $(KDIR) SUBDIRS=$(PWD)
|
||||||
|
|
||||||
|
all: binaries
|
||||||
|
@echo ==========================================
|
||||||
|
@echo
|
||||||
|
@echo To install sysprof type
|
||||||
|
@echo
|
||||||
|
@echo \ \ \ make PREFIX=\<prefix\> install
|
||||||
|
@echo
|
||||||
|
@echo as root. For example:
|
||||||
|
@echo
|
||||||
|
@echo \ \ \ make PREFIX=/usr install
|
||||||
|
@echo
|
||||||
|
|
||||||
|
binaries: check $(BINARY) $(MODULE).o
|
||||||
|
|
||||||
check:
|
check:
|
||||||
pkg-config gtk+-2.0 libglade-2.0
|
pkg-config gtk+-2.0 libglade-2.0
|
||||||
@[ -r $(KDIR)/include/linux/kernel.h ] || (echo No kernel headers found; exit 1)
|
@[ -r $(KDIR)/include/linux/kernel.h ] || (echo No kernel headers found; exit 1)
|
||||||
@[ -r /usr/include/bzlib.h ] || (echo bzip2 header file not found; exit 1)
|
# @[ -r /usr/include/bzlib.h ] || (echo bzip2 header file not found; exit 1)
|
||||||
touch check
|
touch check
|
||||||
|
|
||||||
$(BINARY): $(OBJS) depend
|
$(BINARY): $(OBJS) depend
|
||||||
@ -33,6 +55,41 @@ clean:
|
|||||||
depend:
|
depend:
|
||||||
$(CC) -MM $(CFLAGS) $(C_FILES) > depend.mk
|
$(CC) -MM $(CFLAGS) $(C_FILES) > depend.mk
|
||||||
|
|
||||||
|
install: binaries
|
||||||
|
@echo
|
||||||
|
@echo Installing in $(PREFIX)
|
||||||
|
@echo
|
||||||
|
|
||||||
|
# binary
|
||||||
|
@mkdir -p $(BINDIR)
|
||||||
|
cp sysprof $(BINDIR)
|
||||||
|
|
||||||
|
# glade file
|
||||||
|
mkdir -p $(GLADE_DIR)
|
||||||
|
cp sysprof.glade $(GLADE_DIR)
|
||||||
|
|
||||||
|
# icon
|
||||||
|
mkdir -p $(PIXMAP_DIR)
|
||||||
|
cp sysprof-icon.png $(PIXMAP_DIR)
|
||||||
|
|
||||||
|
# kernel module
|
||||||
|
$(KMAKE) modules_install
|
||||||
|
|
||||||
|
depmod
|
||||||
|
|
||||||
|
@echo ======================================
|
||||||
|
@echo
|
||||||
|
@echo To run sysprof first insert the module by typing
|
||||||
|
@echo
|
||||||
|
@echo \ \ \ \ modprobe sysprof-module
|
||||||
|
@echo
|
||||||
|
@echo as root. Then run \"$(PREFIX)/bin/sysprof\".
|
||||||
|
@echo
|
||||||
|
|
||||||
|
insert_module: install
|
||||||
|
modprobe -r sysprof-module
|
||||||
|
modprobe sysprof-module
|
||||||
|
|
||||||
depend.mk:
|
depend.mk:
|
||||||
touch depend.mk
|
touch depend.mk
|
||||||
$(MAKE) depend
|
$(MAKE) depend
|
||||||
@ -41,20 +98,13 @@ include depend.mk
|
|||||||
|
|
||||||
.PHONY: depend all
|
.PHONY: depend all
|
||||||
|
|
||||||
ifeq ($(shell (uname -r | grep 2.6) > /dev/null ; echo -n $$?),0)
|
ifneq ($(shell (uname -r | grep 2.6) > /dev/null ; echo -n $$?),0)
|
||||||
|
echo A 2.6 kernel is required; exit 1
|
||||||
|
endif
|
||||||
|
|
||||||
# if kernel 2.6
|
# build module
|
||||||
$(MODULE).o: $(MODULE).c
|
|
||||||
# echo modcflags $(MODCFLAGS)
|
|
||||||
|
|
||||||
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
|
|
||||||
else
|
|
||||||
|
|
||||||
MODCFLAGS += -DKERNEL24
|
|
||||||
|
|
||||||
$(MODULE).o: $(MODULE).c
|
$(MODULE).o: $(MODULE).c
|
||||||
$(CC) $(MODCFLAGS) $(MODULE).c -c -o$(MODULE).o
|
$(KMAKE) modules
|
||||||
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|||||||
4
TODO
4
TODO
@ -1,7 +1,6 @@
|
|||||||
Before 1.0:
|
Before 1.0:
|
||||||
|
|
||||||
* Correctness
|
* Correctness
|
||||||
- grep FIXME
|
|
||||||
- When the module is unloaded, kill all processes blocking in read
|
- When the module is unloaded, kill all processes blocking in read
|
||||||
- or block unloading until all processes have exited
|
- or block unloading until all processes have exited
|
||||||
|
|
||||||
@ -30,6 +29,7 @@ Before 1.0:
|
|||||||
|
|
||||||
Before 1.2:
|
Before 1.2:
|
||||||
|
|
||||||
|
- grep FIXME - not10
|
||||||
- translation should be hooked up
|
- translation should be hooked up
|
||||||
- Fixing the oops in kernels < 2.6.11
|
- Fixing the oops in kernels < 2.6.11
|
||||||
|
|
||||||
@ -252,6 +252,8 @@ Later:
|
|||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
|
|
||||||
|
- grep FIXME
|
||||||
|
|
||||||
- give profiles on the command line
|
- give profiles on the command line
|
||||||
|
|
||||||
- Hopefully the oops at the end of this file is gone now that
|
- Hopefully the oops at the end of this file is gone now that
|
||||||
|
|||||||
2
autogen.sh
Executable file
2
autogen.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
make
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 625 B |
8
sfile.c
8
sfile.c
@ -23,7 +23,9 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
#if 0
|
||||||
#include <bzlib.h>
|
#include <bzlib.h>
|
||||||
|
#endif
|
||||||
#include "sfile.h"
|
#include "sfile.h"
|
||||||
|
|
||||||
typedef struct State State;
|
typedef struct State State;
|
||||||
@ -1468,6 +1470,7 @@ file_replace (const gchar *filename,
|
|||||||
gssize length,
|
gssize length,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void
|
static void
|
||||||
disaster (int status)
|
disaster (int status)
|
||||||
{
|
{
|
||||||
@ -1530,6 +1533,7 @@ bz2_compress (const guchar *input, int input_length,
|
|||||||
if (output_length)
|
if (output_length)
|
||||||
*output_length = compressed_size;
|
*output_length = compressed_size;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
sfile_output_save (SFileOutput *sfile,
|
sfile_output_save (SFileOutput *sfile,
|
||||||
@ -1593,12 +1597,14 @@ sfile_output_save (SFileOutput *sfile,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIMXE: bz2 compressing the output is probably
|
#if 0
|
||||||
|
/* FIXME - not10: bz2 compressing the output is probably
|
||||||
* interesting at some point. For now just make sure
|
* interesting at some point. For now just make sure
|
||||||
* it works without actually using it.
|
* it works without actually using it.
|
||||||
*/
|
*/
|
||||||
bz2_compress (output->str, output->len,
|
bz2_compress (output->str, output->len,
|
||||||
&compressed, &compressed_size);
|
&compressed, &compressed_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
g_free (compressed);
|
g_free (compressed);
|
||||||
|
|
||||||
|
|||||||
@ -331,20 +331,17 @@ do_generate (void *data)
|
|||||||
struct task_struct *task = data;
|
struct task_struct *task = data;
|
||||||
|
|
||||||
generate_stack_trace(task, head);
|
generate_stack_trace(task, head);
|
||||||
wake_up_process (task);
|
|
||||||
|
|
||||||
if (head++ == &stack_traces[N_TRACES - 1])
|
if (head++ == &stack_traces[N_TRACES - 1])
|
||||||
head = &stack_traces[0];
|
head = &stack_traces[0];
|
||||||
|
|
||||||
/* This is crack, what we actually want is "put_task_struct()",
|
wake_up (&wait_for_trace);
|
||||||
* but that macros uses __put_task_struct() which is not exported.
|
|
||||||
*
|
/* If a task dies between the time we see it in on_timer and
|
||||||
* It does look to me like the worst that will happen is a rare
|
* the time we get here, it will be leaked. If __put_task_struct9)
|
||||||
* leak, which is certainly better than an oops.
|
* was exported, then we could do this properly
|
||||||
*/
|
*/
|
||||||
if (atomic_dec_and_test(&(task)->usage)) {
|
atomic_dec (&(task)->usage);
|
||||||
free_task (task);
|
|
||||||
}
|
|
||||||
|
|
||||||
mod_timer(&timer, jiffies + INTERVAL);
|
mod_timer(&timer, jiffies + INTERVAL);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -446,9 +446,9 @@ on_start_toggled (GtkWidget *widget, gpointer data)
|
|||||||
{
|
{
|
||||||
sorry (app->main_window,
|
sorry (app->main_window,
|
||||||
"Can't open /proc/sysprof-trace. You need to insert\n"
|
"Can't open /proc/sysprof-trace. You need to insert\n"
|
||||||
"the sysprof kernel module. Type \n"
|
"the sysprof kernel module. Type\n"
|
||||||
"\n"
|
"\n"
|
||||||
" insmod sysprof-module.ko\n"
|
" modprobe sysprof-module\n"
|
||||||
"\n"
|
"\n"
|
||||||
"as root.");
|
"as root.");
|
||||||
|
|
||||||
@ -1162,11 +1162,11 @@ build_gui (Application *app)
|
|||||||
|
|
||||||
set_shadows (xml);
|
set_shadows (xml);
|
||||||
|
|
||||||
xml = glade_xml_new ("./sysprof.glade", NULL, NULL);
|
xml = glade_xml_new (GLADE_DIR "/sysprof.glade", NULL, NULL);
|
||||||
|
|
||||||
/* Main Window */
|
/* Main Window */
|
||||||
app->main_window = glade_xml_get_widget (xml, "main_window");
|
app->main_window = glade_xml_get_widget (xml, "main_window");
|
||||||
app->icon = gdk_pixbuf_new_from_file ("sysprof-icon.png", NULL);
|
app->icon = gdk_pixbuf_new_from_file (PIXMAP_DIR "/sysprof-icon.png", NULL);
|
||||||
|
|
||||||
gtk_window_set_icon (GTK_WINDOW (app->main_window), app->icon);
|
gtk_window_set_icon (GTK_WINDOW (app->main_window), app->icon);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user