From owner-freebsd-hackers@FreeBSD.ORG Fri Dec 10 14:45:57 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EAD9E106566C for ; Fri, 10 Dec 2010 14:45:57 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-fx0-f49.google.com (mail-fx0-f49.google.com [209.85.161.49]) by mx1.freebsd.org (Postfix) with ESMTP id 76BF98FC0A for ; Fri, 10 Dec 2010 14:45:57 +0000 (UTC) Received: by fxm19 with SMTP id 19so3530006fxm.36 for ; Fri, 10 Dec 2010 06:45:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=68TVWx4S1jCT0iK6oIsVb2ikeW+YrmxsFvX4HB8EywI=; b=FBvx0O9cbks6q4N33IQVxgAyeGEUofaNfGjJwOOKnLKvgldjleaoW4tNz+D05Mi4qs HEMXq++ijpWgJ7zN6B7zEYwhdjCJ27gEuTIgO5Li3dgHXDFu6lpOkACeNcKOTTRom1J3 V3KGFaEKAAPxjYsD50Sn9hJSTW6znBn6EJc9Y= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=X7XM7fapB+OS3d27s0KcvqgV4xvQHoNzc4G21EbgWSaNnbSY73lAdI7v6yng44pLlY labf8j6ECvM3He+JwSjZHj9D8pWkfB4M2iiAqd4HgfwAI3ptYIsMpreXR0P33TwZIOa5 LSigEACIaTBQZqksNbugzx99Um+lh08dY+SUw= Received: by 10.223.74.141 with SMTP id u13mr989226faj.62.1291992356350; Fri, 10 Dec 2010 06:45:56 -0800 (PST) Received: from mavbook2.mavhome.dp.ua (pc.mavhome.dp.ua [212.86.226.226]) by mx.google.com with ESMTPS id 21sm919385fav.41.2010.12.10.06.45.53 (version=SSLv3 cipher=RC4-MD5); Fri, 10 Dec 2010 06:45:54 -0800 (PST) Sender: Alexander Motin Message-ID: <4D023D00.10301@FreeBSD.org> Date: Fri, 10 Dec 2010 16:45:20 +0200 From: Alexander Motin User-Agent: Thunderbird 2.0.0.23 (X11/20091212) MIME-Version: 1.0 To: Lev Serebryakov References: In-Reply-To: Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: Where userland read/write requests, whcih is larger than MAXPHYS, are splitted? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Dec 2010 14:45:58 -0000 Lev Serebryakov wrote: > I'm digging thought GEOM/IO code and can not find place, where > requests from userland to read more than MAXPHYS bytes, is splitted > into several "struct bio"? > > It seems, that these children request are issued one-by-one, not in > parallel, am I right? Why? It breaks down parallelism, when > underlying GEOM can process several requests simoltaneously? AFAIK first time requests from user-land broken to MAXPHYS-size pieces by physio() before entering GEOM. Requests are indeed serialized here, I suppose to limit KVA that thread can harvest, but IMHO it could be reconsidered. One more split happens (when needed) at geom_disk module to honor disk driver's maximal I/O size. There is no serialization. Most of ATA/SATA drivers in 8-STABLE support I/O up to at least min(512K, MAXPHYS) - 128K by default. Many SCSI drivers still limited by DFLTPHYS - 64K. -- Alexander Motin