From owner-freebsd-geom@FreeBSD.ORG Fri Jan 23 17:34:12 2004 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 439B716A4CE for ; Fri, 23 Jan 2004 17:34:12 -0800 (PST) Received: from ozlabs.org (ozlabs.org [203.10.76.45]) by mx1.FreeBSD.org (Postfix) with ESMTP id 52D4943D1D for ; Fri, 23 Jan 2004 17:34:10 -0800 (PST) (envelope-from grog@lemis.com) Received: from blackwater.lemis.com (blackwater.lemis.com [192.109.197.80]) by ozlabs.org (Postfix) with ESMTP id 3E2152BD7B for ; Sat, 24 Jan 2004 12:34:08 +1100 (EST) Received: by blackwater.lemis.com (Postfix, from userid 1004) id 76C6151208; Sat, 24 Jan 2004 12:04:06 +1030 (CST) Date: Sat, 24 Jan 2004 12:04:06 +1030 From: Greg 'groggy' Lehey To: Lukas Ertl Message-ID: <20040124013406.GB20359@wantadilla.lemis.com> References: <20040122171029.N1850@korben.in.tern> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="rS8CxjVDS/+yyDmU" Content-Disposition: inline In-Reply-To: <20040122171029.N1850@korben.in.tern> User-Agent: Mutt/1.4.1i Organization: The FreeBSD Project Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.FreeBSD.org/ X-PGP-Fingerprint: 9A1B 8202 BCCE B846 F92F 09AC 22E6 F290 507A 4223 cc: freebsd-geom@freebsd.org Subject: Re: Updated geom_vinum X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Jan 2004 01:34:12 -0000 --rS8CxjVDS/+yyDmU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thursday, 22 January 2004 at 17:12:53 +0100, Lukas Ertl wrote: > Hi, > > I've created an updated geom_vinum. It now understands concatenated > plexes (a plex with more than one subdisk), and mirroring (a volume > with more than one plex) should also work, but I've not tested the latter. > > An updated "GEOM screenshot" can be found at > , and the sources are at > . I've taken a look at this, and it's really impressive. On the other hand, you've effectively discarded the original Vinum code and replaced it with something a lot more simple. I'm not sure that this is the most appropriate way to proceed. In particular, the code which maps incoming requests to outgoing requests reads: /* * XXX: This needs a _lot_ of work. * * Basically, we have to cope with three kinds of plexes: concat, striped, * and raid5. * Then, we have to cope with requests that overlap two or more subdisks. */ static void g_vinum_plex_start(struct bio *bp) { This is a great understatement. This code is some of the most complex I have ever written. I'm not saying that you can't do better, but it seems a waste of time to reinvent the wheel. Take a look at vinumraid5.c and vinumrequest.c for an example of how complicated it can be. The other thing that strikes me is that you've greatly simplified the object structures (originally in vinumobj.h, now in g_vinum_var.h). While a lot of things go away as the result of GEOM, others don't, like the I/O stats and revive parameters for example. It's possible that you're planning to put them back in, but this seems like a lot more work than necessary. Also, I'm not sure that changing tables to lists is the best way to go: each request will have to go down multiple levels of list to find the appropriate object. I'm prepared to be proven wrong on this one, however: certainly enlarging tables has been one of the biggest problems in the current Vinum implementation. In any case, I have some time for about a week now. We should probably discuss offline how to proceed. Greg -- See complete headers for address and phone numbers. --rS8CxjVDS/+yyDmU Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (FreeBSD) iD8DBQFAEcuOIubykFB6QiMRAqvdAJ421ZhHw64dN8I/VgbShELb16SLFACeMKJ9 ACT5W9rEu7+nmRWUDcurjm8= =Unpc -----END PGP SIGNATURE----- --rS8CxjVDS/+yyDmU--