[releng_7 tinderbox] failure on amd64/amd64

John Birrell jb at what-creek.com
Thu Aug 28 21:19:42 UTC 2008


On Thu, Aug 28, 2008 at 04:25:54PM +0300, Kostik Belousov wrote:
> > /src/sys/modules/cyclic/../../cddl/compat/opensolaris/sys/cpuvar.h:72: error: size of array 'cpuc_pad' is too large
> > *** Error code 1
> 
> This one is caused by struct sx difference between stable/7 and head.
> More detailed, sizeof(struct sx) in the LINT build exceeds 56 bytes,
> and causes CPUC_PADSIZE to be negative.
> 
> I think that CPU_CACHE_COHERENCE_SIZE shall be defined as roundup. Unless
> you have objections, I will commit this to HEAD with short MFC period:

Please go ahead. Thanks (and sorry for the pain).

> 
> diff --git a/sys/cddl/compat/opensolaris/sys/cpuvar.h b/sys/cddl/compat/opensolaris/sys/cpuvar.h
> index df0af5c..b42fda6 100644
> --- a/sys/cddl/compat/opensolaris/sys/cpuvar.h
> +++ b/sys/cddl/compat/opensolaris/sys/cpuvar.h
> @@ -65,7 +65,8 @@ extern solaris_cpu_t    solaris_cpu[];
>   */
>  #define	CPUC_SIZE		(sizeof (uint16_t) + sizeof (uintptr_t) + \
>  				sizeof (kmutex_t))
> -#define	CPUC_PADSIZE		CPU_CACHE_COHERENCE_SIZE - CPUC_SIZE
> +#define	CPUC_SIZE1		roundup(CPUC_SIZE, CPU_CACHE_COHERENCE_SIZE)
> +#define	CPUC_PADSIZE		CPUC_SIZE1 - CPUC_SIZE
>  
>  typedef struct cpu_core {
>  	uint16_t	cpuc_dtrace_flags;	/* DTrace flags */


--
John Birrell


More information about the freebsd-stable mailing list