From owner-freebsd-fs@FreeBSD.ORG Mon Oct 13 08:11:49 2014 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0BD31F84; Mon, 13 Oct 2014 08:11:49 +0000 (UTC) Received: from mail-yh0-x234.google.com (mail-yh0-x234.google.com [IPv6:2607:f8b0:4002:c01::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AF485FDB; Mon, 13 Oct 2014 08:11:48 +0000 (UTC) Received: by mail-yh0-f52.google.com with SMTP id f10so3361152yha.39 for ; Mon, 13 Oct 2014 01:11:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=tA7AS5zwDI5HVrZ6Xn0uKpprexnAHw7Smzpb3vx6r8w=; b=UuV/zrbTF0VDXj8b8cNhvrUhQzZbyp1wxDYGZbiwOLNIpfR9HI0phq3iq95U7PkR1o c0J9v7P1BBJppCC7z8VwEkUoY34J3G7sfnkVlTyLtgC/YP5h+TfxUtNlFpGTn29IE0wk +TzZtazYauC7cQ3yKs2rssGhmy1P+pqTsEKapNtUBFNZOyP2Jak2NMXqKQIzaPYTPbDF ffvung5Vlb96C5JRdBYiCMD3HWMkjYmKUY6VCL4ukgZp/erICBI2ANrgy6huHn0Xeiq0 SCp6buFM/n++wmV3OmHBLvaq5c/pXRnlMoVlMSmGs4QHkB1Ivd5DeZDyMd2zyYtAdxzT 216A== MIME-Version: 1.0 X-Received: by 10.236.54.101 with SMTP id h65mr36033279yhc.47.1413187907802; Mon, 13 Oct 2014 01:11:47 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.170.82.197 with HTTP; Mon, 13 Oct 2014 01:11:47 -0700 (PDT) In-Reply-To: <6E01BBEDA9984CCDA14F290D26A8E14D@multiplay.co.uk> References: <54372173.1010100@ijs.si> <644FA8299BF848E599B82D2C2C298EA7@multiplay.co.uk> <54372EBA.1000908@ijs.si> <543731F3.8090701@ijs.si> <543AE740.7000808@ijs.si> <6E01BBEDA9984CCDA14F290D26A8E14D@multiplay.co.uk> Date: Mon, 13 Oct 2014 01:11:47 -0700 X-Google-Sender-Auth: FzUffdsgjnUxbaw-euX2JdaqQKQ Message-ID: Subject: Re: zfs pool import hangs on [tx->tx_sync_done_cv] From: "K. Macy" To: Steven Hartland Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: "freebsd-fs@FreeBSD.org" , FreeBSD Stable X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Oct 2014 08:11:49 -0000 On Mon, Oct 13, 2014 at 1:06 AM, Steven Hartland wrote: > ----- Original Message ----- From: "K. Macy" > > A recent quick read of the code would lead me to believe that zio_wait not >> returning there means that the zio never reached the zio_done stage. >> Parent >> zios seem to yield in a couple of stages in the pipeline if they have >> incomplete children. They determine this by calling zio_wait_for_children >> with zio child types and their corresponding wait type. In so doing they >> set the io_stall to the count of the number of waiters of the first >> non-zero check. This parent I/O will be resumed by the last child zio of >> that type and wait state in zio_notify_parent. I'm sure you know all this >> - >> but I wrote it to preface asking for the following fields of the zio being >> waited on in dsl_pool_sync_mos: io_stall (i.e, which field in io_children >> is pointed to) *io_stall, io_children[*][*], io_child_list (at a first >> glance just the addresses). The other alternative is that it reexecuting >> has gotten in to a bad place in the state machine so io_reexecute. >> > > Yer I would have got the zio details but typically its "optimised out" by > the > compiler, so will need some effort to track that down unfortunately :( > Well, let me know if you can. Re-creating a new 10.x VM is taking a while as it's taking me forever to checkout the sources. Things like that need to somehow continue to be accessible. Cheers. -K