From owner-freebsd-emulation@FreeBSD.ORG Tue Jul 9 15:58:45 2013 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C7F295B6; Tue, 9 Jul 2013 15:58:45 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pd0-x22f.google.com (mail-pd0-x22f.google.com [IPv6:2607:f8b0:400e:c02::22f]) by mx1.freebsd.org (Postfix) with ESMTP id 6F8FF19DA; Tue, 9 Jul 2013 15:58:45 +0000 (UTC) Received: by mail-pd0-f175.google.com with SMTP id 4so5395192pdd.34 for ; Tue, 09 Jul 2013 08:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=oz+07xxLxjxWpO0WpmWPw0Ct7tBaaw3ew0LuEqWEenc=; b=H6XL6ymZIjZ/HUGgZQo7K0B9M6wGtzH63vfS/xMCohSWSOwIA0Xop20bVtwqefGpir oo2h2QDkGPmM7UA+5XEXTNURCOt+xRXugwVDfKybuQLG8xqtG8UdXGYkX1pRvg4/OTyf DbufUjjW016qs2TA/VVK52K+EXoAgJgj+AkNU7wVcbdw2JYiGn/XmnMttfmY/jNgF1Vx BrP9XxWl4qjESlsdAujY1chzunXZWbY9qxLmudmMOZWmmmQYMmgfwiy0jSox6z/mGz/C 89Z3BT7+yOGzrjtLvlL85WcdjRdzMjPYINGWOCioINGGBlmZcuXHA/hCE7+t6M71qcxt nCTQ== X-Received: by 10.66.194.13 with SMTP id hs13mr29181966pac.152.1373385525293; Tue, 09 Jul 2013 08:58:45 -0700 (PDT) Received: from [192.168.20.5] (c-98-203-241-95.hsd1.wa.comcast.net. [98.203.241.95]) by mx.google.com with ESMTPSA id te9sm14805451pab.6.2013.07.09.08.58.43 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 09 Jul 2013 08:58:44 -0700 (PDT) Subject: Re: svn commit: r248084 - in head/sys: amd64/amd64 arm/arm cddl/compat/opensolaris/kern cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs cddl/contrib/opensolaris/uts/common/fs/zfs... Mime-Version: 1.0 (Apple Message framework v1283) Content-Type: text/plain; charset=us-ascii From: Garrett Cooper In-Reply-To: <201303090232.r292WN6W067161@svn.freebsd.org> Date: Mon, 8 Jul 2013 23:30:15 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <4952B228-DD42-45FE-9BC7-5D4B43FAF8FF@gmail.com> References: <201303090232.r292WN6W067161@svn.freebsd.org> To: Attilio Rao X-Mailer: Apple Mail (2.1283) X-Mailman-Approved-At: Tue, 09 Jul 2013 17:18:55 +0000 Cc: alc@FreeBSD.org, swills@FreeBSD.org, jeff@FreeBSD.org, Alfred Perlstein , freebsd-emulation@FreeBSD.org, kib@FreeBSD.org, portmgr@FreeBSD.org, nox@FreeBSD.org, vbox@FreeBSD.org X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jul 2013 15:58:45 -0000 On Mar 8, 2013, at 6:32 PM, Attilio Rao wrote: > Author: attilio > Date: Sat Mar 9 02:32:23 2013 > New Revision: 248084 > URL: http://svnweb.freebsd.org/changeset/base/248084 >=20 > Log: > Switch the vm_object mutex to be a rwlock. This will enable in the > future further optimizations where the vm_object lock will be held > in read mode most of the time the page cache resident pool of pages > are accessed for reading purposes. >=20 > The change is mostly mechanical but few notes are reported: > * The KPI changes as follow: > - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() > - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() > - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() > - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() > (in order to avoid visibility of implementation details) > - The read-mode operations are added: > VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), > VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() > * The vm/vm_pager.h namespace pollution avoidance (forcing requiring > sys/mutex.h in consumers directly to cater its inlining functions > using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h > consumers now must include also sys/rwlock.h. > * zfs requires a quite convoluted fix to include FreeBSD rwlocks into > the compat layer because the name clash between FreeBSD and solaris > versions must be avoided. > At this purpose zfs redefines the vm_object locking functions > directly, isolating the FreeBSD components in specific compat stubs. >=20 > The KPI results heavilly broken by this commit. Thirdy part ports = must > be updated accordingly (I can think off-hand of VirtualBox, for = example). >=20 > Sponsored by: EMC / Isilon storage division > Reviewed by: jeff > Reviewed by: pjd (ZFS specific review) > Discussed with: alc > Tested by: pho This commit broke emulators/open-vm-tools (which helps with = hardware acceleration and other guest OS services on VMware, et al) and = it's been broken for ~4 months now. Please ask portmgr@ to do an exp- = run before making KPI changes. open-vm-tools, nvidia-driver, qemu*, and = virtualbox-ose* are and have been particularly vulnerable to sweeping = changes like this in the past (I've had to patch a lot of 3rd party = software broken by KPI changes in 10.x, more than in prior releases) and = a lot of developers depend on this functionality to be sane in order to = develop software on -CURRENT and -STABLE (and it allows us to better = test your code). Thanks, -Garrett=