From owner-freebsd-emulation@FreeBSD.ORG Tue Jul 9 19:47:21 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 16298B46 for ; Tue, 9 Jul 2013 19:47:21 +0000 (UTC) (envelope-from decke@bluelife.at) Received: from mail-oa0-x22e.google.com (mail-oa0-x22e.google.com [IPv6:2607:f8b0:4003:c02::22e]) by mx1.freebsd.org (Postfix) with ESMTP id CD8471867 for ; Tue, 9 Jul 2013 19:47:20 +0000 (UTC) Received: by mail-oa0-f46.google.com with SMTP id h1so8570369oag.33 for ; Tue, 09 Jul 2013 12:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bluelife.at; s=google; h=mime-version:x-originating-ip:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=W5laFxUBbww5fbUfx7lcWyeqWiT7BYrz86DA7Aj6b/8=; b=FjKegMqyF0oA/ajmRGf5JKOt79xeWKTepM64tuhLz7QME/2VBIfa1Bzoh+NApaU9Ch JHQCfbXd/aOMR1AyXfUSLc2BKXHXAA8iOd/+TC4dWn+lJbZuUzTqJB9ky/KDKsHATQGo VuTQg9pTOqvn32FScW4HVZL4K8URv4xHLOonU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-originating-ip:in-reply-to:references:date :message-id:subject:from:to:cc:content-type:x-gm-message-state; bh=W5laFxUBbww5fbUfx7lcWyeqWiT7BYrz86DA7Aj6b/8=; b=I90W8zjwK4Fw9xVxpTakZeLHcirzAJLTgw/fQTzx31XNCYTSHW+5+eWKVosdj6SGGE +6C4zDz8BPf7AVQ7zqH2XqY+7ZcD8FS6q3g6dYzQ4V681wdd/FFYtrQAz5qiGBi52jqq gcY8sr/zeQJOo7jH3TZe9/EgrGUfqeWIAWX1oatI1l17U5prfwYDQneWPntYg+ZOv/Li sgGY1i1Gr4ho4sj5QazHzpO5c+DsrZWFLGjY+fXct9W6mUh4ncIpYkIgFZch5ZPdsgct xiyT5pr+4E/o5nvKIqscUUgZvnroQIYaeQX95QYnxdg1d+ub3Qo1xHSQDlyrgvICGemN rVtw== MIME-Version: 1.0 X-Received: by 10.60.146.180 with SMTP id td20mr25498769oeb.96.1373399240366; Tue, 09 Jul 2013 12:47:20 -0700 (PDT) Received: by 10.76.95.168 with HTTP; Tue, 9 Jul 2013 12:47:20 -0700 (PDT) X-Originating-IP: [89.144.192.146] Received: by 10.76.95.168 with HTTP; Tue, 9 Jul 2013 12:47:20 -0700 (PDT) In-Reply-To: <51DC5208.9070305@freebsd.org> References: <201303090232.r292WN6W067161@svn.freebsd.org> <4952B228-DD42-45FE-9BC7-5D4B43FAF8FF@gmail.com> <51DC5208.9070305@freebsd.org> Date: Tue, 9 Jul 2013 21:47:20 +0200 Message-ID: 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... From: =?ISO-8859-1?Q?Bernhard_Fr=F6hlich?= To: Alfred Perlstein X-Gm-Message-State: ALoCoQmffCofretaBNEspCEU5ej8deXMBiHNET2kl59Cq6IfIcgw5Gz2DfQro8se8y3qEGxOoKaH X-Mailman-Approved-At: Tue, 09 Jul 2013 19:52:11 +0000 Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: alc@freebsd.org, Steve Wills , jeff@freebsd.org, Attilio Rao , freebsd-emulation@freebsd.org, kib@freebsd.org, portmgr@freebsd.org, nox@freebsd.org, vbox@freebsd.org, Garrett Cooper 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 19:47:21 -0000 Am 09.07.2013 20:10 schrieb "Alfred Perlstein" : > > On 7/8/13 11:30 PM, Garrett Cooper wrote: >> >> 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 >>> >>> 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. >>> >>> 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. >>> >>> The KPI results heavilly broken by this commit. Thirdy part ports must >>> be updated accordingly (I can think off-hand of VirtualBox, for example). >>> >>> 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 > > > Thanks Garrett, > > It would be great if we could track vm changes like this. Is there a doc that describes the process of an exp-run for us src guys? > > Can there a be a link or a hint towards this near some of the commonly bumped variables in freebsd base to let us know what to do? > > I fear even though we may educate the current crop of devs, that we will experience lossage as new developers are brought on unless we document this somewhere in src, or at least link to documentation elsewhere from src. > > by the way, do you think this change may be what is making virtualbox insta-panic on my -current box? Is there some trick we can use to version between the port? Maybe we need a set of macros or something to note the breakage of ABI? virtualbox was updated to that kpi change pretty soon after the commit on head so I don't think this has something to do with the panic. It would be good to update vbox to latest version from ports and enable the DEBUG option of the virtualbox-ose-kmod to obtain a useful stacktrace for the panic.