Date: Fri, 9 Jan 2009 14:35:55 +0000 (UTC) From: Luigi Rizzo <luigi@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r186952 - in user/luigi/geom_sched/sys/geom: . sched Message-ID: <200901091435.n09EZt3F059471@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901091435.n09EZt3F059471>