Use getpagesize()

Sat Apr 30 16:57:23 2005  Soeren Sandmann  <sandmann@redhat.com>

	* process.c (PAGE_SIZE): Use getpagesize()

	* TODO: More updates
This commit is contained in:
Soeren Sandmann
2005-04-30 20:59:01 +00:00
committed by Søren Sandmann Pedersen
parent 914d8bf668
commit 6906804784
5 changed files with 66 additions and 14 deletions

View File

@ -1,3 +1,9 @@
Sat Apr 30 16:57:23 2005 Soeren Sandmann <sandmann@redhat.com>
* process.c (PAGE_SIZE): Use getpagesize()
* TODO: More updates
Sat Apr 30 15:44:12 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates

62
TODO
View File

@ -27,14 +27,63 @@ Before 1.0:
(ask for sucess/failure-stories in 0.9.x releases)
- auto*?
- .desktop file
- translation should be hooked up
Before 1.2:
- translation should be hooked up
- Fixing the oops in kernels < 2.6.11
- Make the process waiting in poll() responsible for extracting
the backtrace. Give a copy of the entire stack rather than doing
the walk inside the kernel. That would allow us to do more complex
algorithms in userspace.
New model:
- Two arrays,
one of actual scanned stacks
one of tasks that need to be scanned
One wait queue,
wait for data
- in read() wait for stack data:
scan_tasks()
if (!stack_data)
return -EWOULDBLOCK;
in poll()
while (!stack data) {
wait_for_data();
scan_tasks();
}
return READABLE;
scan_tasks() is a function that converts waiting
tasks into data, and wakes them up.
- in timer interrupt:
if (someone waiting in poll() &&
current && current != that_someone &&
current is runnable)
{
stop current;
add current to queue;
wake wait_for_data;
}
This way, we will have a real userspace process
that can take the page faults.
- Find out how gdb does backtraces; they may have a better way. Also
find out what dwarf2 is and how to use it. Look into libunwind.
It seems gdb is capable of doing backtraces of code that neither has
a framepointer nor has debug info. It appears gdb uses the contents
of the ".eh_frame" section. There is also an ".eh_frame_hdr" section.
http://www.linuxbase.org/spec/booksets/LSB-Embedded/LSB-Embedded/ehframe.html
look in dwarf2-frame.[ch] in the gdb distribution.
- Make busy cursors more intelligent
- when you click something in the main list and we don't respond
within 50ms (or perhaps when we expect to not be able to do
@ -106,9 +155,6 @@ Before 1.2:
- possibly add dependency on glib 2.8 if it is released at that point.
(g_file_replace())
- Find out how gdb does backtraces; they may have a better way. Also
find out what dwarf2 is and how to use it.
Later:

View File

@ -24,12 +24,12 @@
#include <stdlib.h>
#include <sys/stat.h>
#include <errno.h>
#include <unistd.h>
#include "process.h"
#include "binfile.h"
/* FIXME: this should be done with getpagesize() */
#define PAGE_SIZE 4096
#define PAGE_SIZE (getpagesize())
static GHashTable *processes_by_cmdline;
static GHashTable *processes_by_pid;

View File

@ -862,7 +862,7 @@ handle_begin_element (GMarkupParseContext *parse_context,
return;
}
/* FIXME: is there really a reason to add begin/end instructions for values? */
/* FIXME - not10: is there really a reason to add begin/end instructions for values? */
instruction.name = g_strdup (element_name);
instruction.kind = BEGIN;
g_array_append_val (build->instructions, instruction);

View File

@ -33,7 +33,7 @@
#include "profile.h"
#include "treeviewutils.h"
/* FIXME */
/* FIXME - not10 */
#define _(a) a
#define APPLICATION_NAME "System Profiler"
@ -83,7 +83,7 @@ struct Application
int timeout_id;
int generating_profile;
gboolean profile_from_file; /* FIXME: This is a kludge. Figure out how
gboolean profile_from_file; /* FIXME - not10: This is a kludge. Figure out how
* to maintain the application model properly
*
* The fundamental issue is that the state of
@ -199,7 +199,7 @@ update_sensitivity (Application *app)
sensitive_start_button);
#if 0
/* FIXME: gtk+ doesn't handle changes in sensitivity in response
/* FIXME - not10: gtk+ doesn't handle changes in sensitivity in response
* to a click on the same button very well
*/
gtk_widget_set_sensitive (GTK_WIDGET (app->reset_button),