From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0BB52C25B74 for ; Thu, 30 May 2024 18:49:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8820B6B0082; Thu, 30 May 2024 14:49:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E4926B0085; Thu, 30 May 2024 14:49:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 684696B0089; Thu, 30 May 2024 14:49:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 45C6F6B0082 for ; Thu, 30 May 2024 14:49:03 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id BD618160198 for ; Thu, 30 May 2024 18:49:02 +0000 (UTC) X-FDA: 82175949324.10.DC6AF9D Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) by imf05.hostedemail.com (Postfix) with ESMTP id AECB3100016 for ; Thu, 30 May 2024 18:48:59 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=tiQ+5hdF; spf=pass (imf05.hostedemail.com: domain of axboe@kernel.dk designates 209.85.160.52 as permitted sender) smtp.mailfrom=axboe@kernel.dk; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717094940; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=qj91sQI6EjJYpeXTBf/M3Dbys55/PvPs3bNPhSHmdDY=; b=sgGol+esoB2aX8xL3CZhsTwmR+BQQn1FZfPWUYwHQyOr9ZBtoiW4Dz3zdJQBgdIAN0FxKL p2v39jB0pEh0mweO9MKLI95h61eJytJvg2139/AiE4guCnc63Y+rUUNBLRLRJ+i7JR9MyE RLhIQrqBq3HtTT19yKZQWGxBaAtKjEI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717094940; a=rsa-sha256; cv=none; b=YpVg7x6Lgr52FvnxeC7Y0ggAdyeVCe3io1V+r5s8PqQidj7zMa4TSxfRmYr2p/eTuOlRCt wJOeGj7VjoRw2hSfrB05Ut5vWOsAiBvuZl8rh2geC+giX9E3kttOObrDFT21AGwo3+Rzch 04vH05VPboHg9iUlFz7HrIL+0UIJ/RE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=tiQ+5hdF; spf=pass (imf05.hostedemail.com: domain of axboe@kernel.dk designates 209.85.160.52 as permitted sender) smtp.mailfrom=axboe@kernel.dk; dmarc=none Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-25060637ffdso21116fac.0 for ; Thu, 30 May 2024 11:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1717094938; x=1717699738; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=qj91sQI6EjJYpeXTBf/M3Dbys55/PvPs3bNPhSHmdDY=; b=tiQ+5hdFckDZHepwdLauW4d8PDs7AZvCXDQJvDabqf7Eu6YOvpOIprXE0vgNoUAaNC 0oEOSpE/hU8OGiq6BTCOVaRaVZTOCpqjkAWd3zPeTE+szXqferJnN9OlOF9uHwPFWDdg ELnjV7qMuFuj/jbLBcMvY8gA+yYM7L9Ti6ewl8FKzdkVqXMXCUffzvEFIbpdC0SCX3jx 4Z84wmLQWpSsdu8wZgV78tO54k2pVBICnj/iqRae6YgbCsEarcbve5V/XstSiM21trKa DrjtFP1Q9NkDE2K8NMZDilSyCuUP+Ecm/SzYMiiaf/Mkj/tzgMPgBX/ImP1ctE9OZv54 grvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717094938; x=1717699738; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qj91sQI6EjJYpeXTBf/M3Dbys55/PvPs3bNPhSHmdDY=; b=ai6rPgLtV9Welc67n4YXjg1iqw9OOdaznG228SCFAwzwJB2FAsePNqAuMqkzzXCowY ZxwS0Y9ExUqtaxqBoQqhmy4N9XxjhnqEuVqvZSX9GoAu8wsKo8VuFKEb6GUMsWqPB+fB gtWECmTCirVhaTfTpQiUEEJsjiIT3LPuItizFGv3Gxwy3DeIoZ5WpUo6+YT5Fs7JkoiO PP/ZIdHYFTBA6RojH7ZBwlYmR3Re0na3SyHyi/TOexwfX1HJzjXhJZhSaqQxIOdxBtWn 1KAYgRjdAz1GHYPfoMRs4pZbeeR52s8GwxiutfGGLi1fKKgNNWlu7MAiUzNm3iRLW4mY /umQ== X-Forwarded-Encrypted: i=1; AJvYcCXngNSBZon+CALF/orqGcYRK2wQTbs47DU1Rl65odOrIBmyflOY1++YqZwNcE1h0BZGsY5dBXYSd8MoU3ECTSDVx00= X-Gm-Message-State: AOJu0YynwaM+Pp+KR0GNmwsZbJrxIBTMXteAF76QISsrwdVSyDO3y+VN uOQoSLKA2seVMtItFyOgPPIP93zr+KO3FFvXkMxxTiPrDjeJzp1MbwlezkkBTvI= X-Google-Smtp-Source: AGHT+IHbUlYrucmmF9XjhmWF9isXDD+m/37YkplygqjmokxIqPGnedPafoQdzIBxFjmB9bTZJe8VSg== X-Received: by 2002:a05:6870:5489:b0:250:7a11:1ef6 with SMTP id 586e51a60fabf-2507a11226cmr1773123fac.4.1717094938468; Thu, 30 May 2024 11:48:58 -0700 (PDT) Received: from [192.168.1.116] ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6f91049a713sm66428a34.0.2024.05.30.11.48.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 May 2024 11:48:57 -0700 (PDT) Message-ID: Date: Thu, 30 May 2024 12:48:56 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RFC v2 00/19] fuse: fuse-over-io-uring To: Kent Overstreet Cc: Bernd Schubert , Bernd Schubert , Miklos Szeredi , Amir Goldstein , linux-fsdevel@vger.kernel.org, Andrew Morton , linux-mm@kvack.org, Ingo Molnar , Peter Zijlstra , Andrei Vagin , io-uring@vger.kernel.org, Ming Lei , Pavel Begunkov , Josef Bacik References: <20240529-fuse-uring-for-6-9-rfc2-out-v1-0-d149476b1d65@ddn.com> <5mimjjxul2sc2g7x6pttnit46pbw3astwj2giqfr4xayp63el2@fb5bgtiavwgv> <8c3548a9-3b15-49c4-9e38-68d81433144a@fastmail.fm> <9db5fc0c-cce5-4d01-af60-f28f55c3aa99@kernel.dk> <360b1a11-252d-48d9-a680-eda879b676a5@kernel.dk> Content-Language: en-US From: Jens Axboe In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: AECB3100016 X-Rspam-User: X-Stat-Signature: x8e9qapm1wnj4ter1whn3nsdis6w9fxu X-HE-Tag: 1717094939-10054 X-HE-Meta: U2FsdGVkX1+uBc8LcTa6a7x4ABpZGhcUr7QBnQwuq63vNQozuZoQ2xwchDxiHv0vdmAfr1QRYjHwovnTKCXFkpoSJ26hpkDST28Y0dl1VgrUk26uWJKZds292cFbB8lwnw/x/LKH3mSBn1P2uvD/2g9tSEFfmh8dJiLx23Bcagcw/m8r6qt1z4l5nZeCcAndK5kkPGAboo/yf/pOSwszdyp9/p2jzVpFq8eFtoNRh6s9UnwjL3dcnAmhvXzvYyra4AHg0KoFM65rEg0OnY7zdB72d6n5oukPs3SrJ/UQerFLhuere+oHokttn83yl/vJLf9yAHFH1gJs7qcNXZ8skVjhZqW3ma0DzCgjK/C6Z6eKdo125dfQgFMFh8w+vV+jxPXkPLGjOlXzHRH2kWysg2KnvM88ii6M+S22DwnVSL8BtrSi3FZkilNAv4srck3LwBU2K79OwSwy1lMWcaqLMc7ud00S9mmeeRKY9aR0FZmJrcPHWzbcggEpkAsu/zvxrcmFSr1Oz4qaxQnc6pDcMKYLh2eenFmHURAX8ab9QamdNtzCTFj+GA0Anszl7ExpIWI0BaPBctaE0zFUiFFxKSZLL2SFmrFUtkCCnIdP+uEs1Wq0ep3TzoKfb/Kqkn/Y61V9nC0meMlqMOn2bgCQ5Jdr4TAM+6pJtMgimDm4PEDrmtrg3aMA/oAFWelT+XkNchGkBVuntKrFE51Jf2vS71xoCnzlzGgkMcRoEAdnoaS8SljCU7FSZ8R9oW06RBDmWuwrjcTZZ+eq4vFHHwlLbZc1l8QBOX04canZMirwSHL/O+Rlt+lMDSTnQxEj5HYjFBcY3soOORXogNRcoAnXLo3stplk9BQ1oFb2ChlsRCMrwVleL1lGToC0GwweBCxuRRBj9qVxTQ5SH2m1qSHkJ9xJdFicaDQCPkz/aolE0oLC8QmvLbzd1eoRg3Ye2dISgB3S3rAtN+A7PSU1Hwp UurBQKc1 3erfRVDtXWHhbhV/1XmxcZlwcZ2En9oPUqQzg0WBHuFyvsl7UYS144WYsDuuCaQJ1ivHETw3UpF9HhL0+rFNfhSG0cYsI9QdPnyWNaJoYnZ1UH43tnyzuefdiE96KmVOhJhrxR2X9xu75gVVjMfqylMUtPbvbsONkirbRs7GXKBLPWN0P49GuZYwxak2pX/YFG4+D2JMbpMBpgzZWfU2jSKyrj1GUEs8bILqzJUgDXCjd6tAFk6kQDFE8p46i08cSEWGoH3TTmgoYOJYD5CYJ48JDqMFnpD6YOkWiTRjssdUkzBk0WszRWvVjUelxZ6up6JG5IWfg3VCC4dmIM1lo5kRSKIIKjCoiEbIDeQlvKJmjw1I4AvyM0H4jFRbtO2YMeOypFMePuOQmn+tsu8o/1D0+80I3FAkwyZxZwg9c8p41n0lbXY9vMJggQl/vEFgmd+nqWBLLUpRmaqtSmBc9V2NS1kajEEDX96j5FgDEp40b1V+CoZNCEqnvvw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 5/30/24 11:58 AM, Kent Overstreet wrote: > On Thu, May 30, 2024 at 11:28:43AM -0600, Jens Axboe wrote: >> I have addressed it several times in the past. tldr is that yeah the >> initial history of io_uring wasn't great, due to some unfortunate >> initial design choices (mostly around async worker setup and >> identities). > > Not to pick on you too much but the initial history looked pretty messy > to me - a lot of layering violations - it made aio.c look clean. Oh I certainly agree, the initial code was in a much worse state than it is in now. Lots of things have happened there, like splitting things up and adding appropriate layering. That was more of a code hygiene kind of thing, to make it easier to understand, maintain, and develop. Any new subsystem is going to see lots of initial churn, regardless of how long it's been developed before going into upstream. We certainly had lots of churn, where these days it's stabilized. I don't think that's unusual, particularly for something that attempts to do certain things very differently. I would've loved to start with our current state, but I don't think years of being out of tree would've completely solved that. Some things you just don't find until it's in tree, unfortunately. > I know you were in "get shit done" mode, but at some point we have to > take a step back and ask "what are the different core concepts being > expressed here, and can we start picking them apart?". A generic > ringbuffer would be a good place to start. > > I'd also really like to see some more standardized mechanisms for "I'm a > kernel thread doing work on behalf of some other user thread" - this > comes up elsewhere, I'm talking with David Howells right now about > fsconfig which is another place it is or will be coming up. That does exist, and it came from the io_uring side of needing exactly that. This is why we have create_io_thread(). IMHO it's the only sane way to do it, trying to guesstimate what happens deep down in a random callstack, and setting things up appropriately, is impossible. This is where most of the earlier day io_uring issues came from, and what I referred to as a "poor initial design choice". >> Those have since been rectified, and the code base is >> stable and solid these days. > > good tests, code coverage analysis to verify, good syzbot coverage? 3x yes. Obviously I'm always going to say that tests could be better, have better coverage, cover more things, because nothing is perfect (and if you think it is, you're fooling yourself) and as a maintainer I want perfect coverage. But we're pretty diligent these days about adding tests for everything. And any regression or bug report always gets test cases written. -- Jens Axboe