From nobody Mon Aug 28 21:49:16 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 4RZPNC47bJz4s0q1 for ; Mon, 28 Aug 2023 21:49:31 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (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 4RZPNC0rxZz4Qr5 for ; Mon, 28 Aug 2023 21:49:31 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-50078e52537so5659838e87.1 for ; Mon, 28 Aug 2023 14:49:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20221208.gappssmtp.com; s=20221208; t=1693259368; x=1693864168; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=l0odLDy+Lf6olE7tYrh62OFN1OmPAEc7Lu9r4pAzlVc=; b=zftfxVxnqzes7Cyk8HxgZUMefGvBpduVn2ezvTq/EmILfkhQXQhgc0nDcFiywIVnrh P9IXacjR0imHUIkGKJeBgQRKvSdtdG1e/VdSdlXmwnkgxMJ59obB20oYbjEWpGF74wAm DIcLvsqmCjqc8mTmHSOwHAx8yXuzIOQ2JXlfxwgqX7ZTQpcdyYv64Fi9N8wXqMqZXxud +E6QWYpS/9O4wRIEFY7UKmtLlK+Y7kTdiA9eUgWDkHiIp+Nj4LvY2PZxUoalzdIT21k2 UqdRFqKVAg+nldYyp/5Wtq+JE5q2Ydau0FbzpezkZq7DxRu/7smEeg/s55PQVhW/fNYO ewiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693259368; x=1693864168; 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=l0odLDy+Lf6olE7tYrh62OFN1OmPAEc7Lu9r4pAzlVc=; b=Hd3AIephJY4+DC3NY2f8/naOQ7MfTpg4J/TlZu4wn93I6e+mE0jE7Yw7uQ3yhvVKeo vbeix6ZNr0WG2JRUbcQuRpaqkkwJw1M+NRlCJKG2QPLYRqz2FWox2oyt0nEXN8xb/O/3 mvjgrPkwsQgusU+iJ0B8SsmhaeNjp4eylgcG740pA5mWl7rOemSrBpl4SbmdzCDWi0/w 5shBTwQRLZt9/f/SIqrq6FadTsmqEMXPCCPOnYZm5sKR/ro07l92hnjQt1+UPvl13q2B W3fkeISZCDljmNOM0UIzmemJheTDqnTgDcCiN88j1f9Zo83AI2hAZBOAD8l7LYFuFfSw X2eA== X-Gm-Message-State: AOJu0Yx60hGe4vOC3JLNMFB5HbIaCGfH+qFRhAO4RVU1EHSykUn26Ubs qNXKweesJxAQo/31lA3Pnqx64iBUCVXWOr60eHp2VA== X-Google-Smtp-Source: AGHT+IHFcgWnZIv603W8YcJ2/jCvdxm8pusfueUNQhc3iXX9OHVoBmmZX90y/DZWWFQcLbvYF/4YjXFvwtssA5EUkgI= X-Received: by 2002:a05:6512:3189:b0:4f7:6453:f3f1 with SMTP id i9-20020a056512318900b004f76453f3f1mr25325364lfe.15.1693259368375; Mon, 28 Aug 2023 14:49:28 -0700 (PDT) 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 References: <202308242029.37OKTmVs091755@gitrepo.freebsd.org> <92544c55-853c-5ab8-720b-b066e9cad5b0@FreeBSD.org> In-Reply-To: <92544c55-853c-5ab8-720b-b066e9cad5b0@FreeBSD.org> From: Warner Losh Date: Mon, 28 Aug 2023 15:49:16 -0600 Message-ID: Subject: Re: git: af93fea71038 - main - timerfd: Move implementation from linux compat to sys/kern To: Kyle Evans Cc: Jake Freeland , Alexey Dokuchaev , Warner Losh , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: multipart/alternative; boundary="0000000000002a3e31060402abb7" 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:2a00:1450::/32, country:US] X-Rspamd-Queue-Id: 4RZPNC0rxZz4Qr5 --0000000000002a3e31060402abb7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Aug 28, 2023 at 3:27=E2=80=AFPM Kyle Evans wro= te: > On 8/28/23 16:12, Jake Freeland wrote: > > On Mon, Aug 28, 2023 at 11:19=E2=80=AFAM Warner Losh > > wrote: > > > > Added cc for Jake > > > > On Mon, Aug 28, 2023 at 6:17=E2=80=AFAM Alexey Dokuchaev > > wrote: > > > > On Thu, Aug 24, 2023 at 08:29:48PM +0000, Warner Losh wrote: > > > commit af93fea710385b2b11f0cabd377e7ed6f3d97c34 > > > > > > timerfd: Move implementation from linux compat to sys/kern > > > > > > Move the timerfd impelemntation from linux compat code to > > sys/kern. > > > > Could you quickly summarize why we need these linuxish bits in > > FreeBSD? > > We've lived for years without it. Had expected to find the > > rationale > > in DR but alas. :( Thanks, > > > > > > The amount of software designed exclusively for Linux grows every day. > > Support for FreeBSD is almost always done on behalf of FreeBSD > > contributors, not the program developers. > > > > I do not want to play the cat-and-mouse game of constantly updating > > shims so we can support Linux software. I would rather take the > > sensible* parts of Linux and integrate them into core FreeBSD. > > > > My goal is not to turn FreeBSD into Linux, but rather to stay relevant > > in an age where most younger developers don't even know what BSD is. We > > should spend more resources on Linux program support, so younger > > audiences can use their Discord web apps natively on FreeBSD. > > > > Absorbing "linuxish" bits is controversial and I think that is a > > tragedy. In my eyes, having "linuxish" features is one of the best ways > > to ease the jump between Linux and FreeBSD, and minimize the maintenanc= e > > needed for FreeBSD support. > > > > +1. We're not in the game of adopting Linuxisms for the sake of it, but > rather where they make sense (either they're obviously a good thing, or > they simply make it easier to write portable scripts/code without > damaging the quality of our code, like long options). > > Remaining different for the sake of remaining different is way more > silly than adopting sensible features. > I agree with both points. In the early days (1.x-4.x) days we were rather proud we were NOT Linux. However, it set a bad precedent. Most of the new items that POSIX is standardizing, for example, come from Linux. Much of the software out there depends on these Linuxisms. In large part, over the past 5-10 or so years I've noticed the project has generally been more accepting of including Native version of Linux APIs (command line, system calls, glibc extentions, etc) to make it easier to just take a random bit of code off the net and use it. It's pragmatic more than anything else. It'= s motivated in large part for high-demand items (like Discord client), but it has the effect of lowering barriers to entry for people using FreeBSD. timerfd is one of these things that makes a lot of the 'special case' code for things that aren't file descriptors less half-baked. In many ways, this is very Unixy (old-school everything is a fd). While there are issues with everything as a 'fd' at times, there's many times, like event propagation, where the ability to view anything as a fd is quite powerful. That won't mean the onl= y way to do timer things are via a fd (dodging much of the objection to peopl= e trying to make everything a fd: it's too artificial). In this case, it bridges the domain rather than imposes a dogmatic view that everything has to *BE* a fd. Just convertible to a FD. timerfd is one of many ways to do this. As someone that wrote This also doesn't interfere with the old FreeBSD ways... So that's why I went ahead and committed this. It's a de-facto standard tha= t things need/want and it's nice to have some of the same tools that Linux has natively in FreeBSD. Linux stole Unix's system calls in the old days and created a fork of the Unix way. It's innovated, and it would be silly to ignore that innovation just because it was in Linux. And I totally acknowledge there were some issues with the import. I accept responsibility for not catching them. thankfully, Jake is working to address them and we have enough time before 14.0. I'm also making notes for what to do differently next time. One is clearly to loop Alexey into the process: I didn't think about it before the commit, but in hindsight it's really something I should have done. Warner > > * > > > https://ariadne.space/2021/06/06/actually-bsd-kqueue-is-a-mountain-of-tec= hnical-debt/ > < > https://ariadne.space/2021/06/06/actually-bsd-kqueue-is-a-mountain-of-tec= hnical-debt/ > > > > Jake Freeland > > > > Thanks, > > Kyle Evans > > --0000000000002a3e31060402abb7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Mon, Aug 28, 2023 at 3:27=E2=80=AF= PM Kyle Evans <kevans@freebsd.org<= /a>> wrote:
O= n 8/28/23 16:12, Jake Freeland wrote:
> On Mon, Aug 28, 2023 at 11:19=E2=80=AFAM Warner Losh <
imp@bsdimp.com
> <mailto:imp@bsd= imp.com>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0Added cc for Jake
>
>=C2=A0 =C2=A0 =C2=A0On Mon, Aug 28, 2023 at 6:17=E2=80=AFAM Alexey Doku= chaev <danfe@free= bsd.org
>=C2=A0 =C2=A0 =C2=A0<mailto:danfe@freebsd.org>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0On Thu, Aug 24, 2023 at 08:29:48PM +0= 000, Warner Losh wrote:
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 > commit af93fea710385b2b11f0cabd= 377e7ed6f3d97c34
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 >
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 >=C2=A0 =C2=A0timerfd: Move imple= mentation from linux compat to sys/kern
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 >
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 >=C2=A0 =C2=A0Move the timerfd im= pelemntation from linux compat code to
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sys/kern.
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Could you quickly summarize why we ne= ed these linuxish bits in
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FreeBSD?
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0We've lived for years without it.= =C2=A0 Had expected to find the
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rationale
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0in DR but alas. :(=C2=A0 Thanks,
>
>
> The amount of software designed exclusively=C2=A0for Linux grows every= day.
> Support for FreeBSD is almost always done on behalf of FreeBSD
> contributors, not the program developers.
>
> I do not want to play the cat-and-mouse game of constantly updating > shims so we can support Linux software. I would rather take the
> sensible* parts of Linux and integrate them into core FreeBSD.
>
> My goal is not to turn FreeBSD into Linux, but rather to stay relevant=
> in an age where most younger developers don't even know what BSD i= s. We
> should spend more resources on Linux program support, so younger
> audiences can use their Discord web apps natively on FreeBSD.
>
> Absorbing "linuxish" bits is controversial and I think that = is a
> tragedy. In my eyes, having "linuxish" features is one of th= e best ways
> to ease the jump between Linux and FreeBSD, and minimize the maintenan= ce
> needed for FreeBSD support.
>

+1. We're not in the game of adopting Linuxisms for the sake of it, but=
rather where they make sense (either they're obviously a good thing, or=
they simply make it easier to write portable scripts/code without
damaging the quality of our code, like long options).

Remaining different for the sake of remaining different is way more
silly than adopting sensible features.

= I agree with both points. In the early days (1.x-4.x) days we were rather
proud we were NOT Linux. However, it set a bad precedent. Most of = the
new items that POSIX is standardizing, for example, come from= Linux. Much
of the software out there depends on these Linuxisms= . In large part, over
the past 5-10 or so years I've noticed = the project has generally been more
accepting=C2=A0of including N= ative version of Linux APIs (command line, system
calls, glibc ex= tentions, etc) to make it easier to just take a random bit
of cod= e off the net and use it. It's pragmatic more than anything else. It= 9;s
motivated in large part for high-demand items (like Discord c= lient), but
it has the effect of lowering barriers to entry for p= eople using FreeBSD.

timerfd is one of these thing= s that makes a lot of the 'special case' code
for things = that aren't file descriptors less half-baked. In many ways, this is
very Unixy (old-school everything is a fd). While there are issues w= ith everything
as a 'fd' at times, there's many times= , like event propagation, where the
ability to view anything as a= fd is quite powerful. That won't mean the only
way to do tim= er things are via a fd (dodging much of the objection to people
t= rying to make everything a fd: it's too artificial). In this case, it b= ridges the
domain rather than imposes a dogmatic view that everyt= hing has to *BE* a
fd. Just convertible to a FD. timerfd is one o= f many ways to do this. As someone
that wrote=C2=A0
This also doesn't interfere with the old FreeBSD ways...

So that's why I went ahead and committed this. I= t's a de-facto standard that
things need/want and it's ni= ce to have some of the same tools that Linux
has natively in Free= BSD. Linux stole Unix's system calls in the old days
and crea= ted a fork of the Unix way. It's innovated, and it would be silly
=
to ignore that innovation just because it was in Linux.

=
And I totally acknowledge there were some issues with the import= . I
accept responsibility for not catching them. thankfully, Jake= is working
to address them and we have enough time before 14.0. = I'm also making
notes for what to do differently next time. O= ne is clearly to loop Alexey
into the process: I didn't think= about it before the commit, but in hindsight
it's really som= ething I should have done.

Warner
=C2=A0=
> *
> https://ar= iadne.space/2021/06/06/actually-bsd-kqueue-is-a-mountain-of-technical-debt/= <https:= //ariadne.space/2021/06/06/actually-bsd-kqueue-is-a-mountain-of-technical-d= ebt/>
> Jake Freeland
>

Thanks,

Kyle Evans

--0000000000002a3e31060402abb7--