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 4D282C7EE23 for ; Tue, 30 May 2023 11:29:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 70EB56B0072; Tue, 30 May 2023 07:29:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6BE1E6B0074; Tue, 30 May 2023 07:29:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 58882900002; Tue, 30 May 2023 07:29:30 -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 461776B0072 for ; Tue, 30 May 2023 07:29:30 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 13CE71201F1 for ; Tue, 30 May 2023 11:29:30 +0000 (UTC) X-FDA: 80846700900.01.D28FB43 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf15.hostedemail.com (Postfix) with ESMTP id 4E6FDA001C for ; Tue, 30 May 2023 11:29:27 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="B/sTW0SE"; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf15.hostedemail.com: domain of mlombard@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mlombard@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685446168; a=rsa-sha256; cv=none; b=6OtILCsJUv69QSaeyfmZZTEQpqMYAV2PutLq9X5MknuYrIW16JXOuKG/SC77pttBWqbr6G EP2m7Xa/Ps4NdKqdbX1zEOF1Ehb1bh/oIFA5QtApTebRn5Xzt4LJHU1geNkWcFJSgWf3EC FADTUxiQHyYizWCfmZ+qixHI3Ax2xJE= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="B/sTW0SE"; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf15.hostedemail.com: domain of mlombard@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mlombard@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685446168; 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=NpOBAS8Bi4kBG+sylQuaVNwQB72hawQBUTtbh7SjPqA=; b=mDCBXZYMnKXYdI5QUQNEYRiP+XECfbcJYe/X0qK/4A9Qlg+XnKwo01Liag7zaLycGkO12R W80TogyW6HNWMgFJrkbSvt2Bl0wZkDCQ1OFMibXXl6jvKj13+mI9jrLWLDhzasCCdOZr+6 sWxPibjkRU4CRhUwIfHxzCOeeTESSPg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685446166; h=from:from: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; bh=NpOBAS8Bi4kBG+sylQuaVNwQB72hawQBUTtbh7SjPqA=; b=B/sTW0SE7F6H36fs6qw9rv1x+lZq9zkDir32hC1uRG2yBv/N0OFHnQSbmprDZ8VPwMnmWc ThWsajj81IH3FMBovJIZk3e8G1BWFoqXGd4lEVpEtBIC8e/Xw+miirHc8cQwXz0lwpfc5Z dlUB3EWDh58aPD0oQBZpc638Rjtx+FI= Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-338-VdwEbDShOSCMqLL_YP5yPQ-1; Tue, 30 May 2023 07:29:25 -0400 X-MC-Unique: VdwEbDShOSCMqLL_YP5yPQ-1 Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-43fa9a00625so824216e0c.2 for ; Tue, 30 May 2023 04:29:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685446164; x=1688038164; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NpOBAS8Bi4kBG+sylQuaVNwQB72hawQBUTtbh7SjPqA=; b=mEwtbjjyP/6OIWCoXW8yY9worNHuRDB6pK725Nv/S95T4puja/DBdnKsMhgatNDENK YiRACO22HMmt3pDa26mli1L/ZgYvuyD/hBRYNFCJhPUBBzSPnO1YNt2JFrMDOZ1RNtgX JG2/ZB4pTEwqSOheWN5ToMgQ12Ik4pIIM5hU23cXO5ctNKNUYFR8ovvVg1i4Ysv0oURE jAcZMFynYFcusYUmMSKuoC5cWRAh6pQOCJJoFct2JasqPGTrbnugW/r3idRA03dNzx2S HOezLT77XyB1EbVMkagOS2qyIWQ3PmdJa+Hu+5wro9kDOvAKbNCDAuCFuIJCKY9+nUo4 iIMg== X-Gm-Message-State: AC+VfDwWhXI4dO37euEb8GLFAxgbZBbKGaGziV2cIo/67w7DsDX8QZW3 Y2249WzAMZ5M4j3wJ7R6pU7olAMwddbht4LgTHgKvkZtPbBFprOpnIRz3HajXhSd1iKZOzMdDZO x7K1OXSeMilsJRc3gr8JWkCq6tPY= X-Received: by 2002:a1f:4b45:0:b0:44f:cc32:1585 with SMTP id y66-20020a1f4b45000000b0044fcc321585mr396072vka.16.1685446164677; Tue, 30 May 2023 04:29:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ60g8d6uIJQJ6uxHej74jlrBVrcHx9EcH35VqVEe7Tezem4ctVekj51qYF9EFj7YKA4koNTixi+3DAOC1La86o= X-Received: by 2002:a1f:4b45:0:b0:44f:cc32:1585 with SMTP id y66-20020a1f4b45000000b0044fcc321585mr396070vka.16.1685446164430; Tue, 30 May 2023 04:29:24 -0700 (PDT) MIME-Version: 1.0 References: <20230522104146.2856-1-nj.shetty@samsung.com> <20230522104146.2856-3-nj.shetty@samsung.com> In-Reply-To: <20230522104146.2856-3-nj.shetty@samsung.com> From: Maurizio Lombardi Date: Tue, 30 May 2023 13:29:12 +0200 Message-ID: Subject: Re: [PATCH v11 2/9] block: Add copy offload support infrastructure To: Nitesh Shetty Cc: Jens Axboe , Alasdair Kergon , Mike Snitzer , dm-devel@redhat.com, Keith Busch , Christoph Hellwig , Sagi Grimberg , James Smart , Chaitanya Kulkarni , Alexander Viro , Christian Brauner , "Matthew Wilcox (Oracle)" , Andrew Morton , martin.petersen@oracle.com, linux-scsi@vger.kernel.org, James.Bottomley@hansenpartnership.com, bvanassche@acm.org, hare@suse.de, ming.lei@redhat.com, dlemoal@kernel.org, anuj20.g@samsung.com, joshi.k@samsung.com, nitheshshetty@gmail.com, gost.dev@samsung.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 4E6FDA001C X-Stat-Signature: z8tuzcagonhdaruhc7o9a9kaiiinxe1r X-HE-Tag: 1685446167-837230 X-HE-Meta: U2FsdGVkX18ujCMBWEgvo51tyjK4A3ghd7Ag7LE9QQAc2VXkkfhb5gPvEVZlXmw4YBXGrWDDYTVTfV0EHgu0JKHj7hlpQ1ZnSxUdlb530ePDIURPc2kTUnNGbWmE7NcusAUhcPNgM51jBlePuRBFm4A28IhQHOb9c3AkcHV0bWg4xYAPAlnIgp1ncQUS93Hb12ZeGRwppB0ErVXok+87hrFjiiQ7qNEM4PIF89459+IIzeJSxDf0rmJN6V6jHdgc2+N14iiJJrI+5LFsYp4dEne0RdTb9FklyAR+Yvwi6ME9VTyHEKTI17hYxzgtdYLT86Q3x6CwatTdbLLchTRcYIw/gILd59dk5SV8EwWMYg2vbOYUfr9NfSxbAFZsvQU8/V2I8yPQi2xkApM5pTyYRzXp6BTe1WuoG2t73ZyE1eFDCtCZNXZyy/QUWQUqJPjq0x8HV/6AOKwG02bZyXUZSBuk/0CSu0cinJcimtLjNg+kmL40JgVGfpwq0TSRHB935nolstF7Q3q0qjpOVj2ifF+t3D8EfoIaN5Gf9Tp5dlmzUxG6RwregV1/F41Qk/7r13P4MY0+ciFTKmSu6uYFiDpAxMCyDQ3/DQiWj2CKTJ5WkJt9FUSjuMi/cEQ+NX0A2+XwyPVBsd8LT3NCT7J0nUZ+NTRnH2k4TSIA370zaxNU8luBhQWP0CxnGoqEL/+H84hrAadzg8YBApBMa2SRyTu5Gjo5tnR84iOo7xaAUQtpn+9Vj03+ZJs4MyTAKr0a1NQl80zAbJO7EHqkrjm/l1E4xbxl0AT8tD9KjuXUpbjPYigEAizhBvoykvZ0wCyVPDdslNSyO12jF8EMnYwIe3hOaZN09enGOJONIGCBgbthbo7Di9qYkWhFEKOB8KaBK+qXTdeQQHs1FglxJBe2zLUfTw0a1JhmNRiiT4NfOeyL6owqkVp+YJEwVL20UjEIqXw1pj1Y3yisAZLVbYD bJ1Gb1d5 EnKPaQVnuExXHbFPi6d5GuqK7ArtISBG9HbOyJWdx6NkpiC7Fd/z6vWz7vv6nlIDJDKGJ7TgQluJW5I1/tSYCjfOljY79pee2DlfgoFyo8DO6X+EDtkC5i2nO71ueB6rIb4OObgLZf4iNnXfIcWvSqI7GmtXmn7xBnAf6SnfhQVS+RmN4Q6ZAjsjOgJBAqobQEA5/S/y0jjsOTM3T0Ogq2C3EqjMF1NrstjIo7H+j+mBlN9+jKfA5wrwpk/CUm2ogABVBBREcRlieKHA= 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: po 22. 5. 2023 v 13:17 odes=C3=ADlatel Nitesh Shetty napsal: > > +static int __blkdev_copy_offload(struct block_device *bdev_in, loff_t po= s_in, > + struct block_device *bdev_out, loff_t pos_out, size_t len= , > + cio_iodone_t endio, void *private, gfp_t gfp_mask) > +{ > + struct cio *cio; > + struct copy_ctx *ctx; > + struct bio *read_bio, *write_bio; > + struct page *token; > + sector_t copy_len; > + sector_t rem, max_copy_len; > + > + cio =3D kzalloc(sizeof(struct cio), GFP_KERNEL); > + if (!cio) > + return -ENOMEM; > + atomic_set(&cio->refcount, 0); > + cio->waiter =3D current; > + cio->endio =3D endio; > + cio->private =3D private; > + > + max_copy_len =3D min(bdev_max_copy_sectors(bdev_in), > + bdev_max_copy_sectors(bdev_out)) << SECTOR_SHIFT; > + > + cio->pos_in =3D pos_in; > + cio->pos_out =3D pos_out; > + /* If there is a error, comp_len will be set to least successfull= y > + * completed copied length > + */ > + cio->comp_len =3D len; > + for (rem =3D len; rem > 0; rem -=3D copy_len) { > + copy_len =3D min(rem, max_copy_len); > + > + token =3D alloc_page(gfp_mask); > + if (unlikely(!token)) > + goto err_token; [...] > +err_token: > + cio->comp_len =3D min_t(sector_t, cio->comp_len, (len - rem)); > + if (!atomic_read(&cio->refcount)) > + return -ENOMEM; > + /* Wait for submitted IOs to complete */ > + return blkdev_copy_wait_completion(cio); > +} Suppose the first call to "token =3D alloc_page()" fails (and cio->refcount =3D=3D 0), isn't "cio" going to be leaked here? Maurizio