Messages in this thread | | | Date | Tue, 6 May 1997 02:01:38 +1200 (NZST) | From | "J. Sean Connell" <> | Subject | Fun with pre-2.1.37-4 =) |
| |
Just booted pre-2.1.37-4 for the heck of it, and noticed that my system seemed to be _really_ slow. Thanks to the good offices of Alt+ScrLock, I found that it was spending an inordinate amount of time at 0xc010584c in here:
/usr/src/linux/include/asm/system.h:191 /* * Note: no "lock" prefix even on SMP: xchg always implies lock anyway */ static inline unsigned long __xchg(unsigned long x, void * ptr, int size) { c010854c: 31 c0 xorl %eax,%eax /usr/src/linux/include/asm/system.h:212 switch (size) { case 1: __asm__("xchgb %b0,%1" :"=q" (x) :"m" (*__xg(ptr)), "0" (x) :"memory"); break; case 2: __asm__("xchgw %w0,%1" :"=r" (x) :"m" (*__xg(ptr)), "0" (x) :"memory"); break; case 4: __asm__("xchgl %0,%1" :"=r" (x) :"m" (*__xg(ptr)), "0" (x) :"memory"); break; } return x; c010854e: 89 c3 movl %eax,%ebx c0108550: 87 1d 04 38 1c xchgl %ebx,0xc01c3804 c0108555: c0
In my /usr/src/linux/Makefile, I remembered to set SMP = 0, but when it still compiled with __SMP__, I commented it out, and it went away, and I was happy. I suspect that that may be my problem, but nonetheless I shall enthrall you all with the gory details. =)
It also seemed to be spending a lot of time at 0xc01084bf in hard_idle():
if (hlt_works_ok && !hlt_counter) { c01084ac: 80 3d cb 35 1c cmpb $0x0,0xc01c35cb c01084b1: c0 00 c01084b3: 74 0a je c01084bf <hard_idle+1f> c01084b5: 83 3d 7c 2f 1c cmpl $0x0,0xc01c2f7c c01084ba: c0 00 c01084bc: 75 01 jne c01084bf <hard_idle+1f> /usr/src/linux/arch/i386/kernel/process.c:86 #ifdef CONFIG_APM /* If the APM BIOS is not enabled, or there is an error calling the idle routine, we should hlt if possible. We need to check need_resched again because an interrupt may have occurred in apm_do_idle(). */ start_bh_atomic(); if (!apm_do_idle() && !need_resched) __asm__("hlt"); end_bh_atomic(); #else __asm__("hlt"); c01084be: f4 hlt /usr/src/linux/arch/i386/kernel/process.c:89 #endif } if (need_resched) c01084bf: 83 3d 40 38 1c cmpl $0x0,0xc01c3840 c01084c4: c0 00 c01084c6: 75 0e jne c01084d6 <hard_idle+36> /usr/src/linux/arch/i386/kernel/process.c:91 break; schedule(); c01084c8: e8 23 6f 00 00 call c010f3f0 <schedule> /usr/src/linux/arch/i386/kernel/process.c:92 } c01084cd: 83 3d 40 38 1c cmpl $0x0,0xc01c3840 c01084d2: c0 00 c01084d4: 74 d6 je c01084ac <hard_idle+c>
Below you can find a copy of my .config. Feel free to ask for any other additional details you may find relevant to this. =)
Enjoy!
-- J. S. Connell | Systems Adminstrator, ICONZ. Any opinions stated above ankh@canuck.gen.nz | are not my employers', not my boyfriends', my God's, my ankh@iconz.co.nz | friends', and probably not even my own. -------------------+--------------------------------------------------------- PGP key at http://www.canuck.gen.nz/~ankh/pgpkey.html
CONFIG_EXPERIMENTAL=y CONFIG_MODULES=y CONFIG_KERNELD=y CONFIG_NET=y CONFIG_PCI=y CONFIG_PCI_OPTIMIZE=y CONFIG_SYSVIPC=y CONFIG_SYSCTL=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_ELF=y CONFIG_M486=y CONFIG_BLK_DEV_FD=y CONFIG_BLK_DEV_IDE=y CONFIG_BLK_DEV_IDEDISK=y CONFIG_BLK_DEV_IDECD=m CONFIG_BLK_DEV_LOOP=m CONFIG_FIREWALL=y CONFIG_NET_ALIAS=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_FIREWALL=y CONFIG_IP_ACCT=y CONFIG_NET_IPIP=m CONFIG_IP_MROUTE=y CONFIG_IP_ALIAS=y CONFIG_INET_RARP=m CONFIG_PATH_MTU_DISCOVERY=y CONFIG_IP_NOSR=y CONFIG_SKB_LARGE=y CONFIG_NETDEVICES=y CONFIG_NET_ETHERNET=y CONFIG_NET_ISA=y CONFIG_NE2000=y CONFIG_PPP=y CONFIG_SHAPER=m CONFIG_MINIX_FS=m CONFIG_EXT2_FS=y CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_PROC_FS=y CONFIG_NFS_FS=m CONFIG_NFSD=m CONFIG_SUNRPC=m CONFIG_LOCKD=m CONFIG_SMB_FS=m CONFIG_SMB_WIN95=y CONFIG_ISO9660_FS=m CONFIG_UFS_FS=m CONFIG_BSD_DISKLABEL=y CONFIG_SMD_DISKLABEL=y CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_SERIAL=y CONFIG_SOUND=y CONFIG_SB=y CONFIG_ADLIB=y CONFIG_YM3812=y SBC_BASE=230 SBC_IRQ=5 SBC_DMA=1 SB_DMA2=5 SB_MPU_BASE=330 SB_MPU_IRQ=-1 CONFIG_PROFILE=y CONFIG_PROFILE_SHIFT=2
| |