From patchwork Tue Oct 23 07:02:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 149429 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp352631ljp; Tue, 23 Oct 2018 00:17:21 -0700 (PDT) X-Google-Smtp-Source: ACcGV61BcXunV9Ha+OnQqEJHRu4GOCC2ijYOCgYDkCKKQBFpfoT0YQCqDGx1GSTyaWuvSCO4PZhR X-Received: by 2002:ac8:2837:: with SMTP id 52-v6mr46429245qtq.243.1540279041462; Tue, 23 Oct 2018 00:17:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540279041; cv=none; d=google.com; s=arc-20160816; b=s48ouI7dA34UMY+2ZnpZjyHTSBM9YX+JBCc0i7mHQrwMswYavm+tCL0YV+aR2kkRHn rBhXBWgqN6zG0wI1a12OmooPw/RoyxBAwusL0rA+c21wMkNI1rhAIKN1/doNgJ+J/kb6 ko7PxQzLYSnKUEFtiPVci4ZN7i+27apBbDVdRntBnkrpl0amzMDtxfm/jqnueLfTPvMA 2I68pr2ZvFWZ7dKtQK40X1z4lKEco3RIIbFb3rEDBeDXOFAStt0cL30FFs606sUB+OM2 3QdEmR5UYdL2JShRYbWJ4hxBE+QMYDkdyk5DKTRntmWYBeAT7ifb53pSjcloYAW83S2R 6u7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:message-id:date:to:from :dkim-signature; bh=B8RRMg1uQ8ryYToH2dc8tjt4aoExa387I9SemHFkL0I=; b=Cx7HWNMRq9/oL/qmCaYN3iFyTOTfn8KtU8fzKqA6e9QWdVAHOvINpKCWoSQXu85aN/ NCVTat+/vPmQXCOngQkkVDvwAt5nnt0p3y2lUJveeqC1Owlja+ruZke5uTU+POx5pJzJ BTvr3UOsTTqiy6YUiQxK/tQb2to/oLKnzmVbPQsn26g7eu967HqnWN3ZtKF39lxnnIp6 NHPobk2q9erHdVm3OFjgmbV6suJEYu0kIYcXEPPRusuHEE7E0Yl0fGN7fonG+NRqjtmz Sr/BXwL51W2lYXHCuzjIGcqBjf0UjQMaRJC5mJ1Hz6Ho6avOGON9NeWf0IcukCdWnzXP wh+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="ROcy/TaK"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id a50si166445qvd.186.2018.10.23.00.17.21 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 23 Oct 2018 00:17:21 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="ROcy/TaK"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:38526 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEqwK-000178-Ul for patch@linaro.org; Tue, 23 Oct 2018 03:17:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59417) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEqm3-0008Ne-Tf for qemu-devel@nongnu.org; Tue, 23 Oct 2018 03:06:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEqie-0003uh-F8 for qemu-devel@nongnu.org; Tue, 23 Oct 2018 03:03:17 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:52518) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gEqie-0003g6-0H for qemu-devel@nongnu.org; Tue, 23 Oct 2018 03:03:12 -0400 Received: by mail-wm1-x333.google.com with SMTP id 189-v6so532958wmw.2 for ; Tue, 23 Oct 2018 00:02:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=B8RRMg1uQ8ryYToH2dc8tjt4aoExa387I9SemHFkL0I=; b=ROcy/TaKIM2Jwd0bBYGWGDPkYAFAxXCUu3jK6IMCv38+LgLwG9Sti029ToY2TvyjYo 5btELnY47wV3jvigh0ZYArW7fUvrn+Hh4/c5w3olcdJY4VsGnnXIZ5UVMgEirDEcMiI1 yThHx9/X0qJNbF5dKBtiGKnj8otuvWNQC4RNQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=B8RRMg1uQ8ryYToH2dc8tjt4aoExa387I9SemHFkL0I=; b=I2mx1V5ZSkC6uSML0Q+MPdg45xKuSqnUvYx8m66sIGKWHibvAOev8Xd83xEzY5OVhH KU2v540jx55u+coW2eEqS//j2nAhqUN5bKMf2UQsbfggx1tyfn7eWStJrmA6AQQ6LfHp 8gYIlMpVcD6kWYhlwF2sIemheM8ndRC6mMJXM1/czgJe+FKxlaHXpFZqQaIcnU6/9BNe N4HtTnWsFtcI4dqwBqn90OJo0qo/Ue+yxCd1feQ9VTvq+wtfRrdjLhGrXyxG/ne9hzx+ iCaEo91tipaMYRS1D10RDouBDQiP2qsqjSw5P8hj6PSV+6pnkFKTvAN+Eg5q2ozq7ys/ Rjpw== X-Gm-Message-State: ABuFfoiAiXvTgwuJDm6mr+d2QwMhngN0UY83n4yQzWMoGr+yLE35YrtY khNz7q0bi3aoqI1NiaBRzX3dERXuNUk= X-Received: by 2002:a1c:8181:: with SMTP id c123-v6mr15599405wmd.3.1540278176855; Tue, 23 Oct 2018 00:02:56 -0700 (PDT) Received: from cloudburst.twiddle.net.ASUS (host86-153-40-62.range86-153.btcentralplus.com. [86.153.40.62]) by smtp.gmail.com with ESMTPSA id t13-v6sm258355wrn.22.2018.10.23.00.02.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 23 Oct 2018 00:02:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 23 Oct 2018 08:02:42 +0100 Message-Id: <20181023070253.6407-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::333 Subject: [Qemu-devel] [PATCH 00/10] cputlb: track dirty tlbs and general cleanup X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: cota@braap.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The motivation here is reducing the total overhead. Before a few patches went into target-arm.next, I measured total tlb flush overhead for aarch64 at 25%. This appears to reduce the total overhead to about 5% (I do need to re-run the control tests, not just watch perf top as I'm doing now). The final patch is somewhat of an RFC. I'd like to know what benchmark was used when putting in pending_tlb_flushes, and I have not done any archaeology to find out. I suspect that it does make any measurable difference beyond tlb_c.dirty, and I think the code is a bit cleaner without it. r~ Richard Henderson (10): cputlb: Move tlb_lock to CPUTLBCommon cputlb: Remove tcg_enabled hack from tlb_flush_nocheck cputlb: Move cpu->pending_tlb_flush to env->tlb_c.pending_flush cputlb: Split large page tracking per mmu_idx cputlb: Move env->vtlb_index to env->tlb_d.vindex cputlb: Merge tlb_flush_nocheck into tlb_flush_by_mmuidx_async_work cputlb: Merge tlb_flush_page into tlb_flush_page_by_mmuidx cputlb: Count "partial" and "elided" tlb flushes cputlb: Filter flushes on already clean tlbs cputlb: Remove tlb_c.pending_flushes include/exec/cpu-defs.h | 51 +++++- include/exec/cputlb.h | 2 +- include/qom/cpu.h | 6 - accel/tcg/cputlb.c | 354 +++++++++++++++----------------------- accel/tcg/translate-all.c | 8 +- 5 files changed, 184 insertions(+), 237 deletions(-) -- 2.17.2