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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08F92C433EF for ; Sat, 16 Oct 2021 09:47:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7F7E66108E for ; Sat, 16 Oct 2021 09:47:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 7F7E66108E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id AAA9B6B0071; Sat, 16 Oct 2021 05:47:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A5A38900002; Sat, 16 Oct 2021 05:47:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9486D6B0073; Sat, 16 Oct 2021 05:47:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0129.hostedemail.com [216.40.44.129]) by kanga.kvack.org (Postfix) with ESMTP id 81C5D6B0071 for ; Sat, 16 Oct 2021 05:47:12 -0400 (EDT) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 40B6739499 for ; Sat, 16 Oct 2021 09:47:12 +0000 (UTC) X-FDA: 78701822304.12.611FF23 Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by imf12.hostedemail.com (Postfix) with ESMTP id EA8F310000AB for ; Sat, 16 Oct 2021 09:47:11 +0000 (UTC) Received: by mail-lf1-f49.google.com with SMTP id y26so52837736lfa.11 for ; Sat, 16 Oct 2021 02:47:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=h15skaPeH+kCMv9tRniGpEAtaSou+GGGSFh3616SPt8=; b=odV4qyZ5IU75WdC4kQkaZjcmrf5qPisF51LKldBgnMV53BGVwtQSqvKlNvMrrjg57V QbR0/MUKIoV8fqVApL8RDlHg14/pKplGJCcTL6zIolt/vKxjvsTyYGYpiaz+hW8iikk0 lRjPE0Kz44EPEhnbSq5sGKXzPpMhCC7ueLuxlC6HDC4SaWSPTH4ppql9LsDB+hfTSuru jbEcprVTJtnWk+DSalT+r4Hvne3NOA4OGL8poc1HUTjk8jdihP03Gx+WvW5yH9m/c1cu qomfgymF4x8IK5ZGAFE8zejgXxWFQclLXBOJcI8g3I4QGz1yd3+158wrvxoXSyfoHZgl QeQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=h15skaPeH+kCMv9tRniGpEAtaSou+GGGSFh3616SPt8=; b=bmsHR9XbOPQQ1Fi7taQuc5894ITkKTHUNLGHCpkyN/p2LzoikILlR1ArPeOd4UhMJr C/w7f3wt9ogxvhBhQjSf81vqlzR0Dd1PuyRx3rFQIoIGsiWeaC3KV/OJPjEwa0+OkPrj d0BHfOoXmvkKl5S4lBuaxFOKX3fvxBz4HHKJGB4Q23NTNpcW+8amP6XXPIvHobdlJvaP gpGPDxIQ9QMDRNy8JqJTGwdictQCRm8MKKRT3Jk9/h43WHUVeqjOmE3cbySpakBhq5ff Obk6RnRxtNhn9SKVG3/7VtXFFveigq3P71IkVs4PDLS2eI6gDRFaE8ameeRXWMxgE2L7 mS2Q== X-Gm-Message-State: AOAM532/dn6cZMd0xShMR7a+U5S6uJUWaAYmXo+l4yhJlSJcy/5yUO3R CqSwTlDN5cZwJlk5Sh8ujjeqrladzqUcA3/NNm7qMQCvkHJlLw== X-Google-Smtp-Source: ABdhPJxDBRCKQol/6iEshElSDRiXRrngu/6iONw5z+IKN/ppehbp0V+bu2n9HqkFqSug78jq0gwERbvq3uUDin9UZoc= X-Received: by 2002:a2e:9242:: with SMTP id v2mr5864357ljg.103.1634377630373; Sat, 16 Oct 2021 02:47:10 -0700 (PDT) MIME-Version: 1.0 From: Adam Turowski Date: Sat, 16 Oct 2021 11:46:59 +0200 Message-ID: Subject: How to mmap any address space using huge pages? To: linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=odV4qyZ5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of adam.s.turowski@gmail.com designates 209.85.167.49 as permitted sender) smtp.mailfrom=adam.s.turowski@gmail.com X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: EA8F310000AB X-Stat-Signature: xdbi9cqngefrird4ujqcw3q9cfjtpnkr X-HE-Tag: 1634377631-202309 X-Bogosity: Ham, tests=bogofilter, spamicity=0.057369, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hello all, I have a device and I need to mmap it into a user space using 1GB huge pages. AFAIK I cannot use HugeTLB nor THP because they're backed by the memory. The remap_pfn_range doesn't use huge pages neither. So I used a huge_fault handler to set up the pud descriptor myself (arm64 here, so no transparent puds) and that works. The problem is that the kernel warns about a bad pud when the vma mapping is removed, the zap_pud_range function doesn't accept block puds. The vunmap_pud_range function works with block puds and checks for their presence and calls the pud_clear_huge function. If I add this function call to the zap_pud_range function, the warnings are gone. Am I missing something? What is the proper way to mmap (and munmap) any address space using huge pages (esp. 1GB pages)? Thanks -- Regards, Adam Turowski