stack hogs in kernel
Scott Long
scottl at samsco.org
Sat Apr 12 05:06:49 UTC 2008
Scott Long wrote:
> Julian Elischer wrote:
>>
>> A few years ago I took a profile of stack hogs in the kernel.
>> I just redid the exercise...
>>
>> http://people.freebsd.org/~julian/stack-hogs.txt
>>
>>
>> the worst offenders in MY (2 month old) kernel are:
>>
>> 0xc05667e3 kldstat [kernel]: 2100
>> 0xc07214f8 sendsig [kernel]: 1416
>> 0xc04fb426 ugenread [kernel]: 1200
>> 0xc070616b ipmi_smbios_identify [kernel]: 1136
>> 0xc050bd26 usbd_new_device [kernel]: 1128
>> 0xc0525a83 pfs_readlink [kernel]: 1092
>> 0xc04fb407 ugenwrite [kernel]: 1056
>> 0xc055ea33 prison_enforce_statfs [kernel]: 1044
>> 0xc0686e8a nfsrv_rename [kernel]: 984
>> 0xc05d0886 m_copymdata [kernel]: 956
>> 0xc06605a3 nfs4_mount [kernel]: 884
>> 0xc0561e25 kse_switchin [kernel]: 848
>> 0xc0680ac6 nfsrv_statfs [kernel]: 828
>> 0xc0439473 cam_periph_error [kernel]: 820
>> 0xc071ff36 sigreturn [kernel]: 812
>> 0xc067e876 nfsrv_fsinfo [kernel]: 804
>> 0xc05fe7b3 freebsd4_fhstatfs [kernel]: 804
>> 0xc0571272 sysctl_out_proc [kernel]: 804
>> 0xc067ebf7 nfsrv_fsinfo [kernel]: 804
>> 0xc0571006 sysctl_out_proc [kernel]: 804
>> 0xc044b743 cddone [kernel]: 800
>> 0xc06862cf nfsrv_link [kernel]: 796
>
> I'll take a look at cddone(). I see where the problem is, but it's hard
> to fix correctly. However, the call chain leading to and from cddone is
> pretty small and unlikely to recurse; I seriously doubt that it will
> cause problems.
>
Forgot to say that the stat for cam_periph_error() is due to gcc
auto-inlining camperiphscsistatuserror(), which in turn auto-inlines
camperiphscsisenseerror(). I wonder how many other functions on your
hit-list are victimized by similar bogus gcc optimizations?
Scott
More information about the freebsd-current
mailing list