Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3304761img; Mon, 25 Mar 2019 07:44:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqzdIK5J9C3+OA+8EKznfuZ82gDX0hxX5abkixtS8CWxF8la3VpczNPLfDhW4ArLX8RYozlI X-Received: by 2002:a63:2d5:: with SMTP id 204mr23153023pgc.407.1553525041189; Mon, 25 Mar 2019 07:44:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553525041; cv=none; d=google.com; s=arc-20160816; b=kuvvPBxo3QRYLeUua98pnmZqstl5sSfoA/eVEhZhrinuJKTZrfQuQgZVapXGSG+Wgp 3ZOk+2g8EQE6PM48zcIejS1BU7heSv763qNGV/lupSkjMrjmb8UZrFCSAe0mA+nTAIWe hrY964KUplHtndMAo8pZvruKCJUYcX/uvRVTG9mo9a8bVVTF8DbjuIaEX3N/FUoguwhN Ul3zPgwWv0kgD+xTb3tmapHK1B+e7gPp5dQI3lPVx1dYtGY6IROzpgffnmjHaJnHpNEV k6RUtsd1di1PFexDEsM5zh6QX8xcTclEYET2LH2VQJRuG5dZxzG2vaqZsO7rPp1tC0ph JlTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=CpqZZjSbePr1gUT1uEF3XDnq5aeEq0vWDq8hOysRV4s=; b=aeiMyn72GQuEI+oQh9Y7ciueVEjavw5foQe2PuYLXogJ3LG9wGlLRCE2P6GLIql4pg WjYEIg+Mo3S6SCO8OcXoP9gcH8WRyMojWY3I9M9uJ1bCsnwWT5mVtKVlxo1AOdBaRc3t UkPAVuOyyf0tqmPWPx/6pwVFF00eU56TftXXfmtboGHRwWYT3h7iJec+oN+jlb+oNHT7 MztNYZfzWtjzFUs7Z70p1rz4WDBTjhmTvu87wY4+ufsckrKqLFnoUPzJFKfeNc0OammW 6SXc0MlXNcfGWgNuMfmWRhZHYCHDmjKISHZqt/O2hGTxAPvfnioR5P7+5hO2gPYjl5bw w2LQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l22si5957503pfi.74.2019.03.25.07.43.45; Mon, 25 Mar 2019 07:44:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729253AbfCYOkP (ORCPT + 99 others); Mon, 25 Mar 2019 10:40:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57222 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726143AbfCYOkO (ORCPT ); Mon, 25 Mar 2019 10:40:14 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 72A4530832C5; Mon, 25 Mar 2019 14:40:14 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.20.6.236]) by smtp.corp.redhat.com (Postfix) with ESMTP id 701451001DC8; Mon, 25 Mar 2019 14:40:13 +0000 (UTC) From: jglisse@redhat.com To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Balbir Singh , Ralph Campbell , Andrew Morton , John Hubbard , Dan Williams Subject: [PATCH v2 00/11] Improve HMM driver API v2 Date: Mon, 25 Mar 2019 10:40:00 -0400 Message-Id: <20190325144011.10560-1-jglisse@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Mon, 25 Mar 2019 14:40:14 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jérôme Glisse This patchset improves the HMM driver API and add support for mirroring virtual address that are mmap of hugetlbfs or of a file in a filesystem on a DAX block device. You can find a tree with all the patches [1] This patchset is necessary for converting ODP to HMM and patch to do so as been posted [2]. All new functions introduced by this patchset are use by the ODP patch. The ODP patch will be push through the RDMA tree the release after this patchset is merged. Moreover all HMM functions are use by the nouveau driver starting in 5.1. The last patch in the serie add helpers to directly dma map/unmap pages for virtual addresses that are mirrored on behalf of device driver. This has been extracted from ODP code as it is is a common pattern accross HMM device driver. It will be first use by the ODP RDMA code and will latter get use by nouveau and other driver that are working on including HMM support. [1] https://cgit.freedesktop.org/~glisse/linux/log/?h=hmm-for-5.1-v2 [2] https://cgit.freedesktop.org/~glisse/linux/log/?h=odp-hmm [3] https://lkml.org/lkml/2019/1/29/1008 Cc: Balbir Singh Cc: Ralph Campbell Cc: Andrew Morton Cc: John Hubbard Cc: Dan Williams Jérôme Glisse (11): mm/hmm: select mmu notifier when selecting HMM mm/hmm: use reference counting for HMM struct v2 mm/hmm: do not erase snapshot when a range is invalidated mm/hmm: improve and rename hmm_vma_get_pfns() to hmm_range_snapshot() v2 mm/hmm: improve and rename hmm_vma_fault() to hmm_range_fault() v2 mm/hmm: improve driver API to work and wait over a range v2 mm/hmm: add default fault flags to avoid the need to pre-fill pfns arrays. mm/hmm: mirror hugetlbfs (snapshoting, faulting and DMA mapping) v2 mm/hmm: allow to mirror vma of a file on a DAX backed filesystem v2 mm/hmm: add helpers for driver to safely take the mmap_sem v2 mm/hmm: add an helper function that fault pages and map them to a device v2 Documentation/vm/hmm.rst | 36 +- include/linux/hmm.h | 290 ++++++++++- mm/Kconfig | 1 + mm/hmm.c | 1046 +++++++++++++++++++++++++------------- 4 files changed, 990 insertions(+), 383 deletions(-) -- 2.17.2