From nobody Wed Aug 23 01:18:12 2023 X-Original-To: dev-commits-src-all@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 4RVpJ13fzcz4qkvq for ; Wed, 23 Aug 2023 01:18:25 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 4RVpJ11kZ1z3GGw 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-f47.google.com with SMTP id 5b1f17b1804b1-3fed6c2a5cfso43731365e9.3 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=c6EXk2+EfDVcXLP7xfzS+W4QCPxZ+XQkZtr0A2I0uFEcjA2WoiEY8SidaeKWIfDTWM 9QLGQcc6fb3blrlHhQcL8VYzfWw/KbvhPgCc8KhKYufj/6xeudpeC5BU6V4GcuXss8yd hjLDPGq+vvlflA7yClo25JBsu7xA2LIz3F+i/mKIrI5OvzOzbnMmBzDoPglH58vNt7GE ZBSEhFH3P46S4u3RWLQUziNgpiLS4IbnKL8elOC3wMLo2l96bj6tw4EDCXUVaseNUBEX 3jk6xWTPCTftZ/DtcKVcvA8fChfNbxLfh/O2gNxSubpwPBfQH9FHcbzv375Wp6L3mu/Y VY4g== X-Gm-Message-State: AOJu0YxyBJawQFMdVU3HPZcTRkR1okEjZfgRA3QBYmq5Rjhip3kVYttm M+NKO5hQwHFzEFoTo8ZDgSiqcQ== 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 all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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: 4RVpJ11kZ1z3GGw 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