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

Reply via email to