Nate Lawson wrote: > > Apologies. I found 2 bugs, one was not calling cpufreq_register() and > the other was that the code to detect acpi_perf (in ichss and est) was > incorrect. I've committed fixes for that and have updated the patch. > Please ues this version and test again. > On boot pre-seed PRNG does 'sysctl -a' which panics like this. - only cpufreq.ko loaded - last line of 'sysctl -a' output is "dev.cpu.0.%parent: acpi0" Fatal trap 12: page fault while in kernel mode fault virtual address = 0x63204b53 fault code = supervisor read, page not present instruction pointer = 0x8:0xc08ac32b stack pointer = 0x10:0xe4d38ab8 frame pointer = 0x10:0xe4d38ac4 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 56 (sysctl) [thread pid 56 tid 100043 ] Stopped at est_settings+0x1b: movzwl 0(%ecx),%eax db> tr Tracing pid 56 tid 100043 td 0xc2329450 est_settings(c2367880,c23c2e00,e4d38af4,c231b800,c23c2e00) at est_settings+0x1b cf_levels_method(c2367980,c2590000,e4d38b50,5000,1) at cf_levels_method+0x18a cf_get_method(c2367980,c258b000,c06d2c98,1,c228b960) at cf_get_method+0xb5 cpufreq_curr_sysctl(c236c740,c231b800,0,e4d38c08,e4d38c08) at cpufreq_curr_sysctl+0x96 sysctl_root(0,e4d38c78,4,e4d38c08,c2329450) at sysctl_root+0x134 userland_sysctl(c2329450,e4d38c78,4,0,bfbfdbac) at userland_sysctl+0x13c __sysctl(c2329450,e4d38d14,18,0,e4d38d20) at __sysctl+0xdc syscall(2f,2f,2f,bfbfdbac,bfbfe470) at syscall+0x330 Xint0x80_syscall() at Xint0x80_syscall+0x1f --- syscall (202, FreeBSD ELF32, __sysctl), eip = 0x280bdc3f, esp = 0xbfbfdb2c, ebp = 0xbfbfdb58 --- db> call doadump Dumping 1023 MB 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608 624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896 912 928 944 960 976 992 1008 (kgdb) l *est_settings+0x1b 0x243b is in est_settings (/usr/src/sys/modules/cpufreq/../../i386/cpufreq/est.c:723). 718 719 if (*count < EST_MAX_SETTINGS) 720 return (E2BIG); 721 722 i = 0; 723 for (f = sc->freq_list; f->freq != 0; f++) { 724 sets[i].freq = f->freq; 725 sets[i].volts = f->volts; 726 sets[i].power = CPUFREQ_VAL_UNKNOWN; 727 sets[i].lat = EST_TRANS_LAT; -- PawelReceived on Fri Feb 18 2005 - 02:24:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:28 UTC