Date: Tue, 21 Jun 2011 20:01:38 -0600 From: Warner Losh <imp@bsdimp.com> To: Alan Cox <alc@rice.edu> Cc: src-committers@FreeBSD.org, Alan Cox <alc@FreeBSD.org>, svn-src-all@FreeBSD.org, Attilio Rao <attilio@FreeBSD.org>, "Bjoern A. Zeeb" <bz@FreeBSD.org>, Bruce Evans <brde@optusnet.com.au>, svn-src-head@FreeBSD.org Subject: Re: svn commit: r223307 - head/sys/vm Message-ID: <37980F43-13C5-4C0E-8DB6-9871FD95598C@bsdimp.com> In-Reply-To: <4E0128FF.6020804@rice.edu> References: <201106191913.p5JJDOqJ006272@svn.freebsd.org> <BBC34F79-FFA7-4A05-83B3-DE17E0AB14D0@FreeBSD.org> <20110622063258.D2275@besplex.bde.org> <BANLkTi=7WnYPQRwE4Hi472DuJz91d1sK=g@mail.gmail.com> <4E0128FF.6020804@rice.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 21, 2011, at 5:27 PM, Alan Cox wrote: > On 06/21/2011 16:09, Attilio Rao wrote: >> 2011/6/21 Bruce Evans<brde@optusnet.com.au>: >>> On Tue, 21 Jun 2011, Bjoern A. Zeeb wrote: >>>=20 >>>> On Jun 19, 2011, at 7:13 PM, Alan Cox wrote: >>>>=20 >>>> Hi Alan, >>>>=20 >>>>> Author: alc >>>>> Date: Sun Jun 19 19:13:24 2011 >>>>> New Revision: 223307 >>>>> URL: http://svn.freebsd.org/changeset/base/223307 >>>>>=20 >>>>> Log: >>>>> Precisely document the synchronization rules for the page's dirty = field. >>>>> (Saying that the lock on the object that the page belongs to must = be >>>>> held >>>>> only represents one aspect of the rules.) >>>>>=20 >>>>> Eliminate the use of the page queues lock for atomically = performing >>>>> read- >>>>> modify-write operations on the dirty field when the underlying >>>>> architecture >>>>> supports atomic operations on char and short types. >>>>>=20 >>>>> Document the fact that 32KB pages aren't really supported. >>>> contrary to the tinderbox I'd like to point out that all mips = kernels >>>> built by universe are broken with a SVN HEAD from earlier today. = Could you >>>> please check and see if you can fix it? The errors I get are: >>>>=20 >>>> vm_page.o: In function `vm_page_clear_dirty': >>>> /sys/vm/vm_page.c:(.text+0x18d0): undefined reference to = `atomic_clear_8' >>>> /sys/vm/vm_page.c:(.text+0x18d0): relocation truncated to fit: = R_MIPS_26 >>>> against `atomic_clear_8' >>>> vm_page.o: In function `vm_page_set_validclean': >>>> /sys/vm/vm_page.c:(.text+0x38f0): undefined reference to = `atomic_clear_8' >>>> /sys/vm/vm_page.c:(.text+0x38f0): relocation truncated to fit: = R_MIPS_26 >>>> against `atomic_clear_8' >>> Atomic types shorter than int cannot be used in MI code, since they = might >>> not exist. Apparently they don't exist on mips. jake@ fixed all = their >>> old uses for sparc4 in ~Y2K. >> I'm sure they do, they exist in support.S though and may not have the >> _8 form (they may just have the _char version). I may look at the = code >> again to be sure. >>=20 >=20 > It appears that while mips/include/atomic.h declares the existence of = atomic_clear_8, mips/mips/support.S doesn't implement it. In other = words, only support for int's and short's is currently implemented, not = char's: >=20 > # grep atomic_clear mips/mips/support.S > * atomic_clear_32(u_int32_t *a, u_int32_t b) > LEAF(atomic_clear_32) > END(atomic_clear_32) > * atomic_clear_16(u_int16_t *a, u_int16_t b) > LEAF(atomic_clear_16) > END(atomic_clear_16 Doh! I was confused. I thought _8 was '64 bits' given the bus_space = convention. I'll look at implementing the _8 version tonight. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37980F43-13C5-4C0E-8DB6-9871FD95598C>