From owner-svn-src-head@FreeBSD.ORG Tue Jun 21 23:47:42 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CC57E1065692; Tue, 21 Jun 2011 23:47:42 +0000 (UTC) (envelope-from alc@rice.edu) Received: from mh6.mail.rice.edu (mh6.mail.rice.edu [128.42.201.4]) by mx1.freebsd.org (Postfix) with ESMTP id 93CA68FC17; Tue, 21 Jun 2011 23:47:42 +0000 (UTC) Received: from mh6.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh6.mail.rice.edu (Postfix) with ESMTP id CF92F2904BA; Tue, 21 Jun 2011 18:28:01 -0500 (CDT) X-Virus-Scanned: by amavis-2.6.4 at mh6.mail.rice.edu, auth channel Received: from mh6.mail.rice.edu ([127.0.0.1]) by mh6.mail.rice.edu (mh6.mail.rice.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id cN7jVm+5OI7v; Tue, 21 Jun 2011 18:28:01 -0500 (CDT) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) (Authenticated sender: alc) by mh6.mail.rice.edu (Postfix) with ESMTPSA id E09552904B6; Tue, 21 Jun 2011 18:28:00 -0500 (CDT) Message-ID: <4E0128FF.6020804@rice.edu> Date: Tue, 21 Jun 2011 18:27:59 -0500 From: Alan Cox User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.2.15) Gecko/20110328 Thunderbird/3.1.9 MIME-Version: 1.0 To: Attilio Rao References: <201106191913.p5JJDOqJ006272@svn.freebsd.org> <20110622063258.D2275@besplex.bde.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: src-committers@freebsd.org, Alan Cox , svn-src-all@freebsd.org, "Bjoern A. Zeeb" , Bruce Evans , svn-src-head@freebsd.org Subject: Re: svn commit: r223307 - head/sys/vm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Jun 2011 23:47:43 -0000 On 06/21/2011 16:09, Attilio Rao wrote: > 2011/6/21 Bruce Evans: >> On Tue, 21 Jun 2011, Bjoern A. Zeeb wrote: >> >>> On Jun 19, 2011, at 7:13 PM, Alan Cox wrote: >>> >>> Hi Alan, >>> >>>> Author: alc >>>> Date: Sun Jun 19 19:13:24 2011 >>>> New Revision: 223307 >>>> URL: http://svn.freebsd.org/changeset/base/223307 >>>> >>>> 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.) >>>> >>>> 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. >>>> >>>> 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: >>> >>> 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. > 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: # 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)