svn commit: r359829 - in head/sys: amd64/conf conf

Mark Millard marklmi at yahoo.com
Sun Apr 12 19:43:19 UTC 2020


> Author: cem
> Date: Sun Apr 12 18:04:20 2020
> New Revision: 359829
> URL: 
> https://svnweb.freebsd.org/changeset/base/359829
> 
> 
> Log:
>   Add queue(2) debug macros as build options
>   
>   Add QUEUE_MACRO_DEBUG_TRACE and QUEUE_MACRO_DEBUG_TRASH as proper kernel
>   options.  While here, alpha-sort the debug section of sys/conf/options.
>   
>   Enable QUEUE_MACRO_DEBUG_TRASH in amd64 GENERIC (but not GENERIC-NODEBUG)
>   kernels.  It is similar in nature and cost to other use-after-free pointer
>   trashing we do in GENERIC.  It is probably reasonable to enable in any arch
>   GENERIC kernel that defines INVARIANTS.

Going the other way: Is QUEUE_MACRO_DEBUG_TRASH unsafe when INVARIANTS
has been disabled?

I historically produce non-debug/less-debug kernels via including GENERIC
and then disabling various debugging options, including frequently
disabling INVARIANTS and INVARIANTS_SUPPORT.

Would the following be appropriate for the comments, with its extra
"required by" on the first line shown:

 options 	INVARIANTS		# Enable calls of extra sanity checking, required by QUEUE_MACRO_DEBUG_TRASH
 options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
 options 	QUEUE_MACRO_DEBUG_TRASH	# Trash queue(2) internal pointers on invalidation

Should head/sys/conf/NOTES have material about avoiding
QUEUE_MACRO_DEBUG_TRASH with INVARIANTS disabled?



===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the svn-src-head mailing list