From owner-svn-src-user@FreeBSD.ORG Fri Dec 28 22:33:04 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 302201B5; Fri, 28 Dec 2012 22:33:04 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 912B38FC08; Fri, 28 Dec 2012 22:33:03 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.5/8.14.5) with ESMTP id qBSMWx9a007244; Sat, 29 Dec 2012 00:32:59 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.7.3 kib.kiev.ua qBSMWx9a007244 Received: (from kostik@localhost) by tom.home (8.14.5/8.14.5/Submit) id qBSMWxpT007243; Sat, 29 Dec 2012 00:32:59 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 29 Dec 2012 00:32:59 +0200 From: Konstantin Belousov To: Attilio Rao Subject: Re: svn commit: r244793 - in user/attilio/membarclean/dev: drm drm2 netmap virtio Message-ID: <20121228223259.GX82219@kib.kiev.ua> References: <201212282218.qBSMIfX2015054@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="z3PcgjD2qOzdkXVS" Content-Disposition: inline In-Reply-To: <201212282218.qBSMIfX2015054@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: src-committers@freebsd.org, svn-src-user@freebsd.org X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Dec 2012 22:33:04 -0000 --z3PcgjD2qOzdkXVS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Dec 28, 2012 at 10:18:41PM +0000, Attilio Rao wrote: > Author: attilio > Date: Fri Dec 28 22:18:41 2012 > New Revision: 244793 > URL: http://svnweb.freebsd.org/changeset/base/244793 >=20 > Log: > - Remove rmb() usage from netmap and replace it with intended operation > to do actual memory fetching reads. > - GC unused DRM_WRITEMEMORYBARRIER() from drm and drm2. > - Use atomic_load_acq_*() in virtio and drm2 in places that don't need > to use rmb(). > =20 > All these changes remove completely rmb() from MI code, with the > exception of cxgbe which will be hammered in a followup commit. >=20 > Modified: > user/attilio/membarclean/dev/drm/drmP.h > user/attilio/membarclean/dev/drm2/drmP.h > user/attilio/membarclean/dev/drm2/drm_atomic.h > user/attilio/membarclean/dev/drm2/drm_irq.c > user/attilio/membarclean/dev/netmap/netmap.c > user/attilio/membarclean/dev/virtio/virtqueue.c >=20 > Modified: user/attilio/membarclean/dev/drm/drmP.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- user/attilio/membarclean/dev/drm/drmP.h Fri Dec 28 22:06:50 2012 (r24= 4792) > +++ user/attilio/membarclean/dev/drm/drmP.h Fri Dec 28 22:18:41 2012 (r24= 4793) > @@ -241,11 +241,9 @@ typedef u_int32_t u32; > typedef u_int16_t u16; > typedef u_int8_t u8; > =20 > -/* DRM_READMEMORYBARRIER() prevents reordering of reads. > - * DRM_WRITEMEMORYBARRIER() prevents reordering of writes. > +/* DRM_WRITEMEMORYBARRIER() prevents reordering of writes. > * DRM_MEMORYBARRIER() prevents reordering of reads and writes. > */ > -#define DRM_READMEMORYBARRIER() rmb() > #define DRM_WRITEMEMORYBARRIER() wmb() > #define DRM_MEMORYBARRIER() mb() > =20 >=20 > Modified: user/attilio/membarclean/dev/drm2/drmP.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- user/attilio/membarclean/dev/drm2/drmP.h Fri Dec 28 22:06:50 2012 (r2= 44792) > +++ user/attilio/membarclean/dev/drm2/drmP.h Fri Dec 28 22:18:41 2012 (r2= 44793) > @@ -263,11 +263,9 @@ typedef int32_t s32; > typedef int16_t s16; > typedef int8_t s8; > =20 > -/* DRM_READMEMORYBARRIER() prevents reordering of reads. > - * DRM_WRITEMEMORYBARRIER() prevents reordering of writes. > +/* DRM_WRITEMEMORYBARRIER() prevents reordering of writes. > * DRM_MEMORYBARRIER() prevents reordering of reads and writes. > */ > -#define DRM_READMEMORYBARRIER() rmb() > #define DRM_WRITEMEMORYBARRIER() wmb() > #define DRM_MEMORYBARRIER() mb() > =20 >=20 > Modified: user/attilio/membarclean/dev/drm2/drm_atomic.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- user/attilio/membarclean/dev/drm2/drm_atomic.h Fri Dec 28 22:06:50 20= 12 (r244792) > +++ user/attilio/membarclean/dev/drm2/drm_atomic.h Fri Dec 28 22:18:41 20= 12 (r244793) > @@ -38,6 +38,7 @@ typedef u_int32_t atomic_t; > =20 > #define atomic_set(p, v) (*(p) =3D (v)) > #define atomic_read(p) (*(p)) > +#define atomic_read_acq(p) atomic_load_acq_int(p) > #define atomic_inc(p) atomic_add_int(p, 1) > #define atomic_dec(p) atomic_subtract_int(p, 1) > #define atomic_add(n, p) atomic_add_int(p, n) >=20 > Modified: user/attilio/membarclean/dev/drm2/drm_irq.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- user/attilio/membarclean/dev/drm2/drm_irq.c Fri Dec 28 22:06:50 2012 = (r244792) > +++ user/attilio/membarclean/dev/drm2/drm_irq.c Fri Dec 28 22:18:41 2012 = (r244793) > @@ -701,8 +701,7 @@ u32 drm_vblank_count_and_time(struct drm > do { > cur_vblank =3D atomic_read(&dev->_vblank_count[crtc]); > *vblanktime =3D vblanktimestamp(dev, crtc, cur_vblank); > - rmb(); > - } while (cur_vblank !=3D atomic_read(&dev->_vblank_count[crtc])); > + } while (cur_vblank !=3D atomic_read_acq(&dev->_vblank_count[crtc])); > =20 > return cur_vblank; > } The drm/drm2 is the contributed code, maintained outside the tree, and I explicitely decided to keep the original approach. I will appreciate if this would be left as it is. --z3PcgjD2qOzdkXVS Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQIcBAEBAgAGBQJQ3h4aAAoJEJDCuSvBvK1BTkUP/Rq6cHGYXC9alB9UWKMAT4yv toLNOi6noDo2dAVbwS1Fu39PB/jnpiBjs07F+j2SEIS/W1MuxCDDrpRuPvORR6p8 xIctwYpTkf+A35b0uGV+WN35RqoNu+6C+ERJE3FoA9kppht/lCxL3zG7v7iLHgwT bzvhokenFzWOPm2BhK+DENLfqGqLR7bCsyhMsrRxnyiEvSknztrxmcROASY5Krl7 F478Gjs0X/oQI8vS25YLCatDE4a6FKGIFSJbTzXJq9yY9dQMvC3d8FmewoeHR5FL RLKUwpPD2Gmo2Bj686ZI5OzzF/RcgmTbkwJ38uF195nxMd1dwzFF/QPWjKL1rYR3 vDHaaCmBlshfeP4MVVOLggEU1Pl11Cf3HgjDAeWhA8/djMonuS8/3bEHtg+noz2a s9G5xV8+k+Nh+Kac296Xi4NvKgBqZB3Q7N4Qw0yiXbiuCJGS9MZfJr1AIbwNepuG 3JOwEaI8KkgFe3XeaAVz2LS0/n93d+F39asEM6rqV43250sW6L/JXRPo7u5mF+UX rtoACnWNpBw6v67Jiup28m63Fk56ayQf7T4JWA/zK9GycCK91Tf942ILaLj5hMnV nir5diUhhNBNZ4whLl3Nka2QItAOqAUw4Vyi2h6Yhc+2qc/RMNoFxROaWtc1wsql 6EO9egzoHfq8S11V8LD+ =5JOY -----END PGP SIGNATURE----- --z3PcgjD2qOzdkXVS--