From nobody Sat Apr 18 05:54:57 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 198E6C433EF for ; Sat, 16 Jul 2022 20:44:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230059AbiGPUoF (ORCPT ); Sat, 16 Jul 2022 16:44:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51724 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229501AbiGPUoE (ORCPT ); Sat, 16 Jul 2022 16:44:04 -0400 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32591BC91 for ; Sat, 16 Jul 2022 13:44:01 -0700 (PDT) Received: by mail-wr1-x42a.google.com with SMTP id z12so11553390wrq.7 for ; Sat, 16 Jul 2022 13:44:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=yK1G4X/A5odloNuiZOHLngDtJZQ5c2A6ZaYNU/C2hR0=; b=V0JT/eaxewbfHHLgVRnRvqjHG/0Jhd9UK23+WyY55aNpmpkRomZzigCB2jW9Y5pPm0 NSHiLVaqlcl3apPuWJz8Sxsza0g2BvPbqSqfEocQBglOIw5hdZl3ZysfsWyNxxFY+fL/ rrCuy8YzdrxPynCf1ZiYm/GQiGPQuGS6B4S0KAKLsm0Na25Tr5timfI9h/aNYKzNWDc7 ERSFvOjcLM3hNoijcCdeksTzLGrTLDmpwzob54dxVQiK29FKJGAlSRmtRb76vXcgXwmM qOoDOrNJIOU+Sh+eoXBhilo9bXZbfBRt3WnVlQsOASAt4TeFmcvas/VCnG6xR+JGQBYA 7d3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=yK1G4X/A5odloNuiZOHLngDtJZQ5c2A6ZaYNU/C2hR0=; b=FqnqkYYfcdTqYPfgxrQs9UrmT9NYMoEIUylHYsNFX4zqLsSMW67G7KMS74bcri5kb1 cwPQfV71+Fke1rZYqssTBOWlepsJxY1x+v57PL1sSn1qmXUAjf9hXCjR/nyBPO9hjnr5 p3hPuHPfXONmICcofYDpBU03YzksUhhuuu6dwVh4BCZWtPj6/e5ZHUxeWBpSQDrsqkuf vY+irlNbhgzuUMU7lHlJm0w5SD5WgQ33uRWJ3POyzYQsdaffiloRPkbHYcJ8Buw1lhIF /d84ej2qfI7qBpunBkJQiaJuynHr/KoyqTabb1LMtiBuYvUu/u7E9zVExhXb9dDs9Agf uKBg== X-Gm-Message-State: AJIora/5ytFECQVsgB3DW0BCM2dpuVJLO4DbzpxlW4d/xb+xvcpmN9jp 8rz1pGlcEGW0if8K/YmpBGQ= X-Google-Smtp-Source: AGRyM1tNvpDcRGh2ootpNNaGLi3aUImui+nJAiMJmpLILuIpDzQxpHGYbeNPZAxmj18z1Jgm0HMO5w== X-Received: by 2002:a5d:6d09:0:b0:21d:9846:259c with SMTP id e9-20020a5d6d09000000b0021d9846259cmr17776250wrq.212.1658004239648; Sat, 16 Jul 2022 13:43:59 -0700 (PDT) Received: from localhost.localdomain (host-95-235-102-55.retail.telecomitalia.it. [95.235.102.55]) by smtp.gmail.com with ESMTPSA id b4-20020a05600c150400b003a03185231bsm9238252wmg.31.2022.07.16.13.43.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Jul 2022 13:43:58 -0700 (PDT) From: "Fabio M. De Francesco" To: Jaegeuk Kim , Chao Yu , Nick Terrell , linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Cc: "Fabio M. De Francesco" , Ira Weiny Subject: [PATCH] f2fs: Use memcpy_page() in f2fs_copy_page() Date: Sat, 16 Jul 2022 22:43:53 +0200 Message-Id: <20220716204353.22049-1-fmdefrancesco@gmail.com> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The use of kmap() is being deprecated in favor of kmap_local_page(). Two main problems with kmap(): (1) It comes with an overhead as mapping space is restricted and protected by a global lock for synchronization and (2) it also requires global TLB invalidation when the kmap=E2=80=99s pool w= raps and it might block when the mapping space is fully utilized until a slot becomes available. Therefore, replace kmap() with kmap_local_page() in f2fs_copy_page() and use memcpy_page() instead of open coding kmap_local_page() + memcpy(). Suggested-by: Ira Weiny Signed-off-by: Fabio M. De Francesco --- fs/f2fs/f2fs.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index d9bbecd008d2..f04e760bb1c1 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -2698,12 +2698,8 @@ static inline struct page *f2fs_pagecache_get_page( =20 static inline void f2fs_copy_page(struct page *src, struct page *dst) { - char *src_kaddr =3D kmap(src); - char *dst_kaddr =3D kmap(dst); =20 - memcpy(dst_kaddr, src_kaddr, PAGE_SIZE); - kunmap(dst); - kunmap(src); + memcpy_page(dst, 0, src, 0, PAGE_SIZE); } =20 static inline void f2fs_put_page(struct page *page, int unlock) --=20 2.37.1