From owner-cvs-src@FreeBSD.ORG Fri Feb 15 20:08:43 2008 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0063716A417; Fri, 15 Feb 2008 20:08:42 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id AD0E713C4E9; Fri, 15 Feb 2008 20:08:42 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from phobos.samsco.home (phobos.samsco.home [192.168.254.11]) (authenticated bits=0) by pooker.samsco.org (8.13.8/8.13.8) with ESMTP id m1FK8dnn083334; Fri, 15 Feb 2008 13:08:39 -0700 (MST) (envelope-from scottl@samsco.org) Message-ID: <47B5F147.5090007@samsco.org> Date: Fri, 15 Feb 2008 13:08:39 -0700 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.11) Gecko/20071128 SeaMonkey/1.1.7 MIME-Version: 1.0 To: Ivan Voras References: <200802150626.m1F6QP7D009994__3855.5871964947$1203056853$gmane$org@repoman.freebsd.org> <47B5A108.5030808@freebsd.org> In-Reply-To: <47B5A108.5030808@freebsd.org> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.4 required=5.4 tests=ALL_TRUSTED autolearn=failed version=3.1.8 X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on pooker.samsco.org Cc: cvs-src@freebsd.org, scottl@freebsd.org Subject: Re: cvs commit: src/sys/sys conf.h src/sys/geom geom_disk.c src/sys/i386/i386 dump_machdep.c minidump_machdep.c src/sys/amd64/amd64 dump_machdep.c minidump_machdep.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Feb 2008 20:08:43 -0000 Ivan Voras wrote: > Scott Long wrote: >> scottl 2008-02-15 06:26:25 UTC >> >> FreeBSD src repository >> >> Modified files: >> sys/sys conf.h >> sys/geom geom_disk.c >> sys/i386/i386 dump_machdep.c minidump_machdep.c >> sys/amd64/amd64 dump_machdep.c minidump_machdep.c >> Log: >> Teach the dump and minidump code to respect the maxioszie attribute of >> the disk; the hard-coded assumption of 64K doesn't work in all cases. > > Will this work in the other direction, i.e. issuing requests larger than > 64KB / 128KB if the device supports it? > Yes, though I need to review all of the drivers to make sure they're not setting a bogus maxiosize that they can't actually support. If you're looking to improve dump speed, there are two things that need to be done. First, the dumpsys code and driver interface needs to be changed to send the driver large chunks (like PSE-sized chunks, maybe) and let the driver decide how much of it to handle before returning. Second, the dumpsys code and drivers need to be taught to handle physical addresses. Right now, the dumpsys code iterates through all the pages in the system (or through the kernel map if it's a minidump), calls pmap_kenter to generate a virtual address for the driver, then the driver calls busdma and has it call pmap_kextract to get the physical address. That can definitely be improved. Scott