From nobody Tue Jul 12 14:33:04 2022 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 441981D0792D for ; Tue, 12 Jul 2022 14:33:12 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com [IPv6:2607:f8b0:4864:20::830]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Lj3Br37zZz49t9 for ; Tue, 12 Jul 2022 14:33:08 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-qt1-x830.google.com with SMTP id i21so8193480qtw.12 for ; Tue, 12 Jul 2022 07:33:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=fZrpm85PyvduIc1V/KaeYKXty8mkve/0mWMdhF43xSI=; b=n0Rqal8DkPf7Lhu5v40Buu1E6fg2rKVO6UBt3X+J2eswBCTw6Q4F4M2J1klkRQYf/z /3pUkgJWPcsBD+fC6YGwdhc0bJaZw/i8QO3Hy19wr/Q+S1vKzpir2VjGNatKla0ajKJQ zMCWIlIFkjgGSkd5Cg0JYfmMaVyaubL4YwHrW6fd0EMTXNYKtXNYjzA5upq6XC4O6uYo y69taMfTThgOJN2/ATrng4szjYqIML6BCDL5SuPeIeBgIP9YeOXFVQdz83qIwE2lOg+I kVAyA9Dd5ocDjxcE8mMJfrU52LpBMXZTbeWde0+SmLQ3MVxn7xSoycyAvYrT24G5lPjT JBWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=fZrpm85PyvduIc1V/KaeYKXty8mkve/0mWMdhF43xSI=; b=zmJ+h/lwGY9TaVuKRFslvCS5SzUVhiF0KnmNuOBjoocl5mC/zry7RcurcFzas5fkas LWopMjSxkuLzMfE5AXYB/8ema1NVxs3x96I1VxEeDn24vM1MOJfctMo0Pw774aGny3Zc oqH2uTU3TH5okoOudDnkgjbmO0pXI3oG/hMo0svivAHT5Vgx2UMC9tyd2/XtraVPHnSg ag6edkC56nl4IXIK5fDR1/MLG/BqNpUZhU/IcNOT7KRhPwOy0kud2Kv42ff4RTOzQfop H/oUO7p8JyeQBp61BHl0chU82nnwMiVPN7Y0iEVVjgiGmkxTjGhVHVd/XgVpxKvRmI6Y kAzg== X-Gm-Message-State: AJIora9DJSH4w+CGPuKcQXBfq45NC37CAEW8MSV73UuTpmTozl1MZ2gg 8/w+cb2yQM3lMg1sGMtQgsK2F9GQo6M= X-Google-Smtp-Source: AGRyM1sa9tiBi9Dl7jE17X5USPWUr5dur2Vnend10Qd1hbZg/gdtdTktA8ZEIgwYWWjlyexKP+4rcg== X-Received: by 2002:ac8:5996:0:b0:31e:92c8:bd98 with SMTP id e22-20020ac85996000000b0031e92c8bd98mr18915191qte.232.1657636387681; Tue, 12 Jul 2022 07:33:07 -0700 (PDT) Received: from nuc (192-0-220-237.cpe.teksavvy.com. [192.0.220.237]) by smtp.gmail.com with ESMTPSA id n20-20020a05620a295400b006b54e630a98sm316162qkp.96.2022.07.12.07.33.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jul 2022 07:33:06 -0700 (PDT) Date: Tue, 12 Jul 2022 10:33:04 -0400 From: Mark Johnston To: Daniel O'Connor Cc: freebsd-hackers Subject: Re: VFS mount rollback for virtio 9pfs Message-ID: References: <75ACE8B8-A41F-4742-95DA-3CFB3B97746A@dons.net.au> List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <75ACE8B8-A41F-4742-95DA-3CFB3B97746A@dons.net.au> X-Rspamd-Queue-Id: 4Lj3Br37zZz49t9 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20210112 header.b=n0Rqal8D; dmarc=none; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::830 as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Spamd-Result: default: False [-2.64 / 15.00]; NEURAL_HAM_LONG(-0.99)[-0.991]; NEURAL_HAM_SHORT(-0.99)[-0.988]; NEURAL_HAM_MEDIUM(-0.96)[-0.960]; MID_RHS_NOT_FQDN(0.50)[]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20210112]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; MIME_GOOD(-0.10)[text/plain]; MLMMJ_DEST(0.00)[freebsd-hackers]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; BLOCKLISTDE_FAIL(0.00)[2607:f8b0:4864:20::830:server fail,192.0.220.237:server fail]; DMARC_NA(0.00)[freebsd.org]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::830:from]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; TO_DN_ALL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; RCPT_COUNT_TWO(0.00)[2]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_LAST(0.00)[] X-ThisMailContainsUnwantedMimeParts: N On Mon, Jul 11, 2022 at 10:46:33PM +0930, Daniel O'Connor wrote: > Hi, > I am attempting to get the Juniper virtfs code (http://github.com/Juniper/virtfs) working and I have managed to get it to a point where it mounts and things seem to work (https://github.com/DanielO/freebsd-src/tree/9pfs) although I have only tested on bhyve so far (but feel free to test elsewhere :) > > During the process I found the Juniper code would ask for 9p2000.u but is written for 9p2000.L (I think bhyve is more rigid about what it allows than Xen etc). > > This was easily fixed but I want to make the handling of a similar error in future correct. The virtfs_unmount code as it stands will fail when the kernel tries to rollback the mount. The end result is the ref count for the file system is not decremented so the KLD can't be unloaded. How does virtfs_unmount() fail? The tsleep() call there looks suspicious, it's using the address of a local variable as a wait channel, so I don't understand how it'll ever get signalled. > I attempted to fix this by squashing the return value to 0 in the event of a forced unmount but that results in the mount rollback hanging in 'mntref' while it waits for the mount ref count to go to 0. > > I assume I am missing something obvious but I can't work out what it is so any clue much appreciated. > > Thanks. > > -- > Daniel O'Connor > "The nice thing about standards is that there > are so many of them to choose from." > -- Andrew Tanenbaum > >