Date: Thu, 5 Jul 2018 17:38:14 +0200 From: Hans Petter Selasky <hps@selasky.org> To: Matt Macy <mmacy@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r335873 - in head: . sys/amd64/amd64 sys/amd64/include sys/conf sys/i386/i386 sys/i386/include sys/sys sys/vm Message-ID: <709dc4f7-a207-2123-e3a0-d258c8a60db4@selasky.org> In-Reply-To: <646866ab-1fe1-1866-8777-c4ad852fef7d@selasky.org> References: <201807021948.w62JmcV6019378@repo.freebsd.org> <646866ab-1fe1-1866-8777-c4ad852fef7d@selasky.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 07/05/18 15:50, Hans Petter Selasky wrote: > Hi, > > This change breaks all atomic usage in drm-next-kmod even after r335913. > > The problem is simply that SMP is not defined at all for KLD's so all > non-kernel atomic usage is with MPLOCKED empty! > > /* > * For userland, always use lock prefixes so that the binaries will run > * on both SMP and !SMP systems. > */ > #if defined(SMP) || !defined(_KERNEL) > #define MPLOCKED "lock ; " > #else > #define MPLOCKED > #endif > > > Should the check above be: > #if defined(SMP) || !defined(_KERNEL) || defined(KLD_MODULE) The problem seems more convoluted. There are more checks I wonder if has to be changed. Currently testing this patch: Same applies for i386. > Index: sys/amd64/include/atomic.h > =================================================================== > --- sys/amd64/include/atomic.h (revision 335974) > +++ sys/amd64/include/atomic.h (working copy) > @@ -132,7 +132,7 @@ > * For userland, always use lock prefixes so that the binaries will run > * on both SMP and !SMP systems. > */ > -#if defined(SMP) || !defined(_KERNEL) > +#if defined(SMP) || !defined(_KERNEL) || defined(KLD_MODULE) > #define MPLOCKED "lock ; " > #else > #define MPLOCKED > @@ -343,7 +343,7 @@ > * and release. > */ > > -#if defined(_KERNEL) > +#if defined(_KERNEL) || defined(KLD_MODULE) > > /* > * OFFSETOF_MONITORBUF == __pcpu_offset(pc_monitorbuf). > @@ -354,7 +354,7 @@ > */ > #define OFFSETOF_MONITORBUF 0x100 > > -#if defined(SMP) > +#if defined(SMP) || defined(KLD_MODULE) > static __inline void > __storeload_barrier(void) > { --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?709dc4f7-a207-2123-e3a0-d258c8a60db4>