Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Dec 2018 11:10:01 -0700
From:      Ian Lepore <ian@freebsd.org>
To:        Mateusz Guzik <mjg@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r341682 - head/sys/sys
Message-ID:  <1544206201.1860.288.camel@freebsd.org>
In-Reply-To: <201812071205.wB7C5BvA038350@repo.freebsd.org>
References:  <201812071205.wB7C5BvA038350@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2018-12-07 at 12:05 +0000, Mateusz Guzik wrote:
> Author: mjg
> Date: Fri Dec  7 12:05:11 2018
> New Revision: 341682
> URL: https://svnweb.freebsd.org/changeset/base/341682
> 
> Log:
>   unr64: use locked variant if not __LP64__
>   
>   The current ifdefs are not sufficient to distinguish 32- and 64-
> bit
>   variants, which results e.g. in powerpc64 not using atomics.
>   
>   While some 32-bit archs provide 64-bit atomics, there is no huge
> advantage
>   of using them on these platforms.
>   
>   Reported by:	many
>   Suggested by:	jhb
>   Sponsored by:	The FreeBSD Foundation
> 
> Modified:
>   head/sys/sys/systm.h
> 
> Modified: head/sys/sys/systm.h
> =====================================================================
> =========
> --- head/sys/sys/systm.h	Fri Dec  7 12:02:31 2018	(r341
> 681)
> +++ head/sys/sys/systm.h	Fri Dec  7 12:05:11 2018	(r341
> 682)
> @@ -523,7 +523,7 @@ int alloc_unr_specific(struct unrhdr *uh, u_int
> item);
>  int alloc_unrl(struct unrhdr *uh);
>  void free_unr(struct unrhdr *uh, u_int item);
>  
> -#if defined(__mips__) || defined(__powerpc__)
> +#ifndef __LP64__
>  #define UNR64_LOCKED
>  #endif
>  
> 

This seems like a wholly unsatisfying solution compared to how trivial
it would be to do something like have each arch's atomic.h set a symbol
to indicate whether 64-bit atomics are available. Dismissing 32-bit
arches because you don't perceive performance to be important there
doesn't seem like a valid argument.

-- Ian




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