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 3D4C5EB64D8 for ; Sun, 18 Jun 2023 04:50:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9F9556B0072; Sun, 18 Jun 2023 00:50:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9A88F6B0075; Sun, 18 Jun 2023 00:50:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 849B76B0078; Sun, 18 Jun 2023 00:50:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 71D636B0072 for ; Sun, 18 Jun 2023 00:50:11 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4074E1C8D94 for ; Sun, 18 Jun 2023 04:50:11 +0000 (UTC) X-FDA: 80914641822.10.F78541E Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by imf30.hostedemail.com (Postfix) with ESMTP id 5B64980005 for ; Sun, 18 Jun 2023 04:50:08 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=UbHjy9LD; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of fmdefrancesco@gmail.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=fmdefrancesco@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687063808; 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=spKGmuwsJREHINCurqe1MccBaw6rOuxpPoT72kVRxDw=; b=Y0kKk/pO74r4FuDtr75KSIzyteQ4XyC/c7jWWwlUPYvE5wu6ybMvCzhsljcY+i0NRBshhg jP1xbDR0jEDFPFhxS/qFt7Ux/7jMpaEP4JO01M7gscgmANf4LV5wUV5XTYL1vhNLQs++pq s/iVKXi71tPS+MtjuXOvQ4DATpGoa04= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=UbHjy9LD; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of fmdefrancesco@gmail.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=fmdefrancesco@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687063808; a=rsa-sha256; cv=none; b=SsZBSFO2jjuqSE5vTUbJHmQxEXjCC2Y1NUSBXn4rphUe4iNFxo913x8h9/R87+2fCgaFie un3kgGEBocy5N8qdd9g6pau6znxG+pTBJ0EOMgzcAvGce1THGXJkwzKGPKMsxGcdmcX6Mw 2VrfxGMqp0FHAlFD3yTZWeyUBOV5ea4= Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-3f8d2bfec9bso22998005e9.0 for ; Sat, 17 Jun 2023 21:50:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687063807; x=1689655807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=spKGmuwsJREHINCurqe1MccBaw6rOuxpPoT72kVRxDw=; b=UbHjy9LDXYHFS/jJ5qmSj8vIl05uQA7NVEtyz151r4X0U+aHXVFgM73QmcMp24wGX7 INMzDhI9ifucG3TQ368SZkA37PPwpePGfac7+hTIIHZT3OXXogdrndg4OOKeYtpqH8KO 6ZDeBqbtMGSZzgXyrSsPSXQTFjLhq5Jl8mU1rHL7UbE7a/smnxbSCiKQSccDNBYkp6qh ZyS/upXHKOD1YY1HXQgYEEDWHF94b/6P86X7UA+S0P2ToqmjrKtz64ZW2H3reLy1Oxy6 /bQnAmSFfFIeBaSi+NqLH4KlevpJVol/ROVrTYXwBNKAWLuXAeU8Pnpg4SCg9ceblqJQ /Ung== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687063807; x=1689655807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=spKGmuwsJREHINCurqe1MccBaw6rOuxpPoT72kVRxDw=; b=Y24d7anmDhd1FtS3bOiRpTw/UrqpqsR5PZ4jYlIBc3kT/3nNqi8kq+BU35rRvPg+CS amWtS85FMkhl8uaH/HA4ol2WxS4o6JzxEoydWxThgEk1vtgvXT34lMF6249tP3W64OJa OLjHtSYiC5NMP/YhGJbj+k2Gr4YM1YSIf7AhWAA7bWwRlapBZqYXyE6WRwoVqAgPc+sy k/pj0Hi00NpJQoJ5lvAOOI+VgnONTD2pn4U5WH8e+KGd7RbgsFCld/dOAyb0LPrc2Q/p 2MzM501oYPG2SXbzPFhfDQf4yJtaQCMvmlr7qyuFlxjVhSoBZViwOJunfeDP7MlsDq/2 UK/A== X-Gm-Message-State: AC+VfDx95RHBQIl9Je6uugT8Zs7B3xPH5RmF7Bgxz9uyGYaAyir1YoYB SaDvJAJ9YZQ4TtKjz/yfeHA= X-Google-Smtp-Source: ACHHUZ7qyEphBiIGyelTf1sNWRZitwwx5xQYO+IexrttRoj3sTX01OrNxqy1GwIZijlIVpSaps1OAw== X-Received: by 2002:a7b:c409:0:b0:3f7:16ed:4ca3 with SMTP id k9-20020a7bc409000000b003f716ed4ca3mr6578872wmi.1.1687063806617; Sat, 17 Jun 2023 21:50:06 -0700 (PDT) Received: from suse.localnet (host-79-26-32-1.retail.telecomitalia.it. [79.26.32.1]) by smtp.gmail.com with ESMTPSA id y8-20020a7bcd88000000b003f904272d51sm3417712wmj.37.2023.06.17.21.50.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Jun 2023 21:50:06 -0700 (PDT) From: "Fabio M. De Francesco" To: =?ISO-8859-1?Q?J=E9r=F4me?= Glisse , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sumitra Sharma Cc: Ira Weiny , Deepak R Varma Subject: Re: [PATCH v2] lib: Replace kmap() with kmap_local_page() Date: Sun, 18 Jun 2023 06:50:04 +0200 Message-ID: <8275009.NyiUUSuA9g@suse> In-Reply-To: <20230610175712.GA348514@sumitra.com> References: <20230610175712.GA348514@sumitra.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-Rspam-User: X-Stat-Signature: yedf8iti1ghnk5znqu6c4fgmny48ueea X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 5B64980005 X-HE-Tag: 1687063808-38660 X-HE-Meta: U2FsdGVkX1/h4lfa1XfskFxrn2BnHaoDB5+h4YpwTi5u11yKP5fZQSZPmex0sAgT20yizmRRe+2ZwFDR/Q73nUmc0XyfFWDlqUvmo9djzW8lfRVQzrjLmK4fp/2+DJOVPzGocWntQdWTE4gmj4vg9CS9nsU+v75FVF+NeAPc6xImG07CSdHjlNFNaDMQfWdDdB8VuDqQG6rCvosQ1UnVJ1Vk3CbNP3jR+VZgxjR9RtMkJBxIhp9tbcjceIjtEZKZwYpK+HaTTUisv3byTA/ipQrN4zaTblWH1IqCIRRc6XWSFM6sr1T2au9vnXwX9q38CdM+iiEfi3yng+Va8AATCGSa6Y+c5wSM8HhJ1EmMpSgZA87DDj7rZz6WGM55dKfkP0dFgM+Q4V7gbrvsubTPwyMJG3hZJBFTm0AgXDxExYy/9M1L8Lhp7VR1ysb71PA0GKg3aNndMAusfqN17Tthxm9Ho6iEVgn41hFI/7e3bliihsL9Hs/sHjcGO4Cq+Nds5jVUrmGPK2J69fDkpzmzIKzAEE3Elg3NYusmEJ2+ov4IzSLocMAp8GJ6Rumpov67QIGq88IMO7hXmZyJ9BhygwIBSfCvd49ihjKxwQK5IT7jQcHuikuirybNwyjxngaufGe2kDNpceWnc0K5+8JPRNEutQq4Zq78ToWj+YBew6eZs8nCqMusd2uDigudEaeU+bVxyhk8mobWyLFclTVAR5NaIUdFfAoajpxpHxYUeJYpB3QMG+RkwyZrSTPakYCtN+I4OqS4e53bC8V2XIvIDWTrcnIGxgt8WuhFDLdDBXVm3xVyYL8pSpCbN8qi08+j138qBkCG/oY9cxVW694Y6RpsAhAIUTwdHJf4sgxPp13VzZx5QkMDyS3UAnhx8eNF5384qqRwkp+LdCA4fAWANZlzkgazEVoQ432ae5QxxyRrAwbHIj/G+y5n4NKxJ0jx7G/bfzT/l/ajabb4qo1 E1oq1trh jHWDeVA1FczrSf8AHYOilQl5G9NxKZkGrk8s46odcQb4bMHfn90zfUi0DNpJri30hpzrftWiodJNVTBZEh5Znws3yho828CBYmWdR6DNg3jj4wUsFBUvW4IckMNq04M/4KcIu4DEm7x3XFZ7mLLTdBjx/eLIWg9tXOgQbToXYi279uPt4wUJFjP+pVNyzt6HTDRcU5Cuce4kOZl1NQO2BcJn9h0jqkRzVyYw1aDM7fp6mzTq7nPh3xGH8Z3op02gbFfilRpxEeHSun0LltPmQpoDN6xfkuEKBYVR+gMnyFEV9aqD0dro7w/5hkHUyBiH8j5Wt4vNpz25JgDdqfRy1kbTuFjTFBt+e1i3YYqnher2OJqtzG+yI4qpFvM0bkHaUIbY6uYCEhBsIoTpOArKG/kTXEfqxfK+FUcoq4aUX1qV0gCqIOEWFwkrCRgs4e/2kn7CCNLg1pl+4/rl+2tXH9Bc43Ma0r0tQ1sfklkc2dgq5inHy+eZ/u+HwwPJPBJJTvN6bz0q1Gd9YvM8v/UwJxvSugw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000040, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On sabato 10 giugno 2023 19:57:12 CEST Sumitra Sharma wrote: > kmap() has been deprecated in favor of the kmap_local_page() > due to high cost, restricted mapping space, the overhead of > a global lock for synchronization, and making the process > sleep in the absence of free slots. >=20 > kmap_local_page() is faster than kmap() and offers thread-local > and CPU-local mappings, take pagefaults in a local kmap region > and preserves preemption by saving the mappings of outgoing > tasks and restoring those of the incoming one during a context > switch. >=20 > The mappings are kept thread local in the functions > =E2=80=9Cdmirror_do_read=E2=80=9D and =E2=80=9Cdmirror_do_write=E2=80=9D = in test_hmm.c >=20 > Therefore, replace kmap() with kmap_local_page() and use > mempcy_from/to_page() to avoid open coding kmap_local_page() > + memcpy() + kunmap_local(). >=20 > Remove the unused variable =E2=80=9Ctmp=E2=80=9D. >=20 >=20 > Suggested-by: Fabio M. De Francesco LGTM, so... Reviewed-by: Fabio M. De Francesco Thanks, =46abio P.S.: The answer to an old question from you is that "LGTM" stands for "[It= ]=20 Looks Good To Me".=20 It's just a way to introduce the "Reviewed-by" tag itself. However, "LGTM" = is=20 not required, whereas the tag is required for a valid review and only the t= ag=20 line will be added by maintainers in the log when your patch gets applied. = =20 While here... Please don't put unnecessary blank lines between the tags.The= y=20 are not required and instead may worsen readability (obviously, I'm not=20 requiring a new version for this). =20 >=20 > Signed-off-by: Sumitra Sharma > --- >=20 > Changes in v2: > - Change commit subject and description. > - Remove unnecessary type casting (char *). >=20 >=20 > lib/test_hmm.c | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) >=20 > diff --git a/lib/test_hmm.c b/lib/test_hmm.c > index 67e6f83fe0f8..717dcb830127 100644 > --- a/lib/test_hmm.c > +++ b/lib/test_hmm.c > @@ -368,16 +368,13 @@ static int dmirror_do_read(struct dmirror *dmirror, > unsigned long start, for (pfn =3D start >> PAGE_SHIFT; pfn < (end >> > PAGE_SHIFT); pfn++) { void *entry; > struct page *page; > - void *tmp; >=20 > entry =3D xa_load(&dmirror->pt, pfn); > page =3D xa_untag_pointer(entry); > if (!page) > return -ENOENT; >=20 > - tmp =3D kmap(page); > - memcpy(ptr, tmp, PAGE_SIZE); > - kunmap(page); > + memcpy_from_page(ptr, page, 0, PAGE_SIZE); >=20 > ptr +=3D PAGE_SIZE; > bounce->cpages++; > @@ -437,16 +434,13 @@ static int dmirror_do_write(struct dmirror *dmirror, > unsigned long start, for (pfn =3D start >> PAGE_SHIFT; pfn < (end >> > PAGE_SHIFT); pfn++) { void *entry; > struct page *page; > - void *tmp; >=20 > entry =3D xa_load(&dmirror->pt, pfn); > page =3D xa_untag_pointer(entry); > if (!page || xa_pointer_tag(entry) !=3D DPT_XA_TAG_WRITE) > return -ENOENT; >=20 > - tmp =3D kmap(page); > - memcpy(tmp, ptr, PAGE_SIZE); > - kunmap(page); > + memcpy_to_page(page, 0, ptr, PAGE_SIZE); >=20 > ptr +=3D PAGE_SIZE; > bounce->cpages++; > -- > 2.25.1