Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp6231259imm; Wed, 27 Jun 2018 04:34:06 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIxHFfAHjJc/G06DrAcQcGohHxqw3HX7LpxPDdeE4xDP7pKiIR9IiJ0dYQT5auO9YP7OjaP X-Received: by 2002:a17:902:b28c:: with SMTP id u12-v6mr5666305plr.16.1530099246222; Wed, 27 Jun 2018 04:34:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530099246; cv=none; d=google.com; s=arc-20160816; b=qQnUcr31TmIV6Z5VxCFhHRYtb3pmE2fDLRdMwbVwPviJW/C7g5cgZyXzv5wt1LziCy XH70Jl/gu6TIjg/DyUvd6axafjyR6TbeiQivp9K2CFFjNIr952UdDgmiawtZ1UCFcYyr b69kHwISa0nAJpVtbgOPAVHw81qHCsEcpSJ3e03IQ28//Sn61NkAjMdgg7YMZrxDw5KL fymP52dUX2MIDSl4Xy7Bh/1d8GPinIHtxERVNeCMzC2lfO5CfkvRl5icmpCCL5XtO7jX wompyVULL6iVN0uQJU5fIN3rnM41s3H6OHer+Un69zfJwARmQHNB6L9w6K06Bv1WTupE fzsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=Gsu0tjfoCY8w7ddURJB2f1vBHN0tTeJ4o0bOsPTOL9I=; b=uG6nrwG1xzEoEgWxrr+77IoKlVwNUc7UODEQsDORAT71bZNoJZb/v+oCWtlbjxs/x7 QQc+KyyCYI1vaoOduaTh55Whh0rVFtcGhGWQxd+Vkb/O/Wl0fBVlyy5ViqlZDD5wybWp 1jBKvNCxc0/PIglvfHMjwnHJgS8k38RAAfNxuO6Fsdo1sEv9sbRRFB9QtBiQZOLj+hog 4PYW0DD0UFifdm7iq5oByDRv+YmEOHNDmo/oV8fsMvTioHmpSAs/ucYh6BYUsC2E2M8j 5DU3rGP4PePh7BGCxjGG+PBP1s1VDyeyIavjaeKG4Hf70XXlQ+PiWQYyFMfBbFRr7Ify mksw== 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j193-v6si3215618pge.689.2018.06.27.04.33.51; Wed, 27 Jun 2018 04:34:06 -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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964785AbeF0LcZ (ORCPT + 99 others); Wed, 27 Jun 2018 07:32:25 -0400 Received: from mx2.suse.de ([195.135.220.15]:43445 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933185AbeF0LcX (ORCPT ); Wed, 27 Jun 2018 07:32:23 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 4693DAF2D; Wed, 27 Jun 2018 11:32:22 +0000 (UTC) Date: Wed, 27 Jun 2018 13:32:21 +0200 From: Michal Hocko To: Jan Kara Cc: Dan Williams , John Hubbard , Christoph Hellwig , Jason Gunthorpe , John Hubbard , Matthew Wilcox , Christopher Lameter , Linux MM , LKML , linux-rdma Subject: Re: [PATCH 2/2] mm: set PG_dma_pinned on get_user_pages*() Message-ID: <20180627113221.GO32348@dhcp22.suse.cz> References: <20180617200432.krw36wrcwidb25cj@ziepe.ca> <311eba48-60f1-b6cc-d001-5cc3ed4d76a9@nvidia.com> <20180618081258.GB16991@lst.de> <3898ef6b-2fa0-e852-a9ac-d904b47320d5@nvidia.com> <20180626134757.GY28965@dhcp22.suse.cz> <20180626164825.fz4m2lv6hydbdrds@quack2.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180626164825.fz4m2lv6hydbdrds@quack2.suse.cz> User-Agent: Mutt/1.10.0 (2018-05-17) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 26-06-18 18:48:25, Jan Kara wrote: > On Tue 26-06-18 15:47:57, Michal Hocko wrote: > > On Mon 18-06-18 12:21:46, Dan Williams wrote: > > [...] > > > I do think we should explore a page flag for pages that are "long > > > term" pinned. Michal asked for something along these lines at LSF / MM > > > so that the core-mm can give up on pages that the kernel has lost > > > lifetime control. Michal, did I capture your ask correctly? > > > > I am sorry to be late. I didn't ask for a page flag exactly. I've asked > > for a way to query for the pin to be temporal or permanent. How that is > > achieved is another question. Maybe we have some more spare room after > > recent struct page reorganization but I dunno, to be honest. Maybe we > > can have an _count offset for these longterm pins. It is not like we are > > using the whole ref count space, right? > > Matthew had an interesting idea to pull pinned pages completely out from > any LRU and reuse that space in struct page for pinned refcounts. From some > initial investigation (read on elsewhere in this thread) it looks doable. I > was considering offsetting in refcount as well but on 32-bit architectures > there's not that many bits that I'd be really comfortable with that > solution... I am really slow at following up this discussion. The problem I would see with off-lru pages is that this can quickly turn into a weird reclaim behavior. Especially when we are talking about a lot of memory. It is true that such pages wouldn't be reclaimable directly but could poke them in some way if we see too many of them while scanning LRU. Not that this is a fundamental block stopper but this is the first thing that popped out when thinking about such a solution. Maybe it is a good start though. Appart from that, do we really care about 32b here? Big DIO, IB users seem to be 64b only AFAIU. -- Michal Hocko SUSE Labs