From nobody Wed Aug 23 01:18:12 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RVpJ14mppz4qkvy for ; Wed, 23 Aug 2023 01:18:25 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RVpJ139SKz3GN8 for ; Wed, 23 Aug 2023 01:18:25 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-3ff006454fdso3184425e9.1 for ; Tue, 22 Aug 2023 18:18:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692753503; x=1693358303; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=orfvJmWr4h/2GrxqZlbpWPxqG/RlFVA6ld6PfpRkby4=; b=FiDyKmoDkn8swFRrwpwne+1GhnKcn3XO3n0Lz4cr62augo58XSuWPaPcrA1IBzVrVS YPsOBJEs7zMha+j/ajaHkR0QNmeE/YIqMT2cmROfCL97tY59InT7HaAJnlmOWxhpUxxb 9EZKLLl7T6ftQGVDHPYtr1VQP/9fG3nIOLE0C+xk1naykXYJEEjXdMHQD7tgUsiXW2Ot seTK0WsE5YrBt3jdL1hWegIsM5txa/t1UyOA92gR9ec66YeJxYICD0X0IZU0jU+EGOGC MCUtbwpoNFEZXeKWIj1LYYL+GSiHLO7fjzQ9UEQJK+P30Gzegmk7AIP62SsgsoXIHjhJ BhLA== X-Gm-Message-State: AOJu0Yw2aDN3eandYreI+jRxhQmxu4J1dbNxTpqra/SXHTn4SdhTHi3+ 0MCRiNkJRTUAWNxuK9yB1Q04EQ== X-Google-Smtp-Source: AGHT+IGnq/OfjQCLEWV2ZaacgXgED+L9Iasbh3ouK/44RLXlZcdrK03lBGPVpd4nK+v1CcMhkvv4Ng== X-Received: by 2002:a05:600c:ce:b0:3fe:f726:4a94 with SMTP id u14-20020a05600c00ce00b003fef7264a94mr3307108wmm.14.1692753503458; Tue, 22 Aug 2023 18:18:23 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.246]) by smtp.gmail.com with ESMTPSA id l13-20020a5d410d000000b003142e438e8csm17317217wrp.26.2023.08.22.18.18.22 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Aug 2023 18:18:23 -0700 (PDT) Content-Type: text/plain; charset=utf-8 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\)) Subject: Re: git: 4a69fc16a583 - main - Add membarrier(2) From: Jessica Clarke In-Reply-To: <202308230007.37N07cOK082906@gitrepo.freebsd.org> Date: Wed, 23 Aug 2023 02:18:12 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <748B7A01-5011-44EE-BB04-282AE96F9B5B@freebsd.org> References: <202308230007.37N07cOK082906@gitrepo.freebsd.org> To: Konstantin Belousov X-Mailer: Apple Mail (2.3731.600.7) X-Rspamd-Queue-Id: 4RVpJ139SKz3GN8 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] On 23 Aug 2023, at 01:07, Konstantin Belousov wrote: >=20 > The branch main has been updated by kib: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3D4a69fc16a583face922319c476f3e739= d9ce9140 >=20 > commit 4a69fc16a583face922319c476f3e739d9ce9140 > Author: Konstantin Belousov > AuthorDate: 2021-10-07 21:10:07 +0000 > Commit: Konstantin Belousov > CommitDate: 2023-08-23 00:02:21 +0000 >=20 > Add membarrier(2) >=20 > This is an attempt at clean-room implementation of the Linux' > membarrier(2) syscall. For documentation, you would need to read > both membarrier(2) Linux man page, the comments in Linux > kernel/sched/membarrier.c implementation and possibly look at > actual uses. >=20 > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > Differential revision: https://reviews.freebsd.org/D32360 > --- > ... > diff --git a/sys/sys/membarrier.h b/sys/sys/membarrier.h > new file mode 100644 > index 000000000000..958b769da23e > --- /dev/null > +++ b/sys/sys/membarrier.h > @@ -0,0 +1,70 @@ > +/*- > + * Copyright (c) 2021 The FreeBSD Foundation > + * > + * This software were developed by Konstantin Belousov = > + * under sponsorship from the FreeBSD Foundation. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above = copyright > + * notice, this list of conditions and the following disclaimer in = the > + * documentation and/or other materials provided with the = distribution. > + * > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' = AND > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE = LIABLE > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF > + * SUCH DAMAGE. > + */ > + > +#ifndef __SYS_MEMBARRIER_H__ > +#define __SYS_MEMBARRIER_H__ > + > +#include > + > +/* > + * The enum membarrier_cmd values are bits. The MEMBARRIER_CMD_QUERY > + * command returns a bitset indicating which commands are supported. > + * Also the value of MEMBARRIER_CMD_QUERY is zero, so it is > + * effectively not returned by the query. > + */ > +enum membarrier_cmd { > + MEMBARRIER_CMD_QUERY =3D 0x00000000, > + MEMBARRIER_CMD_GLOBAL =3D 0x00000001, > + MEMBARRIER_CMD_SHARED =3D MEMBARRIER_CMD_GLOBAL, > + MEMBARRIER_CMD_GLOBAL_EXPEDITED =3D 0x00000002, > + MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED =3D 0x00000004, > + MEMBARRIER_CMD_PRIVATE_EXPEDITED =3D 0x00000008, > + MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED =3D 0x00000010, > + MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE =3D 0x00000020, > + MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE =3D 0x00000040, > + > + /* > + * RSEQ constants are defined for source compatibility but are > + * not yes supported, MEMBARRIER_CMD_QUERY does not return > + * them in the mask. > + */ > + MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ =3D 0x00000080, > + MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ =3D 0x00000100, Or we could not define them. membarrier(2) came into Linux in 4.3, but these two are only since 5.10. Defining something we may or may not ever implement that code should have compatibility for anyway seems like a bad idea. Or should we provide all of the Linux UAPI to FreeBSD processes with ENOSYS stubs? Clearly not. So why is this special? IMO these should not be added unless we have an rseq implementation, which has itself received several objections on the review. I also don=E2=80=99t see why this is suddenly being landed now without = warning. There=E2=80=99s been no activity by you on the review since just over a = year ago. And landing new syscalls days before the 14 branch point doesn=E2=80=99= t seem like great practice to me... Jess