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 26429C3DA4A for ; Thu, 22 Aug 2024 13:08:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ABBC78002A; Thu, 22 Aug 2024 09:08:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A43EA8001E; Thu, 22 Aug 2024 09:08:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 896918002A; Thu, 22 Aug 2024 09:08:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 653AC8001E for ; Thu, 22 Aug 2024 09:08:44 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0D0BA121665 for ; Thu, 22 Aug 2024 13:08:44 +0000 (UTC) X-FDA: 82479910968.02.F0D539B Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf04.hostedemail.com (Postfix) with ESMTP id 0C20C40007 for ; Thu, 22 Aug 2024 13:08:41 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hqz9xBK7; spf=pass (imf04.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=asml.silence@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724332105; 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=dl+Hsm8zibvc7WrumbZdWV/OSVlPFvlVPjSvuxKRlb0=; b=KlVPxR6SsRFcVkpRYTkUnsV+gzccZ4JK5CrfTLK3PJMrkIXF5kX3t6ww4CHIAA6s/vV7L4 jug+8rgOKRKrjRVIbXgeh//I90T2W/SnuVkUI+6akiG+El1gIgyOPcM6dNbN6sH3l2qQ6q Ncvt1tahgzhhAHIbMRHqqziTjOgtn+g= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hqz9xBK7; spf=pass (imf04.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=asml.silence@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724332105; a=rsa-sha256; cv=none; b=1LSPg7OnWcl19dPLxcuGr6W/EeHJa8L6k4h3Jb/MKDnqmxYxIItPoEVZIQ7LhLnRHTWMAN jFS+4kbLfpUq4zdNuRdHRZ62iguEVeBI/FWFWwN1Yz/2ekUWCPGCuLuDtPJSKbRhTd27JA GAmOUMgFMx6qo+qriM9r0jcddbplQJ0= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-a8695cc91c8so65792066b.3 for ; Thu, 22 Aug 2024 06:08:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724332120; x=1724936920; 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=dl+Hsm8zibvc7WrumbZdWV/OSVlPFvlVPjSvuxKRlb0=; b=hqz9xBK7dGsFLW1wyvsKSw8wnwL++v0Opbfj/Zpd14Ec6xqXPhr+y9fbMCl+fBTjwD AS9MMHGzEIykiFkSrceToETY9b5PgTbLuI0PpPrkHT5QphdwBfvNXoybbfSQOU4B6UPh KwrntV1EmMPEkn6Bw0QBKy3zL1BRFnhByO8f1WOhXbbPyKmIRjxmHy6akq/OWMKXoiRA inL/v3LPanFhTB9HCO5aqpZo4wUbbaK0n2d3q/v46AkkAUZ3YrpWzD8WDdsbcP2lB6qc n7HTD9aTx7Rv2zzYsO+DwwCcOzrRYwWVM5wa6TKKLhEqzIqabJ4yQs/AQqTqHBacszYX pciw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724332120; x=1724936920; 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=dl+Hsm8zibvc7WrumbZdWV/OSVlPFvlVPjSvuxKRlb0=; b=rLmfafNUKVvsokpV2SImChePXJsaM0b8tU+4XBsBrnpvOpS1pSg+wc+dUZX7PA661C RYobDe4CJe1ug5fJ7Ojcs/lfO5vq5md9NCtE5TlQ/TWq+L8KapKJXJnuLd4je3ATmK0K /AL3jjoLX5da25H64T2MmeqJMnE2IhYJNLaoaaiVa4CQKI3VA1BfBcpWu6wSEcP77EUa ut6gInawIK4wV4jouXFoFct4TS8hZ5OytPR1iWKyt8ZBgmUDAWYY+QbL4NuyH6/pEVnC STIDboQzPfSwLVkySlSDJwOX055rXSAp/W+VuUpYtCHM+x7TlvYhXMWFSWu80xD3Bc9L YrIA== X-Forwarded-Encrypted: i=1; AJvYcCUFoBEtBiIHAcvZRmqrOSWNqLIew7Op2glN1GURDkECZr8iL8L2cubqR0jTJuBTVcEPA0o7Jyw0zQ==@kvack.org X-Gm-Message-State: AOJu0Yz0t/TOJMk3tPhk+iBAgM/PCK6+2AtUaSsu2P0qUUgSjBUIlOhX aiomy7i3Oma5ma2ZUb/dJrf2dC1hFMArFo8Q/GvC09ekr9seUEL6 X-Google-Smtp-Source: AGHT+IFhOWmaj/+dvpn8QW8FqpNKUG4zL5yX1NIC/SrZU7nd40LcEHlt/jfOHgQhcw8E5s5ffGox+Q== X-Received: by 2002:a17:907:986:b0:a86:85eb:bddb with SMTP id a640c23a62f3a-a8685ebcd68mr255418566b.52.1724332120131; Thu, 22 Aug 2024 06:08:40 -0700 (PDT) Received: from [192.168.42.32] ([163.114.131.193]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a868f436bd5sm117966966b.119.2024.08.22.06.08.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 22 Aug 2024 06:08:39 -0700 (PDT) Message-ID: <523aed7d-6c19-4fce-9a25-b13163a43917@gmail.com> Date: Thu, 22 Aug 2024 14:09:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 6/7] block: implement async wire write zeroes To: Christoph Hellwig Cc: io-uring@vger.kernel.org, Jens Axboe , Conrad Meyer , linux-block@vger.kernel.org, linux-mm@kvack.org References: <09c5ef75c04c17ee2fd551da50fc9aae3bfce50a.1724297388.git.asml.silence@gmail.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: gk1n1i67futyw97j89yjrhf11cdntuux X-Rspamd-Queue-Id: 0C20C40007 X-Rspamd-Server: rspam11 X-HE-Tag: 1724332121-852893 X-HE-Meta: U2FsdGVkX18E4IPxoxvHQY92l7oWOy3fD6qpuIcnzfXQb5bSdCKE+0ezT033hVpo87lu9Oh/m5gMTT2wE90Z4iCv7HPiHqH9035f1foipYaVYIwl52YMS1i+roMoQ0HTgV92cE2HTC70hG2riYvfAAXFEJmNBigpRyb4YPgLi1s/7txo4w5yzKVnxoAA79tpGh8N/yD/plXUOb5bZYOcFF3gZuFrAIB9qanoz77Lal9Zz6KLs6Uihvj0OFi4R7eyNgwvWbA6+PRFiFzm1mazvGV0Gdp30oopBh2SuaMmZwSpuk9VmrdqsfZJUmWUQ9QMV/ePX5EhacKEt1ynF1a4pGv1Py7CAOMHgOBCxvhcj9PsLL5KbogbLiVobLDal/spm6F4Ok+MbpBc9+Jw6p1VC26dE1/hYF0eUMubjxSn2+2EQ8K288SCPBoLDotrHHnXUdrzXPlZ9a4KpkGp7c4kxQWk4HXrlbb/eQXfyehsa72WLhIUpatb0Bgk03ZWfZVjipNCF4u9L25NiEPsRwh618P9TSngc9D+4lvaTBEB63RfVztr/1TAwQbS863e6OcA+MWWgdgOWlAeYP8p1mvMmI2fiQxlweOx3mDvfX167CFl0mjHEkBlsD4/1sJE/gjBDu7R5YeCxJc0/6reVydLn5arTeu08BerJyhMD4WFeFyaRw1F/hTidEbCMlBGsRVu53uRG8I+J0ZLf5z8FhzFI6Rl7lyTcyvGuGHN6nAfdp0upPiI85xiMeWnNK3U0Rcxa/mDrO+2Vbfl36EbDMDLJytk0++MLrVVZOOJ6JFkoNM97BikLOyPlOsi0A+crDyoq4G9MbgL9EWdDObBIOGizOaYzGbEGvkS1GJSLg58NDEwM3KSDQMD/DtCnsTIu7dpl1vL+97OR3Xu4aa0SD2dFrZp8qk6v/23Q7oL31nq0w4ubS3jMSWLZFBhN69AX5+vfGHf9Fv2exlN+bkD2um zHu1C7Rb 85egxP4eCSI/UND7N/03VrmBocOSToIOR7PzZdrHMJlcUPdiUfNCfV5AxVhmBsFDsSKnndUbUbGpSIJp3wszBSrC390pslzygLFGbsVgFWGLLLWm4htz1Dc6cidWcJj/aogiztz5gQvcbrAAyX7Ny3QfGKLbMOc4sykg7jmtS0BqNDrz5D0JU8WeyVhD9lsPy0inC5ur8GTCFUHD5Xz4hPemdzZWBN4szsCubFlajSom7Kk9f3fsAMmK0bgfj7HBOOmLKYpVb/fCYfmgbM/WZ9JFNLqQOCQSBPKbX0uVNoPYM4NsAMydbDbTs/FQfggrmjQFKkMtyDVrMGC6uC3xhD1hQrDdWJ1MiKlnL0CaCUeesMg3o/UmdeGEUUoCg/0rPQKOg39MgSXcCEZ20NyoGlrSksw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.127732, 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 8/22/24 07:50, Christoph Hellwig wrote: > On Thu, Aug 22, 2024 at 04:35:56AM +0100, Pavel Begunkov wrote: >> Add another io_uring cmd for block layer implementing asynchronous write >> zeroes. It reuses helpers we've added for async discards, and inherits >> the code structure as well as all considerations in regards to page >> cache races. > > Most comments from discard apply here as well. > >> +static int blkdev_queue_cmd(struct io_uring_cmd *cmd, struct block_device *bdev, >> + uint64_t start, uint64_t len, sector_t limit, >> + blk_opf_t opf) > > This feels a little over generic as it doesn't just queue any random > command. > >> +static int blkdev_cmd_write_zeroes(struct io_uring_cmd *cmd, >> + struct block_device *bdev, >> + uint64_t start, uint64_t len, bool nowait) >> +{ >> + blk_opf_t opf = REQ_OP_WRITE_ZEROES | REQ_NOUNMAP; >> + >> + if (nowait) >> + opf |= REQ_NOWAIT; >> + return blkdev_queue_cmd(cmd, bdev, start, len, >> + bdev_write_zeroes_sectors(bdev), opf); > > So no support for fallback to Write of zero page here? That's probably > the case where the async offload is needed most. Fair enough, but I believe it's more reasonable to have a separate cmd for it instead of silently falling back. -- Pavel Begunkov