Received: by 10.192.165.156 with SMTP id m28csp141370imm; Tue, 17 Apr 2018 07:49:31 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/7WwMibReacZ8ry/CpHHm2PJ4wdPnh3NHNr3+L+oeIT6ZhV2HxihR1ac4ItxcBiKgh9W9A X-Received: by 2002:a17:902:5508:: with SMTP id f8-v6mr1954880pli.254.1523976571254; Tue, 17 Apr 2018 07:49:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523976571; cv=none; d=google.com; s=arc-20160816; b=ao9alOOx321c6wZeTkCHu4PXJzdYnd6F09TlFRGja5K0NwhUWZMuzRnp3cJn/ffXp9 HtDXwlszZq1+cq9B6uZ3xrtDpOOujt926onV5Pgs3eLSQxhJeacNtPUsGc9HOc7B9QW2 gQ2SNCpKZKSFlczZZhZrvD56ZsxVINiOBL56FYvq7IsExEu8HfELKEEso0IgeSqieTgF 4VjO8uODKXd5dLFgjq7TnELQ8lAs+GRgGEcgvICr2w0UC1PG/pjyxOSAfMwr8jLkxP1y 7bvMtJyaZELoNk31etdjMkcTw3P9B8dU9ZS68QIIpjoAB/4wxDWG8odUyEXEvx6vYpsc tVtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:references:in-reply-to:date :subject:cc:to:from:arc-authentication-results; bh=mHUUHIJ+3Go/rNB0ddw2BEGPmCptXe9UDR8ZDRJfeg4=; b=NweqQdGYsdax4CaJXcU8+MZ8y9IGiIJ7/AY4qIvD2+6eHtpNk0QJ6odUwFqkXo4nkM XCKKscrToZ8LL4qfrI4iCgkl3vSG1R/IA0FOlLy6z7bRM8qVP0+vbqfzSx0YYaCwOe7L XfC6t+TlUABXqLcfsBNfK1mBtjfwbdA2AGDCU2spV+qAa87EYkGjl0nrnjYqvRYSMDZX RJ4Lwu1TBedxRVvxePZWdh8tz7D8gQbjvsNKUMgt3Uwr3/HhmoE6H9UwJiWTZYXF1kaF w8gYQ3kt8J2L2lnVmqmnPILgu2y8NtNs4dEdrhPg4qmgVG8SlrPYAeeA+MaxRi9j3mD0 Ww6A== 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=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1-v6si14357847plj.247.2018.04.17.07.49.17; Tue, 17 Apr 2018 07:49:31 -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=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752840AbeDQOsC (ORCPT + 99 others); Tue, 17 Apr 2018 10:48:02 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:38868 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753321AbeDQOd7 (ORCPT ); Tue, 17 Apr 2018 10:33:59 -0400 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w3HET38H036590 for ; Tue, 17 Apr 2018 10:33:58 -0400 Received: from e06smtp13.uk.ibm.com (e06smtp13.uk.ibm.com [195.75.94.109]) by mx0a-001b2d01.pphosted.com with ESMTP id 2hdj8n2an2-1 (version=TLSv1.2 cipher=AES256-SHA256 bits=256 verify=NOT) for ; Tue, 17 Apr 2018 10:33:53 -0400 Received: from localhost by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 17 Apr 2018 15:33:45 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp13.uk.ibm.com (192.168.101.143) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 17 Apr 2018 15:33:37 +0100 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w3HEXbiv56557612; Tue, 17 Apr 2018 14:33:37 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EA8ACA4055; Tue, 17 Apr 2018 15:25:45 +0100 (BST) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C896EA4040; Tue, 17 Apr 2018 15:25:43 +0100 (BST) Received: from nimbus.lab.toulouse-stg.fr.ibm.com (unknown [9.145.171.143]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 17 Apr 2018 15:25:43 +0100 (BST) From: Laurent Dufour To: akpm@linux-foundation.org, mhocko@kernel.org, peterz@infradead.org, kirill@shutemov.name, ak@linux.intel.com, dave@stgolabs.net, jack@suse.cz, Matthew Wilcox , benh@kernel.crashing.org, mpe@ellerman.id.au, paulus@samba.org, Thomas Gleixner , Ingo Molnar , hpa@zytor.com, Will Deacon , Sergey Senozhatsky , Andrea Arcangeli , Alexei Starovoitov , kemi.wang@intel.com, sergey.senozhatsky.work@gmail.com, Daniel Jordan , David Rientjes , Jerome Glisse , Ganesh Mahendran Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, haren@linux.vnet.ibm.com, khandual@linux.vnet.ibm.com, npiggin@gmail.com, bsingharora@gmail.com, paulmck@linux.vnet.ibm.com, Tim Chen , linuxppc-dev@lists.ozlabs.org, x86@kernel.org Subject: [PATCH v10 01/25] mm: introduce CONFIG_SPECULATIVE_PAGE_FAULT Date: Tue, 17 Apr 2018 16:33:07 +0200 X-Mailer: git-send-email 2.7.4 In-Reply-To: <1523975611-15978-1-git-send-email-ldufour@linux.vnet.ibm.com> References: <1523975611-15978-1-git-send-email-ldufour@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18041714-0012-0000-0000-000005CBDCCC X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18041714-0013-0000-0000-000019482804 Message-Id: <1523975611-15978-2-git-send-email-ldufour@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-04-17_07:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1804170131 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This configuration variable will be used to build the code needed to handle speculative page fault. By default it is turned off, and activated depending on architecture support, SMP and MMU. Suggested-by: Thomas Gleixner Suggested-by: David Rientjes Signed-off-by: Laurent Dufour --- mm/Kconfig | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/mm/Kconfig b/mm/Kconfig index d5004d82a1d6..5484dca11199 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -752,3 +752,25 @@ config GUP_BENCHMARK performance of get_user_pages_fast(). See tools/testing/selftests/vm/gup_benchmark.c + +config ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT + def_bool n + +config SPECULATIVE_PAGE_FAULT + bool "Speculative page faults" + default y + depends on ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT + depends on MMU && SMP + help + Try to handle user space page faults without holding the mmap_sem. + + This should allow better concurrency for massively threaded process + since the page fault handler will not wait for other threads memory + layout change to be done, assuming that this change is done in another + part of the process's memory space. This type of page fault is named + speculative page fault. + + If the speculative page fault fails because of a concurrency is + detected or because underlying PMD or PTE tables are not yet + allocating, it is failing its processing and a classic page fault + is then tried. -- 2.7.4