From owner-freebsd-fs@FreeBSD.ORG Thu Feb 8 22:52:49 2007 Return-Path: X-Original-To: freebsd-fs@freebsd.org Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 59FCB16A409 for ; Thu, 8 Feb 2007 22:52:49 +0000 (UTC) (envelope-from simokawa@freebsd.org) Received: from mail4.ecc.u-tokyo.ac.jp (mail4.ecc.u-tokyo.ac.jp [133.11.205.98]) by mx1.freebsd.org (Postfix) with ESMTP id 0923C13C4B4 for ; Thu, 8 Feb 2007 22:52:48 +0000 (UTC) (envelope-from simokawa@freebsd.org) Received: from mail1.ecc.u-tokyo.ac.jp (mail1.ecc.u-tokyo.ac.jp [133.11.50.203]) by mail4.ecc.u-tokyo.ac.jp (Postfix) with ESMTP id E1CDC5B1DB0 for ; Fri, 9 Feb 2007 07:31:15 +0900 (JST) Received: from spam002.ecc.u-tokyo.ac.jp (spam002.ecc.u-tokyo.ac.jp [133.11.50.195]) by mail1.ecc.u-tokyo.ac.jp (Postfix) with ESMTP id 3212710069 for ; Fri, 9 Feb 2007 07:31:15 +0900 (JST) Received: from tora.nunu.org (219.3.182.10 [219.3.182.10]) by spam002.ecc.u-tokyo.ac.jp (SpamBlock.pst 3.4.94) with ESMTP id <87wt2sth84.wl%simokawa@FreeBSD.ORG> for ; Fri, 9 Feb 2007 07:30:35 +0900 Date: Fri, 09 Feb 2007 07:30:35 +0900 Message-ID: <87wt2sth84.wl%simokawa@FreeBSD.ORG> From: Hidetoshi Shimokawa To: Pawel Jakub Dawidek In-Reply-To: <20061116015908.GB63195@garage.freebsd.pl> References: <20061116015908.GB63195@garage.freebsd.pl> User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.0.50 (i386-pc-freebsd) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-IP: 219.3.182.10 X-FROM-DOMAIN: freebsd.org X-FROM-EMAIL: simokawa@freebsd.org Cc: freebsd-fs@FreeBSD.org Subject: ZFS on amd64 (Re: ZFS patches for FreeBSD.) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Feb 2007 22:52:49 -0000 Hi Pawel, At Thu, 16 Nov 2006 02:59:08 +0100, Pawel Jakub Dawidek wrote: > > [1 ] > Hi. > > This is a first set of patches, which allows to use ZFS file system from > OpenSolaris on FreeBSD. > > To apply the patch you need to have recent FreeBSD source (be sure you > have rev. 1.284 of src/sys/kern/kern_synch.c). > > To try it out you need i386 machine (this is what I tested) and kernel > without WITNESS compiled in (there are probably some warnings still). > > Currently it can only be compiled as a kernel module. Thank you for porting of ZFS. I tried to run your code on FreeBSD/amd64 and it seems running very well. It survives several "make -j8 buildworld/kernel" with the obj tree in ZFS. Here is what I did, 1. copy files from //depot/user/pjd/zfs/... (without vop_vptofh related changes) 2. delete sys/contrib/opensolaris/uts/common/sys/acl.h 3. add sys/contrib/opensolaris/uts/common/rpc/types.h from opensolaris (for vaild declaration of mem_alloc/mem_free for kernel) 4. replace "i386" in sys/modules/zfs/Makefile with ${MACHINE}. 5. apply the following patch. 6. build /\ Hidetoshi Shimokawa \/ simokawa@FreeBSD.ORG ==== //depot/user/pjd/zfs/cddl/lib/Makefile#1 - /home/p4/zfs/cddl/lib/Makefile ==== @@ -1,3 +1,5 @@ +.if !defined(COMPAT_32BIT) SUBDIR= libavl libnvpair libumem libuutil libzfs #libzpool +.endif .include ==== //depot/user/pjd/zfs/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#27 - /home/p4/zfs/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c ==== @@ -388,7 +388,7 @@ * Hash table routines */ -#define HT_LOCK_PAD 64 +#define HT_LOCK_PAD roundup(sizeof(kmutex_t), 8) struct ht_lock { kmutex_t ht_lock; ==== //depot/user/pjd/zfs/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#67 - /home/p4/zfs/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ==== @@ -201,7 +201,7 @@ * data (cmd == _FIO_SEEK_DATA). "off" is an in/out parameter. */ static int -zfs_holey(vnode_t *vp, int cmd, offset_t *off) +zfs_holey(vnode_t *vp, u_long cmd, offset_t *off) { znode_t *zp = VTOZ(vp); uint64_t noff = (uint64_t)*off; /* new offset */ @@ -1932,7 +1932,7 @@ mutex_exit(&zp->z_lock); - dmu_object_size_from_db(zp->z_dbuf, &blksize, &vap->va_nblocks); + dmu_object_size_from_db(zp->z_dbuf, &blksize, (u_longlong_t *)&vap->va_nblocks); vap->va_blksize = blksize; if (zp->z_blksz == 0) { @@ -3116,7 +3116,7 @@ } */ *ap; { int cmd = ap->a_name; - int *valp = ap->a_retval; + long *valp = ap->a_retval; #if 0 vnode_t *vp = ap->a_vp; znode_t *zp, *xzp; @@ -3164,9 +3164,11 @@ *valp = 0; /* TODO */ return (0); +#if 0 case _PC_MIN_HOLE_SIZE: *valp = (int)SPA_MINBLOCKSIZE; return (0); +#endif default: return (vop_stdpathconf(ap));