You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(7) |
Aug
(50) |
Sep
(210) |
Oct
(93) |
Nov
(99) |
Dec
(101) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(283) |
Feb
(42) |
Mar
(148) |
Apr
(94) |
May
(256) |
Jun
(206) |
Jul
(101) |
Aug
(28) |
Sep
(159) |
Oct
(102) |
Nov
(216) |
Dec
(159) |
2003 |
Jan
(112) |
Feb
(149) |
Mar
(332) |
Apr
(261) |
May
(528) |
Jun
(270) |
Jul
(231) |
Aug
(231) |
Sep
(338) |
Oct
(445) |
Nov
(212) |
Dec
(26) |
2004 |
Jan
(179) |
Feb
(109) |
Mar
(20) |
Apr
(20) |
May
(55) |
Jun
(11) |
Jul
(38) |
Aug
(13) |
Sep
(28) |
Oct
(13) |
Nov
(41) |
Dec
(30) |
2005 |
Jan
(17) |
Feb
(4) |
Mar
(62) |
Apr
(176) |
May
(44) |
Jun
(13) |
Jul
(16) |
Aug
(154) |
Sep
(6) |
Oct
(13) |
Nov
(4) |
Dec
(6) |
2006 |
Jan
(12) |
Feb
(11) |
Mar
(9) |
Apr
(1) |
May
(10) |
Jun
(6) |
Jul
(10) |
Aug
(10) |
Sep
(27) |
Oct
(25) |
Nov
(40) |
Dec
(18) |
2007 |
Jan
(13) |
Feb
(25) |
Mar
(6) |
Apr
(14) |
May
(52) |
Jun
(22) |
Jul
(20) |
Aug
(8) |
Sep
(2) |
Oct
(138) |
Nov
(152) |
Dec
(73) |
2008 |
Jan
(52) |
Feb
(31) |
Mar
(5) |
Apr
(48) |
May
(20) |
Jun
(14) |
Jul
(36) |
Aug
(16) |
Sep
(1) |
Oct
(19) |
Nov
(13) |
Dec
(4) |
2009 |
Jan
(2) |
Feb
(13) |
Mar
(10) |
Apr
(28) |
May
(46) |
Jun
(21) |
Jul
(21) |
Aug
(22) |
Sep
(8) |
Oct
(25) |
Nov
(15) |
Dec
(2) |
2010 |
Jan
(12) |
Feb
|
Mar
(8) |
Apr
(3) |
May
(2) |
Jun
(5) |
Jul
(11) |
Aug
(17) |
Sep
|
Oct
(12) |
Nov
(14) |
Dec
(10) |
2011 |
Jan
(6) |
Feb
|
Mar
(8) |
Apr
(6) |
May
(17) |
Jun
(8) |
Jul
(4) |
Aug
(9) |
Sep
(2) |
Oct
(3) |
Nov
(4) |
Dec
(2) |
2012 |
Jan
(4) |
Feb
(7) |
Mar
(16) |
Apr
(9) |
May
(15) |
Jun
(22) |
Jul
(30) |
Aug
(36) |
Sep
(6) |
Oct
(5) |
Nov
(9) |
Dec
(11) |
2013 |
Jan
(17) |
Feb
(11) |
Mar
(7) |
Apr
(8) |
May
(15) |
Jun
(19) |
Jul
(27) |
Aug
(3) |
Sep
(3) |
Oct
(8) |
Nov
(6) |
Dec
(10) |
2014 |
Jan
(15) |
Feb
(16) |
Mar
(4) |
Apr
(3) |
May
(10) |
Jun
(9) |
Jul
(9) |
Aug
(31) |
Sep
(11) |
Oct
(6) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
(1) |
Mar
(2) |
Apr
(3) |
May
(4) |
Jun
(5) |
Jul
(14) |
Aug
(2) |
Sep
(2) |
Oct
(1) |
Nov
(4) |
Dec
(4) |
2016 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(4) |
May
(2) |
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(1) |
Oct
(3) |
Nov
(1) |
Dec
|
2017 |
Jan
(4) |
Feb
|
Mar
(1) |
Apr
(3) |
May
|
Jun
(9) |
Jul
(11) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(3) |
Jul
(10) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(6) |
Jun
|
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2020 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: John L. <mov...@us...> - 2001-08-10 02:04:14
|
Update of /cvsroot/oprofile/oprofile In directory usw-pr-cvs1:/tmp/cvs-serv1926 Modified Files: ChangeLog oprofile.c Log Message: small tidy Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- ChangeLog 2001/08/02 17:55:21 1.67 +++ ChangeLog 2001/08/10 02:04:08 1.68 @@ -1,3 +1,7 @@ +2001-08-10 John Levon <mo...@co...> + + * oprofile.c: small tidy in apic setup + 2001-08-02 John Levon <mo...@co...> * oprofile.c: fix mod unload race, small fixes Index: oprofile.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/oprofile.c,v retrieving revision 1.66 retrieving revision 1.67 diff -u -d -r1.66 -r1.67 --- oprofile.c 2001/08/02 17:55:22 1.66 +++ oprofile.c 2001/08/10 02:04:08 1.67 @@ -58,7 +58,7 @@ memcpy(&data->buffer[data->nextbuf], ops, sizeof(struct op_sample)); if (++data->nextbuf != (data->buf_size - OP_PRE_WATERMARK)) { if (data->nextbuf == data->buf_size) - data->nextbuf=0; + data->nextbuf = 0; return; } oprof_ready[smp_processor_id()] = 1; @@ -229,7 +229,7 @@ static uint old_lvtpc[NR_CPUS]; -static void __init smp_apic_setup(void *dummy) +static void __init lvtpc_apic_setup(void *dummy) { uint val; @@ -250,25 +250,29 @@ apic_write(APIC_LVTPC, old_lvtpc[smp_processor_id()]); } -static int __init apic_setup(void) +static int __init apic_needs_setup(void) { /* FIXME: we need to detect UP kernel, SMP hardware, and - * not go past smp_apic_setup, to avoid screwing up the APIC + * return 0 here, to avoid screwing up the APIC */ - if (smp_num_cpus > 1) { - smp_apic_setup(NULL); - return 0; - } - + return /* if enabled, the kernel has already set it up */ #ifdef CONFIG_X86_UP_APIC - smp_apic_setup(NULL); - return 0; -#else - { + 0 && +#endif + smp_num_cpus == 1; +} + +static int __init apic_setup(void) +{ uint msr_low, msr_high; uint val; + if (!apic_needs_setup()) { + lvtpc_apic_setup(NULL); + return 0; + } + /* ugly hack */ my_set_fixmap(); @@ -328,7 +332,7 @@ /* If the local APIC NMI watchdog has been disabled, we'll need * to set up NMI delivery anyway ... */ - smp_apic_setup(NULL); + lvtpc_apic_setup(NULL); printk(KERN_INFO "oprofile: enabled local APIC\n"); @@ -340,8 +344,6 @@ rdmsr(MSR_IA32_APICBASE, msr_low, msr_high); wrmsr(MSR_IA32_APICBASE, msr_low & ~(1<<11), msr_high); return -ENODEV; - } -#endif /* CONFIG_X86_UP_APIC */ } /* ---------------- PMC setup ------------------ */ @@ -1089,7 +1091,7 @@ if ((err = init_sysctl())) goto out_err; - if ((err = smp_call_function(smp_apic_setup, NULL, 0, 1))) + if ((err = smp_call_function(lvtpc_apic_setup, NULL, 0, 1))) goto out_err; err = op_major = register_chrdev(0, "oprof", &oprof_fops); |
From: John L. <mov...@us...> - 2001-08-02 17:57:46
|
Update of /cvsroot/oprofile/oprofile/doc In directory usw-pr-cvs1:/tmp/cvs-serv25118/doc Modified Files: oprofile.sgml Log Message: bad module unload problems fixed, small fixes elsewhere Index: oprofile.sgml =================================================================== RCS file: /cvsroot/oprofile/oprofile/doc/oprofile.sgml,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- oprofile.sgml 2001/07/26 01:39:16 1.17 +++ oprofile.sgml 2001/08/02 17:55:22 1.18 @@ -46,6 +46,13 @@ </para></listitem> </varlistentry> <varlistentry> + <term>modutils 2.4.6 or above</term> + <listitem><para> + You should have installed modutils 2.4.6 or higher (in fact earlier versions work well in almost all + cases). + </para></listitem> + </varlistentry> + <varlistentry> <term>Intel P6 processor</term> <listitem><para> An Intel P6 processor is required. In marketing terms this translates to anything between a Pentium Pro |
From: John L. <mov...@us...> - 2001-08-02 17:57:45
|
Update of /cvsroot/oprofile/oprofile In directory usw-pr-cvs1:/tmp/cvs-serv25118 Modified Files: ChangeLog op_syscalls.c oprofile.c Log Message: bad module unload problems fixed, small fixes elsewhere Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.66 retrieving revision 1.67 diff -u -d -r1.66 -r1.67 --- ChangeLog 2001/07/28 19:20:26 1.66 +++ ChangeLog 2001/08/02 17:55:21 1.67 @@ -1,3 +1,13 @@ +2001-08-02 John Levon <mo...@co...> + + * oprofile.c: fix mod unload race, small fixes + + * dae/op_start: make sysctl error actually appear + + * doc/oprofile.sgml: document need for modutils 2.4.6 + + * op_syscalls.c: fix stupid mod use count problem + 2001-07-28 John Levon <mo...@co...> * dae/opd_proc.c: d'oh, fat-fingered a slow memleak in the Index: op_syscalls.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/op_syscalls.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- op_syscalls.c 2001/07/27 00:58:27 1.12 +++ op_syscalls.c 2001/08/02 17:55:22 1.13 @@ -448,8 +448,6 @@ { struct file *file; - MOD_INC_USE_COUNT; - file = fget(fd); if (!file) return; Index: oprofile.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/oprofile.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- oprofile.c 2001/07/27 00:47:16 1.65 +++ oprofile.c 2001/08/02 17:55:22 1.66 @@ -825,9 +825,10 @@ op_intercept_syscalls(); oprof_start_thread(); + smp_call_function(pmc_start, NULL, 0, 1); - pmc_start(NULL); + prof_on = 1; out: @@ -988,8 +989,8 @@ { 1, "kernel_only", &kernel_only, sizeof(int), 0600, NULL, &lproc_dointvec, NULL, }, { 1, "pid_filter", &pid_filter, sizeof(pid_t), 0600, NULL, &lproc_dointvec, NULL, }, { 1, "pgrp_filter", &pgrp_filter, sizeof(pid_t), 0600, NULL, &lproc_dointvec, NULL, }, - {0,}, {0,}, {0,}, {0,}, - {0,}, + { 0, }, { 0, }, { 0, }, { 0, }, + { 0, }, }; @@ -1012,7 +1013,7 @@ int __init init_sysctl(void) { ctl_table *next = &oprof_table[nr_oprof_static]; - ctl_table *counter_table[OP_MAX_COUNTERS]; + ctl_table *counter_table[OP_MAX_COUNTERS + 1]; ctl_table *tab; int i,j; @@ -1024,11 +1025,9 @@ next->procname = names[i]; next->mode = 0700; - if (!(counter_table[i] = kmalloc(sizeof(ctl_table)*7, GFP_KERNEL))) + if (!(tab = kmalloc(sizeof(ctl_table)*7, GFP_KERNEL))) goto cleanup; - next->child = counter_table[i]; - - tab = counter_table[i]; + next->child = tab; memset(tab, 0, sizeof(ctl_table)*7); tab[0] = ((ctl_table){ 1, "enabled", &op_ctr_on[i], sizeof(int), 0600, NULL, lproc_dointvec, NULL, }); @@ -1037,6 +1036,7 @@ tab[3] = ((ctl_table){ 1, "unit_mask", &op_ctr_um[i], sizeof(int), 0600, NULL, lproc_dointvec, NULL, }); tab[4] = ((ctl_table){ 1, "kernel", &op_ctr_kernel[i], sizeof(int), 0600, NULL, lproc_dointvec, NULL, }); tab[5] = ((ctl_table){ 1, "user", &op_ctr_user[i], sizeof(int), 0600, NULL, lproc_dointvec, NULL, }); + counter_table[i] = tab; next++; } @@ -1070,7 +1070,8 @@ { int can = -EBUSY; down(&sysctlsem); - if (!prof_on) + + if (!prof_on && !GET_USE_COUNT(THIS_MODULE)) can = 0; up(&sysctlsem); return can; @@ -1096,7 +1097,8 @@ goto out_err; err = oprof_init_hashmap(); - if (err<0) { + if (err < 0) { + printk("oprofile: couldn't allocate hash map !\n"); unregister_chrdev(op_major, "oprof"); goto out_err; } @@ -1106,7 +1108,6 @@ /* do this now so we don't have to track save/restores later */ op_save_syscalls(); - printk("oprofile: oprofile loaded, major %u\n", op_major); return 0; @@ -1122,7 +1123,6 @@ unregister_chrdev(op_major, "oprof"); smp_call_function(smp_apic_restore, NULL, 0, 1); smp_apic_restore(NULL); - cleanup_sysctl(); // currently no need to reset APIC state } |
From: John L. <mov...@us...> - 2001-08-02 17:57:42
|
Update of /cvsroot/oprofile/oprofile/dae In directory usw-pr-cvs1:/tmp/cvs-serv25118/dae Modified Files: op_start Log Message: bad module unload problems fixed, small fixes elsewhere Index: op_start =================================================================== RCS file: /cvsroot/oprofile/oprofile/dae/op_start,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- op_start 2001/07/25 16:43:30 1.32 +++ op_start 2001/08/02 17:55:22 1.33 @@ -101,7 +101,7 @@ dev_name=`echo $arg | tr . /` if [ ! -f /proc/sys/$dev_name ]; then - echo "/proc/sys/$dev_name does not exist or is not a regular file" + echo "/proc/sys/$dev_name does not exist or is not a regular file" >&2 exit 1 fi |
From: John L. <mov...@us...> - 2001-07-28 19:20:30
|
Update of /cvsroot/oprofile/oprofile/dae In directory usw-pr-cvs1:/tmp/cvs-serv18817/dae Modified Files: opd_proc.c Log Message: fix introduced memleak Index: opd_proc.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/dae/opd_proc.c,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- opd_proc.c 2001/07/26 01:39:16 1.59 +++ opd_proc.c 2001/07/28 19:20:26 1.60 @@ -943,12 +943,14 @@ if (eip >= info.addr && eip < info.addr + info.size) { verbprintf("Sample from unprofilable module %s\n", name); opd_enter_invalid_module(name, &info); - return; - } + goto out; + } } mod++; name += strlen(name) + 1; } +out: + opd_free(module_names); } /** |
From: John L. <mov...@us...> - 2001-07-28 19:20:30
|
Update of /cvsroot/oprofile/oprofile In directory usw-pr-cvs1:/tmp/cvs-serv18817 Modified Files: ChangeLog Log Message: fix introduced memleak Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- ChangeLog 2001/07/27 23:22:39 1.65 +++ ChangeLog 2001/07/28 19:20:26 1.66 @@ -1,3 +1,8 @@ +2001-07-28 John Levon <mo...@co...> + + * dae/opd_proc.c: d'oh, fat-fingered a slow memleak in the + a-ksymoops modules fix + 2001-07-27 Philippe Elie <ph...@cl...> * pp/oprof_convert.c: fix bug when conversion skip more than one |
From: John L. <mov...@us...> - 2001-07-27 23:22:43
|
Update of /cvsroot/oprofile/oprofile/pp In directory usw-pr-cvs1:/tmp/cvs-serv3420/pp Modified Files: oprof_convert.c Log Message: convert fix Index: oprof_convert.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/oprof_convert.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- oprof_convert.c 2001/07/25 16:43:30 1.6 +++ oprof_convert.c 2001/07/27 23:22:39 1.7 @@ -126,6 +126,7 @@ struct opd_footer_v4 footer_v4; char * name; + printf("v4\n"); fread(&footer_v3, sizeof(footer_v3), 1, fp); footer_v4.v2 = footer_v3.v2; @@ -231,6 +232,7 @@ int converter_index; int err = 0; int i; + int converted; if (argc <= 1) { fprintf(stderr, "Syntax: %s filename [filenames]\n", argv[0]); @@ -262,17 +264,15 @@ continue; } - converter_index = get_converter_index(fp); - if (converter_index == -1) { - fclose(fp); - - fprintf(stderr, "can not find a converter for %s (perhaps this file is already converted ?)\n", argv[i]); - err++; - continue; + converted = 0; + while ((converter_index = get_converter_index(fp)) != -1) { + converter_array[converter_index].convert(fp); + converted = 1; } - for ( ; converter_index < nr_converter ; ++converter_index) { - converter_array[converter_index].convert(fp); + if (converted == 0) { + fprintf(stderr, "no converter found for %s (file already converted ?)\n", argv[i]); + err++; } fclose(fp); |
From: John L. <mov...@us...> - 2001-07-27 23:22:43
|
Update of /cvsroot/oprofile/oprofile In directory usw-pr-cvs1:/tmp/cvs-serv3420 Modified Files: ChangeLog Log Message: convert fix Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- ChangeLog 2001/07/27 00:28:44 1.64 +++ ChangeLog 2001/07/27 23:22:39 1.65 @@ -1,3 +1,8 @@ +2001-07-27 Philippe Elie <ph...@cl...> + + * pp/oprof_convert.c: fix bug when conversion skip more than one + version. + 2001-07-27 John Levon <mo...@co...> * doc/Makefile.in: ln -s -> ln -sf |
From: John L. <mov...@us...> - 2001-07-27 00:58:30
|
Update of /cvsroot/oprofile/oprofile In directory usw-pr-cvs1:/tmp/cvs-serv3620 Modified Files: op_syscalls.c Log Message: whitespace Index: op_syscalls.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/op_syscalls.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- op_syscalls.c 2001/07/25 02:54:49 1.11 +++ op_syscalls.c 2001/07/27 00:58:27 1.12 @@ -399,7 +399,7 @@ if (!(mm = task->mm)) goto out; - + take_mmap_sem(mm); spin_lock(&map_lock); for (map = mm->mmap; map; map = map->vm_next) { @@ -423,7 +423,7 @@ int ret; MOD_INC_USE_COUNT; - + filename = getname((char *)regs.ebx); if (IS_ERR(filename)) { MOD_DEC_USE_COUNT; @@ -449,7 +449,7 @@ struct file *file; MOD_INC_USE_COUNT; - + file = fget(fd); if (!file) return; @@ -487,7 +487,7 @@ int ret; MOD_INC_USE_COUNT; - + ret = old_old_mmap(arg); if ((pid_filter && current->pid != pid_filter) || @@ -527,7 +527,7 @@ int ret; MOD_INC_USE_COUNT; - + ret = old_sys_fork(regs); if (ret) oprof_report_fork(pid,ret); @@ -566,7 +566,7 @@ long ret; MOD_INC_USE_COUNT; - + ret = old_sys_init_module(name_user, mod_user); if (ret >= 0) { @@ -586,7 +586,7 @@ struct op_sample samp; MOD_INC_USE_COUNT; - + if ((pid_filter && current->pid != pid_filter) || (pgrp_filter && current->pgrp != pgrp_filter)) goto out; |
From: John L. <mov...@us...> - 2001-07-27 00:57:31
|
Update of /cvsroot/oprofile/CVSROOT In directory usw-pr-cvs1:/tmp/cvs-serv3492 Modified Files: loginfo Log Message: use unified diff Index: loginfo =================================================================== RCS file: /cvsroot/oprofile/CVSROOT/loginfo,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** loginfo 2001/07/27 00:40:12 1.2 --- loginfo 2001/07/27 00:57:27 1.3 *************** *** 26,28 **** #DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog ! DEFAULT $CVSROOT/CVSROOT/syncmail %{sVv} opr...@li... --- 26,28 ---- #DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog ! DEFAULT $CVSROOT/CVSROOT/syncmail -u %{sVv} opr...@li... |
From: John L. <mov...@us...> - 2001-07-27 00:47:19
|
Update of /cvsroot/oprofile/oprofile In directory usw-pr-cvs1:/tmp/cvs-serv1792 Modified Files: oprofile.c Log Message: whitespace changes Index: oprofile.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/oprofile.c,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** oprofile.c 2001/07/26 01:39:15 1.64 --- oprofile.c 2001/07/27 00:47:16 1.65 *************** *** 605,609 **** if (num < oprof_data[cpu_num].buf_size-OP_PRE_WATERMARK && oprof_ready[cpu_num] != 2) { printk(KERN_ERR "oprofile: Detected overflow of size %d. You must increase the " ! "hash table size or reduce the interrupt frequency (%d)\n", num, oprof_ready[cpu_num]); num = oprof_data[cpu_num].buf_size; --- 605,609 ---- if (num < oprof_data[cpu_num].buf_size-OP_PRE_WATERMARK && oprof_ready[cpu_num] != 2) { printk(KERN_ERR "oprofile: Detected overflow of size %d. You must increase the " ! "hash table size or reduce the interrupt frequency (%d)\n", num, oprof_ready[cpu_num]); num = oprof_data[cpu_num].buf_size; *************** *** 752,763 **** } } ! /* FIXME: below needs generalising for multiple counters */ ! if (!op_ctr_on[0] && !op_ctr_on[1]) { printk(KERN_ERR "oprofile: neither counter enabled.\n"); return 0; } ! /* hw_ok() has set cpu_type */ ret = op_check_events(op_ctr_val[0], op_ctr_val[1], op_ctr_um[0], op_ctr_um[1], cpu_type); --- 752,763 ---- } } ! /* FIXME: below needs generalising for multiple counters */ ! if (!op_ctr_on[0] && !op_ctr_on[1]) { printk(KERN_ERR "oprofile: neither counter enabled.\n"); return 0; } ! /* hw_ok() has set cpu_type */ ret = op_check_events(op_ctr_val[0], op_ctr_val[1], op_ctr_um[0], op_ctr_um[1], cpu_type); *************** *** 776,780 **** if (ret) return 0; ! for (cpu=0; cpu < smp_num_cpus; cpu++) { data = &oprof_data[cpu]; --- 776,780 ---- if (ret) return 0; ! for (cpu=0; cpu < smp_num_cpus; cpu++) { data = &oprof_data[cpu]; *************** *** 793,797 **** } ! DECLARE_MUTEX(sysctlsem); --- 793,797 ---- } ! DECLARE_MUTEX(sysctlsem); *************** *** 981,985 **** static int nr_oprof_static = 6; ! static ctl_table oprof_table[] = { { 1, "bufsize", &op_buf_size, sizeof(int), 0600, NULL, &lproc_dointvec, NULL, }, --- 981,985 ---- static int nr_oprof_static = 6; ! static ctl_table oprof_table[] = { { 1, "bufsize", &op_buf_size, sizeof(int), 0600, NULL, &lproc_dointvec, NULL, }, *************** *** 1014,1018 **** ctl_table *next = &oprof_table[nr_oprof_static]; ctl_table *counter_table[OP_MAX_COUNTERS]; ! ctl_table *tab; int i,j; --- 1014,1018 ---- ctl_table *next = &oprof_table[nr_oprof_static]; ctl_table *counter_table[OP_MAX_COUNTERS]; ! ctl_table *tab; int i,j; *************** *** 1030,1034 **** tab = counter_table[i]; ! memset(tab, 0, sizeof(ctl_table)*7); tab[0] = ((ctl_table){ 1, "enabled", &op_ctr_on[i], sizeof(int), 0600, NULL, lproc_dointvec, NULL, }); --- 1030,1034 ---- tab = counter_table[i]; ! memset(tab, 0, sizeof(ctl_table)*7); tab[0] = ((ctl_table){ 1, "enabled", &op_ctr_on[i], sizeof(int), 0600, NULL, lproc_dointvec, NULL, }); *************** *** 1043,1047 **** sysctl_header = register_sysctl_table(dev_root, 0); return 0; ! cleanup: next = &oprof_table[nr_oprof_static]; --- 1043,1047 ---- sysctl_header = register_sysctl_table(dev_root, 0); return 0; ! cleanup: next = &oprof_table[nr_oprof_static]; *************** *** 1123,1131 **** smp_call_function(smp_apic_restore, NULL, 0, 1); smp_apic_restore(NULL); ! cleanup_sysctl(); // currently no need to reset APIC state } ! /* * "The most valuable commodity I know of is information." --- 1123,1131 ---- smp_call_function(smp_apic_restore, NULL, 0, 1); smp_apic_restore(NULL); ! cleanup_sysctl(); // currently no need to reset APIC state } ! /* * "The most valuable commodity I know of is information." |