The profile utility can set the sprofiling mode

- profile --nmi | --rtc sets the profiling mode

- --rtc is default, uses BIOS RTC, cannot profile kernel the presetted
  frequency values apply

- --nmi is only available in APIC mode as it uses the NMI watchdog, -f
  allows any frequency in Hz

- both modes use compatible data structures
This commit is contained in:
Tomas Hruby
2010-09-23 10:49:42 +00:00
parent db12229ce3
commit 74c5cd7668
8 changed files with 45 additions and 12 deletions

View File

@@ -2,13 +2,19 @@
#define sprofile _sprofile
PUBLIC int sprofile(int action, int size, int freq, char *ctl_ptr, int *mem_ptr)
PUBLIC int sprofile(int action,
int size,
int freq,
int type,
char *ctl_ptr,
int *mem_ptr)
{
message m;
m.PROF_ACTION = action;
m.PROF_MEM_SIZE = size;
m.PROF_FREQ = freq;
m.PROF_INTR_TYPE = type;
m.PROF_CTL_PTR = (void *) ctl_ptr;
m.PROF_MEM_PTR = (void *) mem_ptr;

View File

@@ -5,10 +5,11 @@
/*===========================================================================*
* sys_sprof *
*===========================================================================*/
PUBLIC int sys_sprof(action, size, freq, endpt, ctl_ptr, mem_ptr)
PUBLIC int sys_sprof(action, size, freq, type, endpt, ctl_ptr, mem_ptr)
int action; /* start/stop profiling */
int size; /* available profiling memory */
int freq; /* sample frequency */
int type;
endpoint_t endpt; /* caller endpoint */
void *ctl_ptr; /* location of info struct */
void *mem_ptr; /* location of profiling memory */
@@ -18,6 +19,7 @@ void *mem_ptr; /* location of profiling memory */
m.PROF_ACTION = action;
m.PROF_MEM_SIZE = size;
m.PROF_FREQ = freq;
m.PROF_INTR_TYPE = type;
m.PROF_ENDPT = endpt;
m.PROF_CTL_PTR = ctl_ptr;
m.PROF_MEM_PTR = mem_ptr;