From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9FB7C369AB for ; Tue, 15 Apr 2025 08:23:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 819E02800BC; Tue, 15 Apr 2025 04:23:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7C7712800BD; Tue, 15 Apr 2025 04:23:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 668492800BC; Tue, 15 Apr 2025 04:23:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 3FA7D2800BD for ; Tue, 15 Apr 2025 04:23:07 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 04D6B5CAEC for ; Tue, 15 Apr 2025 08:23:06 +0000 (UTC) X-FDA: 83335588014.14.03D0DF5 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by imf24.hostedemail.com (Postfix) with ESMTP id 21E63180008 for ; Tue, 15 Apr 2025 08:23:04 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VmQUdstO; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744705385; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=/LM0HUav2Q1fMOW7qgC0lCajEm80166T7aqg0cBB8wI=; b=ZAvUbVD3iCnTjVlxk0Kfo5PmMuIFnGmybvmpjS2r5C89D/l0ny+fDLIyarKnURsdgbMG4m L0hdK9SASrTPBhfO4UhQeFtdW/CbErbYqyL/mYzobqLfctUPGCEb/7DfvZaUHNS2JL3JkH TGzIDvw6WwYosYQsMmz++EMzg2mtTRU= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VmQUdstO; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744705385; a=rsa-sha256; cv=none; b=XlGc+TyJdxEyUYaN0+2QbS/mtCamb3xpKOmdxiRVHMDVv9dqxSJpkL8IfObDIpRRrVJLHf MsWLRrtQZPKvggLEvZFKZSdtaIR8FU7MiPTdVgU6p0iYcqi61LRuKnTNrbZMp1HbGshqUl tmrp0QSKay+qaArocC5s9HreEl4rJlk= Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-ac41514a734so871636366b.2 for ; Tue, 15 Apr 2025 01:23:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744705383; x=1745310183; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/LM0HUav2Q1fMOW7qgC0lCajEm80166T7aqg0cBB8wI=; b=VmQUdstOcd35ROCfnw92D+E5rx5X3Ntt21ZZgNIpEUq1wQdcu9QdQ7OTgHF5jUAsxs 8R8FzNvPVlg5XCj7P5kISbRbpw8cPdtVzxpJVFg+g11ZmZK5Nf3KgMcD55PAi9FJ+/hs CchA5D8GU4M855enaayBRbm9wFB2ufNn4dfbiCUmeCmiu4eudO1txZKdAY3V5wrSY1Tu 645C9bDk8GzqhtBgYXJLqhQbBkvQuJn4hS2fYU65spis/VSoo1bsATR+saiPVkZo021y BkbuMNowCiOMyjqTPMUnQyTOBKn5SPNeqg7TY+QZqdUi1JY8br1qAYeG9DYa5VFjaTl/ 7ImA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744705383; x=1745310183; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/LM0HUav2Q1fMOW7qgC0lCajEm80166T7aqg0cBB8wI=; b=QdIx+txT8Q0DEUnR80kcBWlE3EnmyBCs6N/qDUH2X4e8ir7629KJ4m8gsG7WpP95gq 2PjZhoNnQby1lR3BC4j6rtE5I/0TXgr/Wu0MEufNCJFLF1qqUAorbFQAEthqIYeu/2FI vNsiMuzTu78dSmhxErF+E54m6ijtGz30mQPtSaPA6XWiscOWneUCFy73TBZsdtDZQf48 9x4bOmV2IKOBqR/8g17t/MbxtTFM8w2JKlqLOXCJSjLLJxbBVT4v2sdZQncjYhaQx55q qFZLUwtxp5wp+bg+8t8yV/CZFydeJSaRMqTULCCY6HhawKkI1VApcvBYmkQ/hSyMb0wj uLBQ== X-Forwarded-Encrypted: i=1; AJvYcCVhZ15/vscF3SloKxQQ+Kw9AimYDpCDoVd1KnNSt9U37XC49IPGGkntVER+qPLlJ++kfCPDHys70g==@kvack.org X-Gm-Message-State: AOJu0YwVr13mV1aXUMAOSzFrxsmDcVXhbMLlnxv9UQpweY9dVa5OTVMX idWdXaIc0vBKprHRIWK+2+zIy16TyMLR1u7kuWbA0OEJOpUQsObBdfDGR+IWXjOXbjghf49opiQ Hwz6oNs1btHqwD6IZcl2ejCj2cu0= X-Gm-Gg: ASbGncuoVfky5WwJin074DwXp8NRtMLphtONGcOMCX9HwPOjsBQConMgZK29psYaH50 PlupMhk3niGNdzca4P6CaeZirVJkZmAa57/0AUpAnf1HpfiJh+Qt9zfdDF6c/6AB22WSeJt1nVa YCp1dKI138UV5iBhUGFnGC X-Google-Smtp-Source: AGHT+IGmJm7+/cXuw85SmGRSK0S3YA9Ht9fEozVXJMo7CTZAfp8f0dGRISMbljGaOD4NKCRW3mxaHiTqI8Wez43aFq4= X-Received: by 2002:a17:907:3f14:b0:ac3:47b1:d210 with SMTP id a640c23a62f3a-acad36a5447mr1265724266b.39.1744705383211; Tue, 15 Apr 2025 01:23:03 -0700 (PDT) MIME-Version: 1.0 References: <20250414034607.762653-1-ankur.a.arora@oracle.com> <20250414034607.762653-2-ankur.a.arora@oracle.com> <20250414110259.GF5600@noisy.programming.kicks-ass.net> <87h62qymrp.fsf@oracle.com> In-Reply-To: <87h62qymrp.fsf@oracle.com> From: Mateusz Guzik Date: Tue, 15 Apr 2025 10:22:51 +0200 X-Gm-Features: ATxdqUFQ1i_IPYBsSskFI2am1yWynFM-guwYl0usRugAki6GwXw2jDG7ZVdFH6s Message-ID: Subject: Re: [PATCH v3 1/4] x86/clear_page: extend clear_page*() for multi-page clearing To: Ankur Arora Cc: Peter Zijlstra , Ingo Molnar , linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, luto@kernel.org, paulmck@kernel.org, rostedt@goodmis.org, tglx@linutronix.de, willy@infradead.org, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam01 X-Stat-Signature: kg6fgw6odeqdtbnw388cfu5d6naaazch X-Rspam-User: X-Rspamd-Queue-Id: 21E63180008 X-HE-Tag: 1744705384-989276 X-HE-Meta: U2FsdGVkX1/zZZgZ99F7wqAcijxbCrmCgVA/NM53nit2QLDe3ySCmBv/B2tE57kjjL7gWpT73mnwWJ7XyTjJBB3CCSiT2++CbXSZz1kv8u//rRQa4n3YDd5A25chdZMWPk5Rnde9fncMk5dGGSNNu7J/K3v62RXHhRvbMpUvqzgfkM4Ok590PMk2lDr03rVhUYxLPorH/7Bk73mAim3+LvPQ7+KDAfDJaeweGtRd2QkMZX48TDL2og7FzaXiMSHQmYxBuX68SoOo9zC4Ocv9Zw12LSwWqGVum6Q5t1+KA7aQEQ5BF0Ozra7ZAdb6FmL3MQ1I3rglkZj7TTgBQa1pZ1bc2tLHKNTW6GHL90HqQg12t8QpGT0wKqHrMAMakEnxMAOGHVf/8qi/U2GBaoqe6zh1uekHHqj3hoRZKPUV6syFRGoDqrkA/fCb71f8cIqLd2hBjOIHwlXcdQW0oOLIHm/f23oTQB0hVWIdZwCpbIYM+JcfDLNL2xhb9V3N8gB1bzt+VUuonJFYQOP+YGv9JZ84/N7O1I1DiEsNx9j0SpsHP9hWETtDt0kPqRriwxWc3AF6zz2wnbEyDZ6+yRslzAy8n1wugg3lT1ugGR8ORLRMFnSnuZNZLI+ZjegVZuBM9dH5/QPMDFwSMbxD0g8mIvPWLEQ7M1PByNwByhuiT5QBvbUffTR5qADNLESHX3/+5YJiOVKAp5hon9WBqsddmOc+wqjHLVY6At8Bk9nMuYSO5RNAIkIPNcPFrBONtX9PQ00/mjYxG0r63URYY1MLGT2MBxOq6BJJ+kVsoUa0ERpBZhl2jTfs4A0oHhChqchWj4x3e+GR+98LkcTWKRaWt6QTqSm+lJz7QTng+KSqObduHLhaU1yvwbrmtlybMFOzQx5Zt4zewijLktOAquoW8VLI1Dd2MuyHrkq2wjaOBn6PzMPIdTxegCwPSGM0ccOffMnqArJjbDQcOd8XDsD gYVlgm2/ 6DbMXQRQ0MCnGZU4yFiaGLOePviEhxaGlEk8rY8BKVuzLXWavpugVweSqTdZ/qf7K0NS51D0j8zEv3u8Ok1v6hY2HOJcnqqNihFyT0dHYWkFcUqAFyme3zjZprgr3DCzGSR6kFQmK47iolRJUx5RnS4TK5687crjiLTis8laVmsPnFzfKtgprFc5eoqyh4jyjAUnEpIGTjsGU3B7owQVXkTbWEQnKh0L2QRfiw8qIZ6ly6IUoobKtwrHbzCsIiIB59FUlKv3+QG96eEAmqruIIPPpGPs6RPgxYQTA8TrCL70UhBde3PjSwoeeEfTkuSyVTrjHpy041LJKmQ/NdKKAAmfPAY4IOMnmnfbgbbQD4sF2wyFtzKJPdNgdgXiYNmLnjAWewgLHjMw4pjCu6RweBz4OMzIj+ADahELj X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Apr 15, 2025 at 8:14=E2=80=AFAM Ankur Arora wrote: > > > Mateusz Guzik writes: > > With that sucker out of the way, an optional quest is to figure out if > > rep stosq vs rep stosb makes any difference for pages -- for all I know > > rep stosq is the way. This would require testing on quite a few uarchs > > and I'm not going to blame anyone for not being interested. > > IIRC some recent AMD models (Rome?) did expose REP_GOOD but not ERMS. > The uarch does not have it or the bit magically fails to show up? Worst case, should rep stosb be faster on that uarch, the kernel can pretend the bit is set. > > Let's say nobody bothered OR rep stosb provides a win. In that case thi= s > > can trivially ALTERNATIVE between rep stosb and rep stosq based on ERMS= , > > no func calls necessary. > > We shouldn't need any function calls for ERMS and REP_GOOD. > > I think something like this untested code should work: > > asm volatile( > ALTERNATIVE_2("call clear_pages_orig", > "rep stosb", X86_FEATURE_REP_GOOD, > "shrl $3,%ecx; rep stosq", X86_FEATURE_ERMS, > : "+c" (size), "+D" (addr), ASM_CALL_CONSTRAINT > : "a" (0))) > That's what I'm suggesting, with one difference: whack clear_pages_orig altogether. --=20 Mateusz Guzik