Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754454AbbHLL7R (ORCPT ); Wed, 12 Aug 2015 07:59:17 -0400 Received: from mail-wi0-f176.google.com ([209.85.212.176]:34901 "EHLO mail-wi0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752536AbbHLL7M (ORCPT ); Wed, 12 Aug 2015 07:59:12 -0400 Date: Wed, 12 Aug 2015 13:59:09 +0200 From: Michal Hocko To: Eric B Munson Cc: Andrew Morton , Vlastimil Babka , Jonathan Corbet , "Kirill A. Shutemov" , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-api@vger.kernel.org Subject: Re: [PATCH v7 3/6] mm: Introduce VM_LOCKONFAULT Message-ID: <20150812115909.GA5182@dhcp22.suse.cz> References: <1439097776-27695-1-git-send-email-emunson@akamai.com> <1439097776-27695-4-git-send-email-emunson@akamai.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1439097776-27695-4-git-send-email-emunson@akamai.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1725 Lines: 35 On Sun 09-08-15 01:22:53, Eric B Munson wrote: > The cost of faulting in all memory to be locked can be very high when > working with large mappings. If only portions of the mapping will be > used this can incur a high penalty for locking. > > For the example of a large file, this is the usage pattern for a large > statical language model (probably applies to other statical or graphical > models as well). For the security example, any application transacting > in data that cannot be swapped out (credit card data, medical records, > etc). > > This patch introduces the ability to request that pages are not > pre-faulted, but are placed on the unevictable LRU when they are finally > faulted in. The VM_LOCKONFAULT flag will be used together with > VM_LOCKED and has no effect when set without VM_LOCKED. I do not like this very much to be honest. We have only few bits left there and it seems this is not really necessary. I thought that LOCKONFAULT acts as a modifier to the mlock call to tell whether to poppulate or not. The only place we have to persist it is mlockall(MCL_FUTURE) AFAICS. And this can be handled by an additional field in the mm_struct. This could be handled at __mm_populate level. So unless I am missing something this would be much more easier in the end we no new bit in VM flags would be necessary. This would obviously mean that the LOCKONFAULT couldn't be exported to the userspace but is this really necessary? -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/