> 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

Just use etc/svc/volatile.  There's no need for us to have to do a bunch
of extra work to reinvent that mechanism.  dlmgmt is a service.  If it
runs before the other stuff is mounted, which is a very small number of
services, then it should go ahead and use that directory.
etc/svc/volatile is already used for early-boot things such as log files.

-Mike

-- 
Mike Shapiro, Solaris Kernel Development. blogs.sun.com/mws/

Reply via email to