Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3693503imw; Mon, 18 Jul 2022 12:47:13 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sk8rwNrCmoalxSt5IHFTmMPWoSAdnG/BVco5plIv36w1yDBxFJbR1WRIQEwuHEBBKgWgEE X-Received: by 2002:a05:6808:1412:b0:33a:35cb:b920 with SMTP id w18-20020a056808141200b0033a35cbb920mr11923346oiv.74.1658173633774; Mon, 18 Jul 2022 12:47:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658173633; cv=none; d=google.com; s=arc-20160816; b=aYXSjapjPQtLDzUYPHwMnmiKwdhEKrcK+RCuJg+MQZemxxvfJTkwgoynHwo9Wg/Rr2 CCfDUcoO+/bkNCz8I+xMgPI9vBOgONyg3qoR3hO4RTdCirYxXr1lH5tCvFa5QHQFZuZq BNLFTPg69/qjh9dBTTsF0ooUE4K/GSBWauMrsX+OWfs8yiiWmBY6ngMAWR134K9LQW/m nj5AgIp1H7PCF3ze+0T32DU6UUk0p+vFqXYYKjSkmgxbLB36Wv1LDkCMFBKVrkD7IYFX xC1nuVIaTvC5UnF3KJwyn9OtjbE0iFB48eRFF28YnyXKZ+PHT8cUSpAo6uIJ0ekmw7JT zQCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ii9tnumcH6f4uVFiJaNvbNbCHj/eOFwFpwV99AWDIWY=; b=eylshkxcgDvtsyASpKZdj9NI4HWblvRbcwVPJtJOEZ8U9fDjFMMOsPvlanIF5Hdgua DjVm32Ui2usePHqxjy065iVdNMYmb+tyaffyX8Nhz0Yvat5awZF+G0avzlhMRlyjAvRR L8IMNMAK01gj5xFBy+9/lh93lfXCS7nJdzahWYSmUYsHewYFj46DR7uwlw8ltx099qi+ ih6k4M3XIM04kzRP8B1CkCnwArPaJTZncK8V7zoTNCovddP+otIFP/RnJVUmPc2XvnMO sWaCnie/6qqQqzzJeu9pUGtFSE3f+wmGhdESWku+8XY2z/uxVekbsGtTmwhw3dcDH26g zB9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=gF1O4Ap8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ca24-20020a056830611800b0061ca14b4bd1si3451270otb.173.2022.07.18.12.46.58; Mon, 18 Jul 2022 12:47:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=gF1O4Ap8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236179AbiGRTh1 (ORCPT + 99 others); Mon, 18 Jul 2022 15:37:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236184AbiGRThQ (ORCPT ); Mon, 18 Jul 2022 15:37:16 -0400 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 074C92CDED for ; Mon, 18 Jul 2022 12:37:14 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id g126so11565451pfb.3 for ; Mon, 18 Jul 2022 12:37:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ii9tnumcH6f4uVFiJaNvbNbCHj/eOFwFpwV99AWDIWY=; b=gF1O4Ap8c6u3Wl7EJAnk5cpari+SSbCrCwIHnkKi2iGutzFYOra9oMYtovijltSliX f9n+3+zOazFlTlGbgoP7cASWhUOA3yRUCNf36n4asDLBRZ2n5F6V77g8Ih0ng07spWdH HCMUUeGMN6x1yYhcSmRTYhGUaieuitiLXWFPOh9CH2CMEqYcyByqPimLVW+wP36dQPZe 1RJE9T2eaZawBkz5E8JuXZAG/5xKtgo8+wNL/iuOrcsSXLKNEDQJjqpz/5Yuv3v3GVFQ DvCcYoxTnP9tWp+lBd1uyqN2PAo5ihDVfdOn4Uj1GiSnYTj0YlvWIZ5h14BKB8GCHPjA 0gFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ii9tnumcH6f4uVFiJaNvbNbCHj/eOFwFpwV99AWDIWY=; b=zNosqQGRRV4CaRWURanoiewy4STvLM3KxyKHHT8F6Hsf8HCScyF+cQ3A2t8VEiOceI QZY5H10tGPVIEX5UdpZX+XKlTNm0SWt7bxaxipLM8I0hHhLNNRSc7CIa/hpYw2MGJU2e 6SVIIyNp4KmNg0Ufmsk7oeyXD4mazPfbNcYEitOVeB50srGE2EiUU4Dp9LT3x2hJWnav ds960yZ/NKDnjROufVOZQyn43lPtj1xn+XpVJ3fL0bDB+88WPkAe3/a+y1PXckyBPHoT wnCKML5fdoWdWhCnS2yhK9Za3NHtjidRuGRNspCldqha8ypXQP5LWBlN4+bqau1YVeLg SHyw== X-Gm-Message-State: AJIora966Nwt47D7+YDU9q5ZbBx+WjFQz39REMn4yP0wquFAmJTBQ4g0 bxkHX9pc2LSshNWIDL+YlOg= X-Received: by 2002:a05:6a00:3388:b0:52a:c018:6cdf with SMTP id cm8-20020a056a00338800b0052ac0186cdfmr29910792pfb.55.1658173033302; Mon, 18 Jul 2022 12:37:13 -0700 (PDT) Received: from sc2-haas01-esx0118.eng.vmware.com ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id q6-20020a170902a3c600b0016bc4a6ce28sm9907887plb.98.2022.07.18.12.37.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 12:37:12 -0700 (PDT) From: Nadav Amit X-Google-Original-From: Nadav Amit To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Andrew Morton , Mike Rapoport , Axel Rasmussen , Nadav Amit , Andrea Arcangeli , Andrew Cooper , Andy Lutomirski , Dave Hansen , David Hildenbrand , Peter Xu , Peter Zijlstra , Thomas Gleixner , Will Deacon , Yu Zhao , Nick Piggin Subject: [RFC PATCH 07/14] mm: do fix spurious page-faults for instruction faults Date: Mon, 18 Jul 2022 05:02:05 -0700 Message-Id: <20220718120212.3180-8-namit@vmware.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220718120212.3180-1-namit@vmware.com> References: <20220718120212.3180-1-namit@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nadav Amit The next patches might cause spurious instruction faults on x86. To prevent them from occurring too much, call flush_tlb_fix_spurious_fault() for page-faults on code fetching as well. The callee is expected to do a full flush, or whatever is necessary to avoid further TLB flushes. Cc: Andrea Arcangeli Cc: Andrew Cooper Cc: Andrew Morton Cc: Andy Lutomirski Cc: Dave Hansen Cc: David Hildenbrand Cc: Peter Xu Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: Yu Zhao Cc: Nick Piggin Signed-off-by: Nadav Amit --- mm/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index 31ec3f0071a2..152a47876c36 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4924,7 +4924,7 @@ static vm_fault_t handle_pte_fault(struct vm_fault *vmf) * This still avoids useless tlb flushes for .text page faults * with threads. */ - if (vmf->flags & FAULT_FLAG_WRITE) + if (vmf->flags & (FAULT_FLAG_WRITE|FAULT_FLAG_INSTRUCTION)) flush_tlb_fix_spurious_fault(vmf->vma, vmf->address); } unlock: -- 2.25.1