As you might know, one feature we added to dlmgmtd (the datalink management daemon, started by the datalink-management service) is to recover from a fatal failure (e.g., when dlmgmtd is accidentally killed or it core dumps). We achieve this by keeping all the "active" link configuration in /var/run/datalink.conf, so that when dlmgmtd recovers from a fatal error, it can rebuild the link mappings based on the information stored in /etc/dladm/datalink.conf and /var/run/datalink.conf.
But this approach does not really work as we expected. It is because /var/run is only mounted in the filesystem/minimal service, which is started a lot behind the datalink-management service. Today the only tmpfs mounted early enough (by the kernel) is /var/svc/volatile, but it seems to be SMF specific. By talking with several engineers, we agreed the long term solution is that kernel mounts a tmpfs that can be used more generally, say /etc/volatile. I also investigated the possibility of removing /var/run and /etc/svc/volatile, but it seems that: - /var/run is proposed for compatibilities with linux. Because of this, we should preserve /var/run. - /etc/svc/volatile/repository_door is widely used in various package scripts to check whether a system supports SMF or not, and this is usually used for system upgrade. Those package scripts include packages outside ON. (I am not sure but I suspect that some third party softwares use the same technique). Because of this, it seems that /etc/svc/volatile should also be preserved. because of the above reasons, I tends to propose: a. the kernel mounts a tmpfs /etc/volatile instead of /etc/svc/volatile b. both /etc/svc/volatile and /var/run will be preserved and will be symbol linked to /etc/volatile. Please let me know what you think of this idea. Thanks - Cathy