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 3B0C9C46CA0 for ; Wed, 29 Nov 2023 19:04:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 61F016B03DF; Wed, 29 Nov 2023 14:04:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5CF146B03E1; Wed, 29 Nov 2023 14:04:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 497946B03E2; Wed, 29 Nov 2023 14:04:10 -0500 (EST) 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 36A666B03DF for ; Wed, 29 Nov 2023 14:04:10 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0B75114060C for ; Wed, 29 Nov 2023 19:04:10 +0000 (UTC) X-FDA: 81511917060.11.C598375 Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by imf10.hostedemail.com (Postfix) with ESMTP id 3A23AC002F for ; Wed, 29 Nov 2023 19:04:06 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=none); spf=pass (imf10.hostedemail.com: domain of christ.li@gmail.com designates 209.85.208.174 as permitted sender) smtp.mailfrom=christ.li@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701284647; 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; bh=b6e/iPHotyGLxRcZFDNDxbxKjcI1VVeudET2V0CiNRw=; b=tPBEbJ8Q02JHTUpfJuzRf1cG3IQhSw3LhZZRc8hCdvJT2ybvNAheCnNIEotPNjYoEL3OVP sAMTWD83mbpngrvN58FuykvIzpXjeyTWDAbJ2JYG8syA3N8+fy6KgD6tcVv1HFqghtbYhv O2E4nYmQgsbnCDDcnZ9d3LE1Q8G0csY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=none); spf=pass (imf10.hostedemail.com: domain of christ.li@gmail.com designates 209.85.208.174 as permitted sender) smtp.mailfrom=christ.li@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701284647; a=rsa-sha256; cv=none; b=c5XpnHTO3VM0DjCnaXamnKez4v0mCQwID6V9hUZwT9iWEjRASFidDSXFs4bF2QDXiUZBuw RfDWSTQk6sdo/TCHG9zAFSYgwb9QSg/cgzSfl/He+Jm6QtJz/JKHYSMzI9XvvN0VEx5Brv sMBNc1RcmZsVVMdrGZwTOJxY+CJyacQ= Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-2c9bf8964c3so1883511fa.1 for ; Wed, 29 Nov 2023 11:04:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701284645; x=1701889445; 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=b6e/iPHotyGLxRcZFDNDxbxKjcI1VVeudET2V0CiNRw=; b=cZLSMBJwMrFtuZQuD1rvMOyDTM3Ncfks4zkwu1iz4ZiQK5YRhG17P9FQNT3Ls65ord cg3P7UQugp5uNwtX1c507Wtze+fN/z5FQgxp0Ao4lW60Qp9mmh8U5Pe/afGaP5y/ALl4 v3obeKa97i/2pwgQFYyec9+S8Zrk09hLGoIjBX1VBiQAIlgPJxwxDc9z0KON0bQ2iSrK gyjrYGDCpa14PCmMD8ZHfT4uJdv/6a9Y3/KzrU4ZVtDcKmBvUiP1Suqxo9qM2/xPvVEB yFwSH7Tn+PpO1va28xE/NcZpGPQhBbYPmsKVxSYB6p8iSL2qmQiNRGt5Or8AoVMNiS6/ 9+2Q== X-Gm-Message-State: AOJu0YzQa2O13yMEHPud9XFJiXcy9fzjZGGx+ld6gdR/U9cqEszHQbC+ gArrvfvdo0r0ZTgVrM5/UI4ZpODqP5KLu1bm5g== X-Google-Smtp-Source: AGHT+IFZbYy0xwGTrEdISZZupZsQXl2gjBcYvUS3srlgKW0bTVN7ZheGcoVR4CI2Tf1Dtro+/cESGQvLdpW8A+Cx3MI= X-Received: by 2002:a2e:7203:0:b0:2c9:bf97:81d1 with SMTP id n3-20020a2e7203000000b002c9bf9781d1mr1818071ljc.27.1701284645142; Wed, 29 Nov 2023 11:04:05 -0800 (PST) MIME-Version: 1.0 References: <20231127160058.586446-1-fabio.maria.de.francesco@linux.intel.com> <2166103.irdbgypaU6@fdefranc-mobl3> In-Reply-To: <2166103.irdbgypaU6@fdefranc-mobl3> From: Christopher Li Date: Wed, 29 Nov 2023 11:03:52 -0800 Message-ID: Subject: Re: [PATCH] mm/zswap: Replace kmap_atomic() with kmap_local_page() To: "Fabio M. De Francesco" Cc: Seth Jennings , Dan Streetman , Vitaly Wool , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Ira Weiny , Nhat Pham , Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 3A23AC002F X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: w6wacy1ar5c73jt7eejci4scsde5yo7c X-HE-Tag: 1701284646-742135 X-HE-Meta: U2FsdGVkX19a4CjnHoavk/URwCsKihnGu9zwdtD7yIunRuuLh9tbJ9pPzy/qJMkhktplJV+kTHaYniWMd4RfUipMdQXOC3cJaOpQv426z8PPAg4bsFCMMoP6m7AXyNEA78rNRk535FAU1MTjLGqVDVJqOL7UwcWu7xLP+SPWeNNjiGFcRcRB0c21G/6vctVDaOzDr40bb16+19+FOqy7EbATQBtYd3hdKOElLdqBdjbH5vACaFfZ242BmXeG8rUzYdxPlPhvqqlMSMS3scRGSVvyO8Tst9aHhBzywMck8TVLMsgqpLv5pxAIu5K+S7oaw9EPU1swkuVHtUrd7Fw8GVNHPbpTRVIm38/6o7OIqdFeCvYqj+3Mr94cFw19qD46Sn3sMFePNIyL3Htk0nP60a4U5D9WuZtX5gO0g6J33zIQA5hAUpIjCrXxoccD1dC2Icny+35abgBWmF92V7LkV8glXh6AKoROnmV6IVGMhykdOq0q5Nl+JcDrpHtnrVadMp/ROzx7FB5K2eqkh1mhggZG/HXaoIuUyAvOKx1nXRFc6JK59S9tkAud5CChJxjj77rYDxu92u982tIvc7tvFV2f7TMfUgjFI369M6VTvWkkdJLV5hxBcJEKQUMeEsTCC1/RaX9uqTOzIrsFu6qOXBAxgbfwofi+CyAy7e5Izi3W3P3Bo9eW2gZrHJeXxO1TqYOpnqCeAwArnEWCjD9oBQtd97S/akoXb0hriLTy75gc5wcFUNlcThjby/CZlvCMtPrO2g2kZnbQv38HfdwVwXlH3diNfSTOo6LL9fWwd2/2ITcBfsIPjmZ1ASbI26FwZi2LF7RVv3WOVvxXLvze9kTIPAjRIm00bR9eQ6EP/4dw7zKU5hNkpQCWsNlVpakikU7E4Tw+Yl1pzM0ju5RiQDvIkmW/TCc+nRnaU+yI0WaC5rQLKrH/YteZUV7fUlQegg6Fgd1+mYXsBoKCPwk /eGafhNl lb9QM596EbOOMUg3JtSP6pdQJfO2N2OicEEq7OtYp3+2sKYNI3tZBj+OA4L7XJyqWVKsYVjv0gY/M1+HBLRE94VNTrYkuhu/7RlXdYp3PDu0keMLXKIrq1R8sambcAGPhIkOnYpyn2Y4RFU2Hup5LxZ7M4ODnKssHTzaBcji6CWG3KBAQdW1jyuSd0qj6l0YKGupgHFOZ7IOJ+NPLz0xeEzVJE0rwcCrYGsPgIes22OY2K6rDW4sniHdo5HOkLnpzLI8RmltSwMnuQjtUtAuK84PHwmGlLNDqsbpNsOtBLEVKWl5sgBkMMQ9AxV8DKhKjiCGae6fs10tdkRtwQGB0w/v94Zzkwfcv1IkFtwu0zWbUXZfKeEJjI1kpptdAGkoz/IUDRQ4yw6hvw0fQfh/o8MjjDaul3hfx4Z90zWc4vCdY6kxNo79Q42u9PA== 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: Hi Fabio, On Wed, Nov 29, 2023 at 3:41=E2=80=AFAM Fabio M. De Francesco wrote: > > > The kernel virtual addresses returned by these two API are > > > only valid in the context of the callers (i.e., they cannot be handed= to > > > other threads). > > > > > > With kmap_local_page() the mappings are per thread and CPU local like > > > in kmap_atomic(); however, they can handle page-faults and can be cal= led > > > from any context (including interrupts). The tasks that call > > > kmap_local_page() can be preempted and, when they are scheduled to ru= n > > > again, the kernel virtual addresses are restored and are still valid. > > > > As far as I can tell, the kmap_atomic() is the same as > > kmap_local_page() with the following additional code before calling to > > "__kmap_local_page_prot(page, prot)", which is common between these > > two functions. > > > > if (IS_ENABLED(CONFIG_PREEMPT_RT)) > > migrate_disable(); > > else > > preempt_disable(); > > > > pagefault_disable(); > > > > This is what I tried to explain with that sentence. I think you overlooke= d it > :) I did read your description. It is not that I don't trust your description. I want to see how the code does what you describe at the source code level. In this case the related code is fairly easy to isolate. > > BTW, please have a look at the Highmem documentation. It has initially be= en > written by Peter Z. and I reworked and largely extended it authoring the > patches with my gmail address (6 - 7 different patches, if I remember > correctly). > > You will find there everything you may want to know about these API and h= ow to > do conversions from the older to the newer. Will do, thanks for the pointer. Chris