Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4958758pxu; Thu, 10 Dec 2020 09:24:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzy3y6V8VllFmkqWI8F+GL2j3WcLKAv8p2oKKt2aqgPxlXu5yApAkzDYt9F4Ht5vqfIXDBc X-Received: by 2002:a50:f299:: with SMTP id f25mr7738098edm.133.1607621069081; Thu, 10 Dec 2020 09:24:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607621069; cv=none; d=google.com; s=arc-20160816; b=s0FlB5h28dCeWzeOS0zNgLK9K6s6EO4Ak8XsC9c/EB+9kMoSkHgb1rfvTPnZnfhl1V 7Gu5go45NIGE8XaFZQk+6qXYiAvrHMhjZodvWks80EM0ARkzjL2ypRWE5j1wSJ9SnLxv LWvjWPaOQmpOerVmSsBvhYmEH0FiZ9zintPh7p745kBRUQMgD2J6iB+4JwGlxaAewDK7 48+VM09+JH+xvPTKmKwjrdKsCKinR/3M1kWgrmhcFfnEspBRAWr8NcxIX0uWXK3E4ZiB coPMahHgyhUPrlaIkYlkns0R9bbQenpwTIETJftpaBwaQ9Q4aEIiE62676tP3AQz3Id5 U3ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:ironport-sdr:ironport-sdr; bh=/5S5Y60CetjdQwaUotm0sTVwqKlKv9jBrNLKduZ2WQ8=; b=fNHuQFMgaqwdzUFsAScJeRSCP9GH3tVsnCyoiMMh8GOgPmseDzZwSPX0qh+OvBMqMt ObYA6dGQLVR6k3pquajtRNAVi8h7pu/WnDBAXZmSOCnm7RhyzuCMUuOWNhB5dq2+2+xz fQZheS9NWXgzI7NM+vCrHebapgmkZgRilevzfGEtjS6o0KzirIMI5Sni3+oNkmuOYxcJ WCmOYynPH8WqFSsEWkvHJOYCTaB5nTnOsbrXTpGfJp4Cop8biugukd6LCZ7Ovn9QrkYk zypvZ7gRLvhqrbZVG9g3fQzoTC4xJuoxxz3FRY+lyovaKWhERETVYaGq+Ab+oQi27Dqz 8J9Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id zn8si3198413ejb.299.2020.12.10.09.24.05; Thu, 10 Dec 2020 09:24:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389954AbgLJRV0 (ORCPT + 99 others); Thu, 10 Dec 2020 12:21:26 -0500 Received: from mga06.intel.com ([134.134.136.31]:31646 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387487AbgLJRTV (ORCPT ); Thu, 10 Dec 2020 12:19:21 -0500 IronPort-SDR: mLRdkECjjCunpUJfr9SWR9Ci0o5stZH3gf0sGgfDU3sNiQL+MeOk5x3lqLCx5vYG2x4IHYFE0k g+4DKS9WVjgw== X-IronPort-AV: E=McAfee;i="6000,8403,9831"; a="235889273" X-IronPort-AV: E=Sophos;i="5.78,408,1599548400"; d="scan'208";a="235889273" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2020 09:18:37 -0800 IronPort-SDR: ++J+ZzT9cWzZbsmonTh7O3ug91FyfUcZ395M5vZLyclzI81RtVE+M0xrZaDe4hyWG3LP9PpyAH XaCxDlqm1DDw== X-IronPort-AV: E=Sophos;i="5.78,408,1599548400"; d="scan'208";a="484568726" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2020 09:18:37 -0800 From: ira.weiny@intel.com To: Thomas Gleixner , Andrew Morton Cc: Ira Weiny , Joonas Lahtinen , Matthew Wilcox , Christoph Hellwig , Eric Biggers , Dan Williams , Al Viro , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH V3 0/3] Begin converting kmap calls to kmap_local_page() Date: Thu, 10 Dec 2020 09:18:32 -0800 Message-Id: <20201210171834.2472353-1-ira.weiny@intel.com> X-Mailer: git-send-email 2.28.0.rc0.12.gb6a658bd00c9 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ira Weiny Changes from V2[1]: Update this cover letter Update commit messages From Matthew Wilcox Put functions in highmem.h rather than pagemap.h Investigate 0-day build errors. AFAICT the patches were applied to the wrong tree and caused build errors. There are many places in the kernel where kmap is used for a simple memory operation like memcpy, memset, or memmove and then the page is unmapped. This kmap/mem*/kunmap pattern is mixed between kmap and kmap_atomic uses. All of them could use kmap_atomic() which is faster. However, kmap_atomic() is being deprecated in favor of kmap_local_page(). Use kmap_local_page() in the existing page operations. Lift memcpy_[to|from]_page to highmem.h. Remove memzero_page() and use zero_user() instead. Add memcpy_page(), memmove_page(), and memset_page() to be used in future patches. Finally, add BUG_ON()s to check for any miss use of the API and prevent data corruption in the same way zero_user() does. This is V3 to get into 5.11 so that we can start to convert all the various subsystems in 5.12.[2] These are based on tip/core/mm. I'm sending to Andrew and Thomas but I'm expecting these to go through tip/core/mm via Thomas if that is ok with Andrew. [1] https://lore.kernel.org/lkml/20201207225703.2033611-1-ira.weiny@intel.com/ [2] https://lore.kernel.org/lkml/20201204160504.GH1563847@iweiny-DESK2.sc.intel.com/ Ira Weiny (2): mm/highmem: Remove deprecated kmap_atomic mm/highmem: Lift memcpy_[to|from]_page to core include/linux/highmem.h | 81 ++++++++++++++++++++++++++++++++++------- lib/iov_iter.c | 26 ++----------- 2 files changed, 70 insertions(+), 37 deletions(-) -- 2.28.0.rc0.12.gb6a658bd00c9