|
Description
|
On machines running Solaris 10 11/06 (U3) or later releases with 118833-33 or greater (Sparc) or 118855-33 or greater (X86), or on machines running Solaris 10 06/06 (U2) or earlier releases with 118833-36 or greater (Sparc) or 118855-36 or greater (X86), running "devfsadm" with or without options is taking longer to complete.
To illustrate this bug, we can collect "truss" outputs for "devfsadm -i <driver_name>" on machines running Solaris 10 01/06 (U1) and Solaris 10 08/07 (U4).
On Solaris 10 01/06 (U1), we can see the following:
# cat /etc/release
Solaris 10 1/06 s10s_u1wos_19a SPARC
Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 07 December 2005
#
# uname -a
SunOS u80-b 5.10 Generic_118822-25 sun4u sparc SUNW,Ultra-80
#
# truss -adDefl -o /tmp/devfsadm-i-hme.truss.s10u1 devfsadm -i hme -V chatty
devfsadm[1658]: chatty: process_devinfo_tree: enter
devfsadm[1658]: chatty: lock_dev(): entered
devfsadm[1658]: chatty: mkdirp(/dev, 0x1ed)
devfsadm[1658]: chatty: process_devinfo_tree: attaching driver (hme)
devfsadm[1658]: chatty: attempting pre-cleanup
devfsadm[1658]: chatty: devi_tree_walk: root=/, minor=<NULL>, driver=hme, error=0, flags=68
devfsadm[1658]: chatty: walking device tree
devfsadm[1658]: chatty: minor_process: node=clone, minor=hme
devfsadm[1658]: chatty: reset_node_permissions: phy_path=/devices/pseudo/clone@0:hme lphy_path=/pseudo/clone@0:hme
devfsadm[1658]: chatty: link exists and is correct: /dev/hme -> ../devices/pseudo/clone@0:hme
devfsadm[1658]: chatty: processing deferred links
devfsadm[1658]: chatty: attempting post-cleanup
devfsadm[1658]: chatty: unlock_dev(): entered
#
# more /tmp/devfsadm-i-hme.truss.s10u1
...
1658/1: 0.1213 0.0006 open("/devices/pseudo/devinfo@0:devinfo", O_RDONLY) = 6
1658/1: 0.1319 0.0106 ioctl(6, 0xDF81, 0xFFBFF788) = 0
1658/1: 0.1343 0.0024 close(6) = 0
1658/1: 0.1345 0.0002 open("/devices/pseudo/devinfo@0:devinfo", O_RDONLY) = 6
1658/1: 0.1347 0.0002 ioctl(6, 0xDF82, 0x00000000) = 57311
1658/1: 0.1377 0.0030 ioctl(6, 0xDF07, 0xFFBFF314) = 76992
...
1658/1: 0.1936 0.0002 _exit(0)
#
On Solaris 10 08/07 (U4), we can see the following:
# cat /etc/release
Solaris 10 8/07 s10s_u4wos_12b SPARC
Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 16 August 2007
#
# uname -a
SunOS u80-c 5.10 Generic_120011-14 sun4u sparc SUNW,Ultra-80
#
# truss -adDefl -o /tmp/devfsadm-i-hme.truss.s10u4 devfsadm -i hme -V chatty
devfsadm[1404]: chatty: process_devinfo_tree: enter
devfsadm[1404]: chatty: lock_dev(): entered
devfsadm[1404]: chatty: mkdirp(/dev, 0x1ed)
devfsadm[1404]: chatty: process_devinfo_tree: attaching driver (hme)
devfsadm[1404]: chatty: attempting pre-cleanup
devfsadm[1404]: chatty: devi_tree_walk: root=/, minor=<NULL>, driver=hme, error=0, flags=68
[ Delay ]
devfsadm[1404]: chatty: walking device tree
devfsadm[1404]: chatty: minor_process: node=clone, minor=hme
devfsadm[1404]: chatty: reset_node_permissions: phy_path=/devices/pseudo/clone@0:hme lphy_path=/pseudo/clone@0:hme
devfsadm[1404]: chatty: link exists and is correct: /dev/hme -> ../devices/pseudo/clone@0:hme
devfsadm[1404]: chatty: processing deferred links
devfsadm[1404]: chatty: attempting post-cleanup
devfsadm[1404]: chatty: unlock_dev(): entered
#
# more /tmp/devfsadm-i-hme.truss.s10u4
...
1404/1: 0.1267 0.0008 open("/devices/pseudo/devinfo@0:devinfo", O_RDONLY) = 6
1404/1: 0.1325 0.0058 ioctl(6, 0xDF81, 0xFFBFF700) = 0
1404/1: 0.1331 0.0006 close(6) = 0
1404/1: 0.1333 0.0002 open("/devices/pseudo/devinfo@0:devinfo", O_RDONLY) = 6
1404/1: 0.1335 0.0002 ioctl(6, 0xDF82, 0x00000000) = 57311
1404/1: 11.4694 11.3359 ioctl(6, 0xDF2F, 0xFFBFF28C) = 89840
...
1404/1: 11.5369 0.0003 _exit(0)
#
While ioctl(6, 0xDF07, 0xFFBFF314) is only taking only 0.0030 seconds or 1.55% of total execution time of "devfsadm -i <driver_name>", ioctl(6, 0xDF2F, 0xFFBFF28C) is taking 11.3359 seconds or 98% of total execution time of "devfsadm -i <driver_name>".
|