svn commit: r341682 - head/sys/sys
John Baldwin
jhb at FreeBSD.org
Mon Dec 10 22:15:23 UTC 2018
On 12/8/18 7:43 PM, Warner Losh wrote:
>
>
> On Sat, Dec 8, 2018, 8:36 PM Kevin Bowling <kevin.bowling at kev009.com <mailto:kevin.bowling at kev009.com> wrote:
>
> On Sat, Dec 8, 2018 at 12:09 AM Mateusz Guzik <mjguzik at gmail.com <mailto:mjguzik at 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
More information about the svn-src-all
mailing list