On 12/8/18 7:43 PM, Warner Losh wrote:
> 
> 
> On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling <kevin.bowl...@kev009.com 
> <mailto:kevin.bowl...@kev009.com> wrote:
> 
>     On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik <mjgu...@gmail.com 
> <mailto:mjgu...@gmail.com>> wrote:
> 
>     >
>     > Fully satisfying solution would be that all architectures get 64-bit
>     > ops, even if in the worst case they end up taking a lock. Then
>     > subsystems would not have to ifdef on anything. However, there
>     > was some opposition to this proposal and I don't think this is
>     > important enough to push.
> 
>     Mateusz,
> 
>     Who is opposing this particular polyfill solution?  Scott Long brought
>     up a situation in driver development where this would be useful as
>     well.  The polyfills lower the cognitive load and #ifdef soup which
>     are the right call here regardless of performance on toy ports.
> 
> 
> I don't recall seeing the opposition either. It would have to be a global 
> lock for all 64bit atomics.... but I think it would only be 2 atomics on 
> those architectures. 

It would have to be a spin lock, so in the case of unrl you would be trading
an operation on one of N regular mutexes for a single spin lock that was
also contested by other things.  This would be pretty crappy.  For drivers
that aren't actually used on platforms without 32-bit atomics we can simply
not build them in sys/modules/Makefile or not put them in GENERIC.  For
something in the core kernel like unrl I think we will have to do what
Mateusz has done here.

-- 
John Baldwin

                                                                            
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to