From owner-svn-src-user@FreeBSD.ORG Fri Jan 9 14:35:56 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D31410656C0; Fri, 9 Jan 2009 14:35:56 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C5038FC18; Fri, 9 Jan 2009 14:35:56 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n09EZt5U059473; Fri, 9 Jan 2009 14:35:55 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n09EZt3F059471; Fri, 9 Jan 2009 14:35:55 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200901091435.n09EZt3F059471@svn.freebsd.org> From: Luigi Rizzo Date: Fri, 9 Jan 2009 14:35:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r186952 - in user/luigi/geom_sched/sys/geom: . sched X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2009 14:35:56 -0000 Author: luigi Date: Fri Jan 9 14:35:55 2009 New Revision: 186952 URL: http://svn.freebsd.org/changeset/base/186952 Log: do the patching of g_io_request Modified: user/luigi/geom_sched/sys/geom/geom_io.c user/luigi/geom_sched/sys/geom/sched/g_sched.c Modified: user/luigi/geom_sched/sys/geom/geom_io.c ============================================================================== --- user/luigi/geom_sched/sys/geom/geom_io.c Fri Jan 9 14:35:32 2009 (r186951) +++ user/luigi/geom_sched/sys/geom/geom_io.c Fri Jan 9 14:35:55 2009 (r186952) @@ -369,7 +369,7 @@ g_io_request(struct bio *bp, struct g_co bp->bio_error = 0; bp->bio_completed = 0; -#if 1 +#if 0 /* * Scheduler support: if this is the first element in the geom * chain (we know from bp->bio_parent == NULL), store Modified: user/luigi/geom_sched/sys/geom/sched/g_sched.c ============================================================================== --- user/luigi/geom_sched/sys/geom/sched/g_sched.c Fri Jan 9 14:35:32 2009 (r186951) +++ user/luigi/geom_sched/sys/geom/sched/g_sched.c Fri Jan 9 14:35:55 2009 (r186952) @@ -433,7 +433,7 @@ g_io_trampoline[] = { 0xe9, 0x00, 0x00, 0x00, 0x00, /* jmp x+5 */ }; -static void +static int g_new_io_request(const char *ret, struct bio *bp, struct g_consumer *cp) { @@ -444,15 +444,20 @@ g_new_io_request(const char *ret, struct * which should be unused in this particular entry (at least * with the code in 7.1/8.0). */ - if (bp->bio_parent == NULL && bp->bio_caller1 == NULL) - bp->bio_caller1 = (void *)curthread->td_tid; + struct bio *top = bp; + if (top) { + while (top->bio_parent) + top = top->bio_parent; + if (top->bio_caller1 == NULL) + top->bio_caller1 = (void *)curthread->td_tid; + } + return (bp != top); /* prevent compiler from clobbering bp */ } static int g_io_patched = 0; static int g_io_patch(void *f, void *p, void *new_f) { - return 0; int found = bcmp(f, (const char *)p + 5, 5); printf("match result %d\n", found); if (found == 0) {