From owner-svn-src-stable@FreeBSD.ORG Sat Dec 29 04:43:27 2012 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1F9FA663; Sat, 29 Dec 2012 04:43:27 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id ECEDA8FC12; Sat, 29 Dec 2012 04:43:26 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 492C11A3C1A; Fri, 28 Dec 2012 20:43:26 -0800 (PST) Message-ID: <50DE74F1.70105@mu.org> Date: Fri, 28 Dec 2012 20:43:29 -0800 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Peter Wemm Subject: Re: svn commit: r244663 - stable/9 References: <201212241422.qBOEMrcF021632@svn.freebsd.org> <50D8B533.8080507@mu.org> <20121225104422.GB53644@kib.kiev.ua> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Adrian Chadd , src-committers@freebsd.org, svn-src-stable@freebsd.org, svn-src-all@freebsd.org, svn-src-stable-9@freebsd.org, Robert Watson , Konstantin Belousov X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Dec 2012 04:43:27 -0000 On 12/28/12 8:16 PM, Peter Wemm wrote: > On Tue, Dec 25, 2012 at 11:17 AM, Robert Watson wrote: >> On Tue, 25 Dec 2012, Konstantin Belousov wrote: >> >>> On Mon, Dec 24, 2012 at 12:04:03PM -0800, Alfred Perlstein wrote: >>>> On 12/24/12 11:24 AM, Adrian Chadd wrote: >>>>> ... why'd we break the KBI in a stable branch? >>>>> >>>> I am not sure either. >>>> >>>> I think a single VOP for nullfs (while ugly) would have sufficed. >>> No, it doesn't. >>> >>> Even if it would be sufficient, having a switch right after the vtable >>> call is silly. But, ignoring the sillyness, having a single VOP forces a >>> filesystem, needed to override the single bit of behaviour, to override all >>> behaviours hidden from under the common VOP. Besides the incovenience, it >>> breaks the bypass. This is why I did not went this route in the HEAD commit. >>> >>> Making HEAD and stable diverge for the VOP table is unmaintainable. >>> >>> At least one other change which cannot be covered by the VOP table hacking >>> is the struct vfsops new method. >>> >>> Traditionally (my memory goes back to 6.x branch) we did not maintained >>> VFS KBI stability on the branches. >> >> While I would love to have a stable KBI, or even KPI, for VFS, past >> experience suggests that we are not prepared to document one, let alone >> enforce it, and that we frequently experience changes that disrupt both the >> binary and programming interfaces -- often for very good reasons (e.g., >> fixing critical bugs, improving performance, etc). And that the notional >> VFS KPI is extremely promiscuous, being made up of not just the obvious VFS >> parts, but also VM parts, etc. > For what its worth, we used to have an extensible VOP_* interface that > didn't have this sort of problem. It was removed in r140165 (back in > 2005) and we gained a whole bunch of extra functionality afterwards > including type checking. > Yes. Kib and I chatted offline, it seems that the SOP is really "there is no guarantee about KPI when talking about VFS" so the headache that it would be to write the shim layer and maintain it (particularly considering the 9.x release cycle slowness) was not worth it. In a few days I'm going to blow up the extra entries in VFSOPS and VOPS by some 10 entries to hopefully keep us KPI friendly for the next release. I may also introduce a VFS_KPI version number. Let me know if you have any thoughts on that, my thoughts are basically to make it like FreeBSD_version, and eventually someone can add macros for VFS klds to refuse to load depending on VFS_KPI. -Alfred