From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id 056533945C3A for ; Wed, 16 Nov 2022 05:20:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 056533945C3A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x52f.google.com with SMTP id l11so24983969edb.4 for ; Tue, 15 Nov 2022 21:20:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SwgbiEeeMMnbaG3UZzsqZSG9bxgM78mraIWgBVVa8qM=; b=MJdCm6hPWwv9r4rjF7jc5AvbpY/zTaaCDP0GVEVrpZeLbM9f7X6fmmt2UqkYIb1+NS MtWhCfMOWPIPJA5ZFZBvJ3AM2FwMITND5Y1UyhEEWRm2iJ7t/mfP/86qJpRc6t3B3FtQ zvgBOh8CCs5EAwV7Eg3W+nNKp8bn+2kkRj6tK+lXxDMg+DF5B9zgRnCyY7BMnSsxvHTD sEI8j4lgsw9LfDmI2wLeLMWOCuswyYh3NosRezDq71dOdaUZ6zpKMDweFYxuzIhRjO1S T51UzmGyTiHIhycmXrklWOBCqCxP9IGwUlD1HpP0sVvh5cprOtUYfDznCxYpjD9bOb61 jqdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=SwgbiEeeMMnbaG3UZzsqZSG9bxgM78mraIWgBVVa8qM=; b=p/rZFwAMZLlombhUpedX986MvrPjCOR2U34thRjURS4FIwwmipmZYWGPyPu2xqdRjl liA7D/Rti5WIEaavgVWLKync61HKF93iC7X6WZW0P+grBcIEgd2Em1D2gpJcz7G58EWc LQ9FihJdDh9HAi+aWVVqSQG6N8cY0yc7YNkh9ScAn+3jY15lkVxUACKeZuelVPIzqEVk xYiYwv8rLLp2ggij2AUlWeyTPmgPVgHl1KSLffwRcrNUY8I4t0MI43Ijt9aqecntyhMW e03mqFT0PCcCTt6b5A0Cy1bLP0wBpssFzIm6dW7Uk1f2OrS0TRwLMv16NLaY6612CNSP jnvA== X-Gm-Message-State: ANoB5pmUmqe6Bkd4rEIirGlxRkSy3gORanztBCyNCBvItA2AKGreUUPE 6+ATq/Y1vK/qGu5YG41WlEiO8tzmHODZH7srK9Q= X-Google-Smtp-Source: AA0mqf6rijZmSdRleVvBYd+XcyKPPNxaP6lwOJC+pHxSH/wltJjL5QGZdzlmMfusRmCqYkgMDkuByLaOGWgK1E3HYQk= X-Received: by 2002:a05:6402:2294:b0:464:fa1:9dc3 with SMTP id cw20-20020a056402229400b004640fa19dc3mr18367097edb.343.1668576026149; Tue, 15 Nov 2022 21:20:26 -0800 (PST) MIME-Version: 1.0 References: <20221115033559.66827-1-hongyu.wang@intel.com> <9289c261-6aeb-2fdf-6599-4e8d77c30f8@ispras.ru> <7a41f182-1638-1a70-c0dc-b90b1985c31@ispras.ru> In-Reply-To: <7a41f182-1638-1a70-c0dc-b90b1985c31@ispras.ru> From: Hongyu Wang Date: Wed, 16 Nov 2022 13:15:08 +0800 Message-ID: Subject: Re: [PATCH] doc: Reword the description of -mrelax-cmpxchg-loop [PR 107676] To: Alexander Monakov Cc: Jonathan Wakely , Hongyu Wang , gcc-patches@gcc.gnu.org, hongtao.liu@intel.com, ubizjak@gmail.com Content-Type: multipart/mixed; boundary="00000000000051e35905ed8fa1cb" X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000051e35905ed8fa1cb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > When emitting a compare-and-swap loop for @ref{__sync Builtins} > and @ref{__atomic Builtins} lacking a native instruction, optimize > for the highly contended case by issuing an atomic load before the > @code{CMPXCHG} instruction, and using the @code{PAUSE} instruction > to save CPU power when restarting the loop. Thanks for the correction, it looks quite clear now! Here is the updated patch, ok for trunk? Alexander Monakov via Gcc-patches =E4=BA=8E2022=E5=B9=B411=E6=9C=8815=E6=97=A5=E5=91=A8=E4=BA=8C 21:59=E5=86= =99=E9=81=93=EF=BC=9A > > > On Tue, 15 Nov 2022, Jonathan Wakely wrote: > > > > How about the following: > > > > > > When emitting a compare-and-swap loop for @ref{__sync Builtins} > > > and @ref{__atomic Builtins} lacking a native instruction, optimize > > > for the highly contended case by issuing an atomic load before the > > > @code{CMPXCHG} instruction, and invoke the @code{PAUSE} instruction > > > when restarting the loop. > > > > That's much better, thanks. My only remaining quibble would be that > > "invoking" an instruction seems only marginally better than running > > one. Emitting? Issuing? Using? Adding? > > Right, it should be 'using'; let me also add 'to save CPU power': > > When emitting a compare-and-swap loop for @ref{__sync Builtins} > and @ref{__atomic Builtins} lacking a native instruction, optimize > for the highly contended case by issuing an atomic load before the > @code{CMPXCHG} instruction, and using the @code{PAUSE} instruction > to save CPU power when restarting the loop. > > Alexander --00000000000051e35905ed8fa1cb Content-Type: text/x-patch; charset="US-ASCII"; name="0001-doc-Reword-the-description-of-mrelax-cmpxchg-loop-PR.patch" Content-Disposition: attachment; filename="0001-doc-Reword-the-description-of-mrelax-cmpxchg-loop-PR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_laj6kavi0 RnJvbSBlODJmM2UwMzExNTQ4MGFjM2QwNTU4MTk2NThhMTA3MjQ5OTMyYzY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb25neXUgV2FuZyA8aG9uZ3l1LndhbmdAaW50ZWwuY29tPgpE YXRlOiBUdWUsIDE1IE5vdiAyMDIyIDExOjE2OjE3ICswODAwClN1YmplY3Q6IFtQQVRDSF0gZG9j OiBSZXdvcmQgdGhlIGRlc2NyaXB0aW9uIG9mIC1tcmVsYXgtY21weGNoZy1sb29wIFtQUgogMTA3 Njc2XQoKZ2NjL0NoYW5nZUxvZzoKCglQUiB0YXJnZXQvMTA3Njc2CgkqIGRvYy9pbnZva2UudGV4 aTogUmV3b3JkIHRoZSBkZXNjcmlwdGlvbiBvZgoJLW1yZWxheC1jbXB4Y2hnLWxvb3AuCi0tLQog Z2NjL2RvYy9pbnZva2UudGV4aSB8IDkgKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9kb2MvaW52b2tlLnRl eGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpCmluZGV4IDQwZjY2N2E2MzBhLi5iY2JlM2E3ZTQyMCAx MDA2NDQKLS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4aQorKysgYi9nY2MvZG9jL2ludm9rZS50ZXhp CkBAIC0zMzgwNSwxMCArMzM4MDUsMTEgQEAgcmVnaXN0ZXJzLgogCiBAaXRlbSAtbXJlbGF4LWNt cHhjaGctbG9vcAogQG9waW5kZXggbXJlbGF4LWNtcHhjaGctbG9vcAotUmVsYXggY21weGNoZyBs b29wIGJ5IGVtaXR0aW5nIGFuIGVhcmx5IGxvYWQgYW5kIGNvbXBhcmUgYmVmb3JlIGNtcHhjaGcs Ci1leGVjdXRlIHBhdXNlIGlmIGxvYWQgdmFsdWUgaXMgbm90IGV4cGVjdGVkLiBUaGlzIHJlZHVj ZXMgZXhjZXNzaXZlCi1jYWNobGluZSBib3VuY2luZyB3aGVuIGFuZCB3b3JrcyBmb3IgYWxsIGF0 b21pYyBsb2dpYyBmZXRjaCBidWlsdGlucwotdGhhdCBnZW5lcmF0ZXMgY29tcGFyZSBhbmQgc3dh cCBsb29wLgorV2hlbiBlbWl0dGluZyBhIGNvbXBhcmUtYW5kLXN3YXAgbG9vcCBmb3IgQHJlZntf X3N5bmMgQnVpbHRpbnN9CithbmQgQHJlZntfX2F0b21pYyBCdWlsdGluc30gbGFja2luZyBhIG5h dGl2ZSBpbnN0cnVjdGlvbiwgb3B0aW1pemUKK2ZvciB0aGUgaGlnaGx5IGNvbnRlbmRlZCBjYXNl IGJ5IGlzc3VpbmcgYW4gYXRvbWljIGxvYWQgYmVmb3JlIHRoZQorQGNvZGV7Q01QWENIR30gaW5z dHJ1Y3Rpb24sIGFuZCB1c2luZyB0aGUgQGNvZGV7UEFVU0V9IGluc3RydWN0aW9uCit0byBzYXZl IENQVSBwb3dlciB3aGVuIHJlc3RhcnRpbmcgdGhlIGxvb3AuCiAKIEBpdGVtIC1taW5kaXJlY3Qt YnJhbmNoPUB2YXJ7Y2hvaWNlfQogQG9waW5kZXggbWluZGlyZWN0LWJyYW5jaAotLSAKMi4xOC4x Cgo= --00000000000051e35905ed8fa1cb--