Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2935780imm; Mon, 24 Sep 2018 12:32:51 -0700 (PDT) X-Google-Smtp-Source: ACcGV63GMJcbQF36urCzYerY4MzQKCl1qd6/iInZawYmxuwuqTDxLV9ZIsAY06wn/cgJEkSnP2Fs X-Received: by 2002:a17:902:7d83:: with SMTP id a3-v6mr274003plm.0.1537817571384; Mon, 24 Sep 2018 12:32:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537817571; cv=none; d=google.com; s=arc-20160816; b=KSG/z05JkgXql8tmcFd2ZKu4yul1UU3JSyLaz5A3ZnEv9Cx3PFXJGd7j4uCw98DK0Y r/lMGsW6o0chGCZMv6H9vliW/G796yXMlZFSQWxgT3055PC+PhNBkBzOVwK+S2xlX8sY CPkdTazfaz7SumdbJpEVXUzbU/lMlFg/nXdCBlpYmAuBrJHchrznFWzcU1tCIpmygeme ZKn/V49NiojzpIRfqJX+Fv6L5ZKtoP1qZVXlwwi9/D1WncJGNhIA5yAOjs+/wZV4SIS/ UY6YpdP4OD7qw3H9nG4BaxSX0meSVEZLLFmnYSVgbmuVDRG9JZMimrc7WzQSTkSIkuRq g8HQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=KbmGbVIu+kgDOn/chkBeOH5vWrbJf9N23b4PNbNxdWg=; b=zuEyGikav2sWaQyUTSpX1HFhLld+A3Tl9Q4spQ0me/+ez4gvKOCanvxUeQkCcG029o xutjydHd/6Ggsq4swODjRYY9/is3gUi0M7l0TuL4WbM5ShOu3h11kJ1fuHCHl2KpOFwF NN79jqG8yOrwP9Ia8w3Mf0OBUfb4v1BYsxH7WOqBMY2qFTEXp9bhSlmiaouCQ9RjRE+I fk0xl8QNZ60cvTMFH/Pys1MICA43vMNyhGfqZNU9lgv0IyX8dnaeyfFN3ogbxBLzc9UV jnasTGFpLRtrwFWa41KLDKfgq1JgxAW13eMj7sONXMQe5G0sxfT+6bBOr5qhZAgjtk+0 GACQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s13-v6si156390pgi.73.2018.09.24.12.32.36; Mon, 24 Sep 2018 12:32:51 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729574AbeIYAlh (ORCPT + 99 others); Mon, 24 Sep 2018 20:41:37 -0400 Received: from shelob.surriel.com ([96.67.55.147]:36286 "EHLO shelob.surriel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726363AbeIYAlh (ORCPT ); Mon, 24 Sep 2018 20:41:37 -0400 Received: from imladris.surriel.com ([96.67.55.152]) by shelob.surriel.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1g4VkD-0002qj-Lj; Mon, 24 Sep 2018 14:38:05 -0400 From: Rik van Riel To: linux-kernel@vger.kernel.org Cc: peterz@infradead.org, kernel-team@fb.com, songliubraving@fb.com, mingo@kernel.org, will.deacon@arm.com, hpa@zytor.com, luto@kernel.org, npiggin@gmail.com Subject: [PATCH 0/7] x86/mm/tlb: make lazy TLB mode even lazier Date: Mon, 24 Sep 2018 14:37:52 -0400 Message-Id: <20180924183759.23955-1-riel@surriel.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linus asked me to come up with a smaller patch set to get the benefits of lazy TLB mode, so I spent some time trying out various permutations of the code, with a few workloads that do lots of context switches, and also happen to have a fair number of TLB flushes a second. Both of the workloads tested are memcache style workloads, running on two socket systems. One of the workloads has around 300,000 context switches a second, and around 19,000 TLB flushes. The first patch in the series, of always using lazy TLB mode, reduces CPU use around 1% on both Haswell and Broadwell systems. The rest of the series reduces the number of TLB flush IPIs by about 1,500 a second, resulting in a 0.2% reduction in CPU use, on top of the 1% seen by just enabling lazy TLB mode. These are the low hanging fruits in the context switch code. The big thing remaining is the reference count overhead of the lazy TLB mm_struct, but getting rid of that is rather a lot of code for a small performance gain. Not quite what Linus asked for :)