Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Aug 2009 11:08:42 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Marko Zec <zec@freebsd.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>, Julian Elischer <julian@FreeBSD.org>
Subject:   Re: PERFORCE change 167065 for review
Message-ID:  <200908061108.42372.jhb@freebsd.org>
In-Reply-To: <200908061404.n76E4IIF048503@repoman.freebsd.org>
References:  <200908061404.n76E4IIF048503@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 06 August 2009 10:04:18 am Marko Zec wrote:
> http://perforce.freebsd.org/chv.cgi?CH=167065
> 
> Change 167065 by zec@zec_tpx32 on 2009/08/06 14:03:58
> 
> 	Merge Julian's updates to V_ instructions document.
> 	Submitted by:	julian
> 
> Affected files ...
> 
> .. //depot/projects/vimage/porting_to_vimage.txt#10 edit
> 
> Differences ...
> 
> ==== //depot/projects/vimage/porting_to_vimage.txt#10 (text+ko) ====
> 
> -#endif /* !_FOO_VFOO_H_ */
> -=========================================================
> +On BOOT, the order of evaluation will be:
> +  In a NON-VIMAGE kernel where the module is compiled:
> +     MODEVENT, SYSINIT and VNET_SYSINIT both runm with order defined by 
their
> +     order declarations. {good foot shooting aterial if you get it wrong!}
>  
> +  In a VIMAGE kernel where the module is compiled:
> +     MODEVNET, SYSINIT and VNET_SYSINIT both runm with order defined by 
their
> +     order declarations.  AND in addition, the VNET_SYSINIT being
> +     repeated once for every new jail/vnet.
>  
> +On loading a vnet enabled kernel module after boot:
> +      MODEVENT("event = load");
> +      SYSINIT()
> +      VNET_SYSINIT() for every existing jail
> +        AND in addition, VNET_SYSINIT being called for each new jail 
created.
>  
> +On unloading of module:
> +      MODEVENT("event = quiesce")
> +      MODEVENT("event = unload")
> +      VNET_SYSUNINIT called for every jail/vnet
> +      SYSUNINIT
>  
> +On system shutdown:
> +      effectively the same as unload
> +	{with exception of modevent?}

On system shutdown MOD_SHUTDOWN is the only MODEVENT handler invoked.

> +NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed 
from
> +that of SYSUNINIT and VNET_SYSUNINIT, MODEVENTS do not follow
> +this rule and thus it is dangerous to initialise and uninitialise
> +things which are order dependent using MODEVENTs.

This is no longer true.  MOD_QUIESCE and MOD_UNLOAD events now run in the 
reverse of the order that MOD_LOAD is invoked for a given kld during 
kldunload.  This is true in both 7 and 8 now for several months.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908061108.42372.jhb>