From owner-freebsd-hackers@FreeBSD.ORG Thu May 3 15:02:59 2012 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E451106564A; Thu, 3 May 2012 15:02:59 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 5287C8FC12; Thu, 3 May 2012 15:02:58 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id SAA02851; Thu, 03 May 2012 18:02:52 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <4FA29E1B.7040005@FreeBSD.org> Date: Thu, 03 May 2012 18:02:51 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:12.0) Gecko/20120428 Thunderbird/12.0 MIME-Version: 1.0 To: Marius Strobl , Gavin Mu , John Baldwin References: <4F8999D2.1080902@FreeBSD.org> <20120422212102.GA66855@alchemy.franken.de> <4F9A6180.8090500@FreeBSD.org> <20120429164623.GG68446@alchemy.franken.de> <4F9E3971.7090405@FreeBSD.org> <20120501202128.GD18650@alchemy.franken.de> In-Reply-To: <20120501202128.GD18650@alchemy.franken.de> X-Enigmail-Version: 1.5pre Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-fs@FreeBSD.org, freebsd-hackers@FreeBSD.org Subject: Re: [review request] zfsboot/zfsloader: support accessing filesystems within a pool X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 May 2012 15:02:59 -0000 Here's the latest version of the patches: http://people.freebsd.org/~avg/zfsboot.patches.4.diff John, the first of the patches implements the approach that we previously discussed. All arguments are passed starting at a fixed offset that should provide enough space for extending argument list. The first of the extended arguments should be a size of the arguments (including the size field). Then it's easy to write something like: struct xargs { uint32_t size; ... }; ... struct xargs xargs; xargs.size = sizeof(xargs); ... __exec(..., xargs); Marius, Gavin, patch 1f94d9a is my attempt of adapting your sparc64 ZFS code to my larger changes in patch ae5a9c6. I have the patches separate to facilitate the review. They should be committed together. I have only compile-tested the sparc64/ofw part, so it could have some grave bugs or omissions. Could you please review and/or test this patch? I will greatly appreciate any discussion, suggestions, help. I again invite everyone else to take part in the review and testing. -- Andriy Gapon