From nobody Sat Jun 01 13:51:37 2024 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 4Vs1cm6kMsz5MwGS for ; Sat, 01 Jun 2024 13:51:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vs1cl6pRnz4Cy1 for ; Sat, 1 Jun 2024 13:51:51 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-a6266ffdba8so252121066b.1 for ; Sat, 01 Jun 2024 06:51:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1717249910; x=1717854710; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vVfUH4KgjCDjLxOQbSZkz92eRg9VaWN+g3Z8NQupgFs=; b=Nx9dGErY26pcjOPFetEJIb96+7JeMj4XpcXLTJbc8M4ULfJ1Z5fDk7KvbyIMts3Lqu AgxJcJ+oxIc7NC/89+yTC2PgIh3Z//lx9vk4Ae8mlaqFYaUBsA0167ucDrDDfkq//Vm9 mz5LLfZFoBXR6Sw7vG4DcmIHzMgzYx2mMiA1wyv4BjnSDvZZdeI9BFW6wAVV136ZoNkK qiTvMiLWogyf7LtRPh5s4qoVCwU8eLo08AHn1EkG0yK4mUFcvtVeANO85f8chRlYyj1l tYGNocIhEYHNKQ4l6Yi7i0z/6LngGN6vuKC6Rr+iYxAZOYachnoYfzmCzT25uN4CJVDK 4sjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717249910; x=1717854710; 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=vVfUH4KgjCDjLxOQbSZkz92eRg9VaWN+g3Z8NQupgFs=; b=xVJgnrS/iHIwR/h3OKSZpxwqnnmKJr6Hos3Yv9l2j+6xpyqLH4nhpPHWy1xPN7whr+ h7slNt/7ck4dFlsYZh9S68iZlAuQy/UYgXgFc6VG10dN5xwRIUReh3HkPvTqPf2EA7pp 0+2gSJP3DVtA69U7JW0iR4wLCKVPn6ciHKxx1XboxnidBhcSpQyvGg8l+DY5TI+mpZj+ ZOqZS1fMtmMh8JRYNSQtGX1ZbySCLQmVXcl3KAdrFWI4MvEMCQJw2t9oB4BCL/3MbZBq t+qZ2NmbMgqN+gvGStNgO/QVhFP+jc/6bFAq6hQBXPUqJ1bjB82wx3GVBeb6tGZn+0Vn kuhA== X-Forwarded-Encrypted: i=1; AJvYcCVo9yTtEmavNgd4Frpl7dEe1SIfuV3ardtii9mulJncMbqt2j1KPV92WxKD0kt7q76lJzlIeMuuB0IocfyCgSwi2xoPjThAEwGpItbjCK2x X-Gm-Message-State: AOJu0Ywm1Wl7Viy76X3k291PILE/imB7rOPNV5dUcM5no6B8a0NqZrDe HGaHr90a//pEvVGxSxzpGB2J7JEV/JazCmYSbpcNUz1PYCaDMrrxBZqfSuv/QRMkNseimCXJ76L 18LnR9rQn6fxlrBAbBrXKYl3aLr11uHlMsnQTew== X-Google-Smtp-Source: AGHT+IHQJANmp+916C0l21OerYzyMlGKBtPtvdRB/Y3jl4HQuMFagLzesEsPwY997MetwJGZTAqdb52UJ86FxarYYZw= X-Received: by 2002:a17:907:c92a:b0:a66:197f:a47 with SMTP id a640c23a62f3a-a681c8d9e9amr282176766b.0.1717249909762; Sat, 01 Jun 2024 06:51:49 -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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 References: <202405311447.44VEl1G1078199@gitrepo.freebsd.org> <20240601133156.8EB804B0@slippy.cwsent.com> In-Reply-To: <20240601133156.8EB804B0@slippy.cwsent.com> From: Warner Losh Date: Sat, 1 Jun 2024 09:51:37 -0400 Message-ID: Subject: Re: git: 108de784513d - main - Redefine CLOCK_BOOTTIME to alias CLOCK_MONOTONIC, not CLOCK_UPTIME To: Cy Schubert Cc: Nuno Teixeira , Warner Losh , src-committers , "" , "" Content-Type: multipart/alternative; boundary="000000000000dcc9a90619d4664c" 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: 4Vs1cl6pRnz4Cy1 --000000000000dcc9a90619d4664c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jun 1, 2024 at 9:31=E2=80=AFAM Cy Schubert wrote: > In message > om> > , Warner Losh writes: > > --0000000000000d72080619d34a39 > > Content-Type: text/plain; charset=3D"UTF-8" > > Content-Transfer-Encoding: quoted-printable > > > > On Sat, Jun 1, 2024, 4:37=3DE2=3D80=3DAFAM Nuno Teixeira > wr=3D > > ote: > > > > > Hello, > > > > > > Having issues building graphics/mesa-dri: > > > > > > ../src/intel/common/xe/intel_gem.c:72:9: error: duplicate case value > '4' > > > 72 | case CLOCK_BOOTTIME: > > > | ^ > > > /usr/include/sys/_clock_id.h:81:25: note: expanded from macro > > > 'CLOCK_BOOTTIME' > > > 81 | #define CLOCK_BOOTTIME CLOCK_MONOTONIC > > > | ^ > > > /usr/include/sys/_clock_id.h:56:26: note: expanded from macro > > > 'CLOCK_MONOTONIC' > > > 56 | #define CLOCK_MONOTONIC 4 > > > | ^ > > > ../src/intel/common/xe/intel_gem.c:66:9: note: previous case defined > here > > > 66 | case CLOCK_MONOTONIC: > > > | ^ > > > /usr/include/sys/_clock_id.h:56:26: note: expanded from macro > > > 'CLOCK_MONOTONIC' > > > 56 | #define CLOCK_MONOTONIC 4 > > > | ^ > > > 1 error generated. > > > > > > > Mesa needs to be updated to not assume these are distinct values. > > You should be able to resolve this with, > > --- src/intel/common/xe/intel_gem.c.orig 2024-05-22 > 09:48:39.000000000 -0700 > +++ src/intel/common/xe/intel_gem.c 2024-06-01 06:28:22.268439000 -07= 00 > @@ -69,8 +69,10 @@ > #endif > case CLOCK_REALTIME: > #ifdef CLOCK_BOOTTIME > +#if CLOCK_BOOTTIME !=3D CLOCK_MONOTONIC > case CLOCK_BOOTTIME: > #endif > +#endif > #ifdef CLOCK_TAI > case CLOCK_TAI: > #endif > Yea, that should do it. I was going to look at this when I got back from BSDcan (mostly because my talk is this morning), but thanks for beating me to it. I woke up grump and it was bugging me on the walk over to the conference I was a little short in my first reply, but since you proposed a fix, I feel less guilty... :) Thanks! Warner Warner Warner > -- > Cheers, > Cy Schubert > FreeBSD UNIX: Web: https://FreeBSD.org > NTP: Web: https://nwtime.org > > e^(i*pi)+1=3D0 > > > > > > Warner > > > > > > > Thanks > > > > > > Warner Losh escreveu (sexta, 31/05/2024 =3DC3=3DA0(= s) > 15:47=3D > > ): > > > > > >> The branch main has been updated by imp: > > >> > > >> URL: > > >> > https://cgit.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73= e=3D > > 26b5b54caa > > >> > > >> commit 108de784513d87bbe850e7b003a73e26b5b54caa > > >> Author: Val Packett > > >> AuthorDate: 2024-05-31 14:45:02 +0000 > > >> Commit: Warner Losh > > >> CommitDate: 2024-05-31 14:45:02 +0000 > > >> > > >> Redefine CLOCK_BOOTTIME to alias CLOCK_MONOTONIC, not CLOCK_UPTI= ME > > >> > > >> The suspend-awareness situation with monotonic clocks across > platfor=3D > > ms > > >> is kind of a mess, let's try not making it worse. > > >> > > >> On Linux, CLOCK_MONOTONIC does NOT count suspended time, and > > >> CLOCK_BOOTTIME was introduced to INCLUDE suspended time. > > >> > > >> On OpenBSD, CLOCK_MONOTONIC DOES count suspended time, and > > >> CLOCK_UPTIME > > >> was introduced to EXCLUDE suspended time. > > >> > > >> On macOS, it's the same as OpenBSD, but with CLOCK_UPTIME_RAW. > > >> > > >> Right now, we do not have a monotonic clock that counts suspende= d > > >> time. > > >> We have CLOCK_UPTIME as a distinct ID alias, and CLOCK_BOOTTIME > as a > > >> preprocessor alias, both being effectively `CLOCK_MONOTONIC` for > now=3D > > . > > >> > > >> When we introduce a suspend-aware clock in the future, it would > make=3D > > a > > >> lot more sense to do it the OpenBSD/macOS way, i.e. to make > > >> CLOCK_MONOTONIC include suspended time and make CLOCK_UPTIME > exclude > > >> it, > > >> because that's what the name CLOCK_UPTIME implies: a deviation > from > > >> the > > >> default intended for the uptime command to allow it to only show > the > > >> time the system was actually up and not suspended. > > >> > > >> Let's change the define right now to make sure software using th= e > > >> define > > >> would not end up using the ID of the wrong clock in the future, > and > > >> fix > > >> the IDs in the Linux compat code to match the expected changes > too. > > >> > > >> See https://bugzilla.mozilla.org/show_bug.cgi?id=3D3D1824084 > > >> for more discussion. > > >> > > >> Fixes: 155f15118a77 ("clock_gettime: Add Linux aliases > for > > >> CLOCK_*") > > >> Fixes: 25ada637362d ("Map Linux CLOCK_BOOTTIME to nativ= e > > >> CLOCK_UPTIME.") > > >> Sponsored by: https://www.patreon.com/valpackett > > >> Reviewed by: kib, imp > > >> Differential Revision: https://reviews.freebsd.org/D39270 > > >> --- > > >> sys/compat/linux/linux_time.c | 6 +++--- > > >> sys/sys/_clock_id.h | 2 +- > > >> 2 files changed, 4 insertions(+), 4 deletions(-) > > >> > > >> diff --git a/sys/compat/linux/linux_time.c > b/sys/compat/linux/linux_time=3D > > .c > > >> index e9e5cf075210..f4dd26dd3d2a 100644 > > >> --- a/sys/compat/linux/linux_time.c > > >> +++ b/sys/compat/linux/linux_time.c > > >> @@ -287,7 +287,7 @@ linux_to_native_clockid(clockid_t *n, clockid_t = l) > > >> *n =3D3D CLOCK_REALTIME; > > >> break; > > >> case LINUX_CLOCK_MONOTONIC: > > >> - *n =3D3D CLOCK_MONOTONIC; > > >> + *n =3D3D CLOCK_UPTIME; > > >> break; > > >> case LINUX_CLOCK_PROCESS_CPUTIME_ID: > > >> *n =3D3D CLOCK_PROCESS_CPUTIME_ID; > > >> @@ -300,10 +300,10 @@ linux_to_native_clockid(clockid_t *n, clockid_= t > l) > > >> break; > > >> case LINUX_CLOCK_MONOTONIC_COARSE: > > >> case LINUX_CLOCK_MONOTONIC_RAW: > > >> - *n =3D3D CLOCK_MONOTONIC_FAST; > > >> + *n =3D3D CLOCK_UPTIME_FAST; > > >> break; > > >> case LINUX_CLOCK_BOOTTIME: > > >> - *n =3D3D CLOCK_UPTIME; > > >> + *n =3D3D CLOCK_MONOTONIC; > > >> break; > > >> case LINUX_CLOCK_REALTIME_ALARM: > > >> case LINUX_CLOCK_BOOTTIME_ALARM: > > >> diff --git a/sys/sys/_clock_id.h b/sys/sys/_clock_id.h > > >> index 47a551428dc3..728346a0f0ab 100644 > > >> --- a/sys/sys/_clock_id.h > > >> +++ b/sys/sys/_clock_id.h > > >> @@ -78,7 +78,7 @@ > > >> * Linux compatible names. > > >> */ > > >> #if __BSD_VISIBLE > > >> -#define CLOCK_BOOTTIME CLOCK_UPTIME > > >> +#define CLOCK_BOOTTIME CLOCK_MONOTONIC > > >> #define CLOCK_REALTIME_COARSE CLOCK_REALTIME_FAST > > >> #define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC_FAST > > >> #endif > > >> > > >> > > > > > > -- > > > Nuno Teixeira > > > FreeBSD UNIX: Web: https://FreeBSD.org > > > > > > > --0000000000000d72080619d34a39 > > Content-Type: text/html; charset=3D"UTF-8" > > Content-Transfer-Encoding: quoted-printable > > > >


class=3D3D"gmail_quote">=3D > >
On Sat, Jun 1, 2024, > 4:37=3DE2=3D80=3DAFAM =3D > > Nuno Teixeira < target=3D3D"_blank">=3D > > eduardo@freebsd.org> wrote:
class=3D3D"gmail_quot=3D > > e" style=3D3D"margin:0 0 0 .8ex;border-left:1px #ccc > solid;padding-left:1ex">=3D > >
Hello,

Having issues > buildin=3D > > g > graphics/mesa-dri:

../src/intel/common/xe/intel_= =3D > > gem.c:72:9: error: duplicate case value '4'
=3DC2=3DA0 =3DC2= =3DA072 | > =3D > > =3DC2=3DA0 =3DC2=3DA0case CLOCK_BOOTTIME:
=3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 | =3DC2=3DA0 > =3DC2=3DA0 =3D > > =3DC2=3DA0 =3DC2=3DA0 ^
/usr/include/sys/_clock_id.h:81:25: note: ex= panded > from =3D > > macro 'CLOCK_BOOTTIME'
=3DC2=3DA0 =3DC2=3DA081 | #define > CLOCK_BOOTTIME =3D > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0CLOCK_MONOTONIC=3DC2=3DA0 =3DC2=3DA0 > =3DC2=3DA0 |=3D > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3D > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > ^
/usr/include/sys/_clock_id.h:56=3D > > :26: note: expanded from macro 'CLOCK_MONOTONIC'
=3DC2=3DA0 > =3DC2=3DA056=3D > > | #define CLOCK_MONOTONIC =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 = 4
=3DC2=3DA0 > =3DC2=3DA0 =3D > > =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3D > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > ^
../src/intel/common/xe/i=3D > > ntel_gem.c:66:9: note: previous case defined here
=3DC2=3DA0 =3DC2= =3DA066 | > =3DC2=3D > > =3DA0 =3DC2=3DA0case CLOCK_MONOTONIC:
=3DC2=3DA0 =3DC2=3DA0 =3DC2=3D= A0 | =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3D > > =3DA0 =3DC2=3DA0 ^
/usr/include/sys/_clock_id.h:56:26: note: expande= d from > mac=3D > > ro 'CLOCK_MONOTONIC'
=3DC2=3DA0 =3DC2=3DA056 | #define > CLOCK_MONOTONIC =3D > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 4
=3DC2=3DA0 =3DC2=3DA0 = =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3D > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0= =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3DA0 =3D > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 ^
1 error > generated.
=3D > >

class=3D3D"gmail_quo=3D > > te">
Mesa needs to be updated to not assume these are distinct > values.<=3D > > /div>

Warner
=3DC2=3DA0
class=3D3D"=3D > > gmail_quote" style=3D3D"margin:0 0 0 .8ex;border-left:1px #ccc > solid;padding-=3D > > left:1ex">
Thanks
clear=3D3D"=3D > > all">

dir=3D > > =3D3D"ltr" class=3D3D"gmail_attr">Warner Losh < imp@freebsd=3D > > .org" rel=3D3D"noreferrer" target=3D3D"_blank">imp@freebsd.org> > escreveu=3D > > (sexta, 31/05/2024 =3DC3=3DA0(s) 15:47):
class=3D3D"gmail_q=3D > > uote" style=3D3D"margin:0px 0px 0px 0.8ex;border-left:1px solid > rgb(204,204,2=3D > > 04);padding-left:1ex">The branch main has been updated by imp:
> >
> > URL: https://cgit.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe=3D > > 850e7b003a73e26b5b54caa" rel=3D3D"noreferrer noreferrer" > target=3D3D"_blank">ht=3D > > tps:// > cgit.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73e26b5b= =3D > > 54caa
> >
> > commit 108de784513d87bbe850e7b003a73e26b5b54caa
> > Author:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Val Packett <val@packett.cool= >
> > AuthorDate: 2024-05-31 14:45:02 +0000
> > Commit:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Warner Losh <imp@FreeBSD.org&= gt;
> > CommitDate: 2024-05-31 14:45:02 +0000
> >
> > =3DC2=3DA0 =3DC2=3DA0 Redefine CLOCK_BOOTTIME to alias CLOCK_MONOTONIC,= not > CLOCK_U=3D > > PTIME
> >
> > =3DC2=3DA0 =3DC2=3DA0 The suspend-awareness situation with monotonic cl= ocks > across =3D > > platforms
> > =3DC2=3DA0 =3DC2=3DA0 is kind of a mess, let's try not making it wo= rse.
> >
> > =3DC2=3DA0 =3DC2=3DA0 On Linux, CLOCK_MONOTONIC does NOT count suspende= d time, > and<=3D > > br> > > =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME was introduced to INCLUDE suspende= d > time.
> >
> > =3DC2=3DA0 =3DC2=3DA0 On OpenBSD, CLOCK_MONOTONIC DOES count suspended = time, and > CL=3D > > OCK_UPTIME
> > =3DC2=3DA0 =3DC2=3DA0 was introduced to EXCLUDE suspended time.
> >
> > =3DC2=3DA0 =3DC2=3DA0 On macOS, it's the same as OpenBSD, but with > CLOCK_UPTIME=3D > > _RAW.
> >
> > =3DC2=3DA0 =3DC2=3DA0 Right now, we do not have a monotonic clock that = counts > suspe=3D > > nded time.
> > =3DC2=3DA0 =3DC2=3DA0 We have CLOCK_UPTIME as a distinct ID alias, and > CLOCK_BOOTTI=3D > > ME as a
> > =3DC2=3DA0 =3DC2=3DA0 preprocessor alias, both being effectively > `CLOCK_MONOTONIC` =3D > > for now.
> >
> > =3DC2=3DA0 =3DC2=3DA0 When we introduce a suspend-aware clock in the fu= ture, it > wou=3D > > ld make a
> > =3DC2=3DA0 =3DC2=3DA0 lot more sense to do it the OpenBSD/macOS way, i.= e. to > make > r> > > =3DC2=3DA0 =3DC2=3DA0 CLOCK_MONOTONIC include suspended time and make > CLOCK_UPTIME =3D > > exclude it,
> > =3DC2=3DA0 =3DC2=3DA0 because that's what the name CLOCK_UPTIME imp= lies: a > devi=3D > > ation from the
> > =3DC2=3DA0 =3DC2=3DA0 default intended for the uptime command to allow = it to > only s=3D > > how the
> > =3DC2=3DA0 =3DC2=3DA0 time the system was actually up and not suspended= .
> >
> > =3DC2=3DA0 =3DC2=3DA0 Let's change the define right now to make sur= e > software u=3D > > sing the define
> > =3DC2=3DA0 =3DC2=3DA0 would not end up using the ID of the wrong clock = in the > futur=3D > > e, and fix
> > =3DC2=3DA0 =3DC2=3DA0 the IDs in the Linux compat code to match the exp= ected > change=3D > > s too.
> >
> > =3DC2=3DA0 =3DC2=3DA0 See https://bugzilla.mozilla.org/show_bug.cgi?id=3D > > =3D3D1824084" rel=3D3D"noreferrer noreferrer" target=3D3D"_blank"> > https://bugzill=3D > > a.mozilla.org/show_bug.cgi?id=3D3D1824084
> > =3DC2=3DA0 =3DC2=3DA0 for more discussion.
> >
> > =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0= =3DC2=3DA0 155f15118a77 > ("=3D > > clock_gettime: Add Linux aliases for CLOCK_*")
> > =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0= =3DC2=3DA0 25ada637362d > ("=3D > > Map Linux CLOCK_BOOTTIME to native CLOCK_UPTIME.")
> > =3DC2=3DA0 =3DC2=3DA0 Sponsored by:=3DC2=3DA0 =3DC2=3DA0 https://www.patreon.com/=3D > > valpackett" rel=3D3D"noreferrer noreferrer" target=3D3D"_blank"> > https://www.pat=3D > > reon.com/valpackett
> > =3DC2=3DA0 =3DC2=3DA0 Reviewed by:=3DC2=3DA0 =3DC2=3DA0 kib, imp
> > =3DC2=3DA0 =3DC2=3DA0 Differential Revision:=3DC2=3DA0 https://reviews.freeb=3D > > sd.org/D39270" rel=3D3D"noreferrer noreferrer" target=3D3D"_blank"> > https://revi=3D > > ews.freebsd.org/D39270
> > ---
> > =3DC2=3DA0sys/compat/linux/linux_time.c | 6 +++---
> > =3DC2=3DA0sys/sys/_clock_id.h=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= 0 =3DC2=3DA0 =3DC2=3DA0| 2 > +- > > > > =3DC2=3DA02 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/sys/compat/linux/linux_time.c > b/sys/compat/linux/linux_time.c<=3D > > br> > > index e9e5cf075210..f4dd26dd3d2a 100644
> > --- a/sys/compat/linux/linux_time.c
> > +++ b/sys/compat/linux/linux_time.c
> > @@ -287,7 +287,7 @@ linux_to_native_clockid(clockid_t *n, clockid_t > l)
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 *n =3D3D > CLOCK_REALTI=3D > > ME;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 break;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC:=
> > -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0*n =3D3D > CLOCK_MONOTO=3D > > NIC;
> > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0*n =3D3D > CLOCK_UPTIME=3D > > ;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 break;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_PROCESS_CP= UTIME_ID:
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 *n =3D3D > CLOCK_PROCES=3D > > S_CPUTIME_ID;
> > @@ -300,10 +300,10 @@ linux_to_native_clockid(clockid_t *n, clockid_t > l) > > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 break;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC_= COARSE:
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC_= RAW:
> > -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0*n =3D3D > CLOCK_MONOTO=3D > > NIC_FAST;
> > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0*n =3D3D > CLOCK_UPTIME=3D > > _FAST;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 break;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME:<= br> > > -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0*n =3D3D > CLOCK_UPTIME=3D > > ;
> > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0*n =3D3D > CLOCK_MONOTO=3D > > NIC;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 =3DC2=3DA0 break;
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_REALTIME_A= LARM:
> > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME_A= LARM:
> > diff --git a/sys/sys/_clock_id.h b/sys/sys/_clock_id.h
> > index 47a551428dc3..728346a0f0ab 100644
> > --- a/sys/sys/_clock_id.h
> > +++ b/sys/sys/_clock_id.h
> > @@ -78,7 +78,7 @@
> > =3DC2=3DA0 * Linux compatible names.
> > =3DC2=3DA0 */
> > =3DC2=3DA0#if __BSD_VISIBLE
> > -#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC2= =3DA0 =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3D > > =3DA0 =3DC2=3DA0 CLOCK_UPTIME
> > +#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC2= =3DA0 =3DC2=3DA0 =3DC2=3DA0 > =3DC2=3D > > =3DA0 =3DC2=3DA0 CLOCK_MONOTONIC
> > =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_REAL= TIME_COARSE=3DC2=3DA0 > =3DC2=3DA0=3D > > CLOCK_REALTIME_FAST
> > =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_MONO= TONIC_COARSE=3DC2=3DA0 > CLOCK=3D > > _MONOTONIC_FAST
> > =3DC2=3DA0#endif
> >
> >


class=3D3D"gmail_signature_pre=3D > > fix">--
dir=3D3D"l=3D > > tr">
Nuno > Teixeira
> color=3D3D"#888888"> > > FreeBSD UNIX:=3DC2=3DA0 <eduardo@FreeBSD.org>=3DC2=3DA0 =3DC2=3DA= 0Web:=3DC2=3DA0 > > ref=3D3D"https://FreeBSD.org" rel=3D3D"noreferrer noreferrer" > target=3D3D"_blank"=3D > > >https://FreeBSD.org
> >
> >
> > > > --0000000000000d72080619d34a39-- > > > > > --000000000000dcc9a90619d4664c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Sat, Jun 1, 2024 at 9:31=E2=80=AFA= M Cy Schubert <Cy.Schubert@= cschubert.com> wrote:
In message <CANCZdfpMvorgKYx6pCL7_q6BW3AqZSDwryKHg_cV+yt_E-= FbOQ@mail.gmail.c
om>
, Warner Losh writes:
> --0000000000000d72080619d34a39
> Content-Type: text/plain; charset=3D"UTF-8"
> Content-Transfer-Encoding: quoted-printable
>
> On Sat, Jun 1, 2024, 4:37=3DE2=3D80=3DAFAM Nuno Teixeira <eduardo@freebsd.org&g= t; wr=3D
> ote:
>
> > Hello,
> >
> > Having issues building graphics/mesa-dri:
> >
> > ../src/intel/common/xe/intel_gem.c:72:9: error: duplicate case va= lue '4'
> >=C2=A0 =C2=A0 72 |=C2=A0 =C2=A0 case CLOCK_BOOTTIME:
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^ > > /usr/include/sys/_clock_id.h:81:25: note: expanded from macro
> > 'CLOCK_BOOTTIME'
> >=C2=A0 =C2=A0 81 | #define CLOCK_BOOTTIME=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 CLOCK_MONOTONIC
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0^
> > /usr/include/sys/_clock_id.h:56:26: note: expanded from macro
> > 'CLOCK_MONOTONIC'
> >=C2=A0 =C2=A0 56 | #define CLOCK_MONOTONIC=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A04
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0^
> > ../src/intel/common/xe/intel_gem.c:66:9: note: previous case defi= ned here
> >=C2=A0 =C2=A0 66 |=C2=A0 =C2=A0 case CLOCK_MONOTONIC:
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^ > > /usr/include/sys/_clock_id.h:56:26: note: expanded from macro
> > 'CLOCK_MONOTONIC'
> >=C2=A0 =C2=A0 56 | #define CLOCK_MONOTONIC=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A04
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0^
> > 1 error generated.
> >
>
> Mesa needs to be updated to not assume these are distinct values.

You should be able to resolve this with,

--- src/intel/common/xe/intel_gem.c.orig=C2=A0 =C2=A0 =C2=A0 =C2=A0 2024-05= -22 09:48:39.000000000 -0700
+++ src/intel/common/xe/intel_gem.c=C2=A0 =C2=A0 =C2=A02024-06-01 06:28:22.= 268439000 -0700
@@ -69,8 +69,10 @@
=C2=A0#endif
=C2=A0 =C2=A0 case CLOCK_REALTIME:
=C2=A0#ifdef CLOCK_BOOTTIME
+#if CLOCK_BOOTTIME !=3D CLOCK_MONOTONIC
=C2=A0 =C2=A0 case CLOCK_BOOTTIME:
=C2=A0#endif
+#endif
=C2=A0#ifdef CLOCK_TAI
=C2=A0 =C2=A0 case CLOCK_TAI:
=C2=A0#endif

Yea, that should do it. I = was going to look at this when I got back from BSDcan (mostly because
=
my talk is this morning), but thanks for beating me to it.=C2=A0 I wok= e up grump and it was bugging me
on the=C2=A0walk over to the con= ference I was a little short in my first reply, but since you proposed a
fix, I feel less guilty... :) Thanks!

Warn= er

Warner

Warner=C2=A0
--
Cheers,
Cy Schubert <Cy.Schubert@cschubert.com>
FreeBSD UNIX:=C2=A0 <cy@FreeBSD.org>=C2=A0 =C2=A0Web:=C2=A0 https://FreeB= SD.org
NTP:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<cy@nwtime.org>=C2=A0 =C2=A0 Web:=C2=A0 https://nwt= ime.org

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 e^(i*pi)+1=3D0


>
> Warner
>
>
> > Thanks
> >
> > Warner Losh <imp@freebsd.org> escreveu (sexta, 31/05/2024 =3DC3=3DA0(s) 15:47= =3D
> ):
> >
> >> The branch main has been updated by imp:
> >>
> >> URL:
> >> https://c= git.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73e=3D > 26b5b54caa
> >>
> >> commit 108de784513d87bbe850e7b003a73e26b5b54caa
> >> Author:=C2=A0 =C2=A0 =C2=A0Val Packett <val@packett.cool&g= t;
> >> AuthorDate: 2024-05-31 14:45:02 +0000
> >> Commit:=C2=A0 =C2=A0 =C2=A0Warner Losh <imp@FreeBSD.org>= ;
> >> CommitDate: 2024-05-31 14:45:02 +0000
> >>
> >>=C2=A0 =C2=A0 =C2=A0Redefine CLOCK_BOOTTIME to alias CLOCK_MON= OTONIC, not CLOCK_UPTIME
> >>
> >>=C2=A0 =C2=A0 =C2=A0The suspend-awareness situation with monot= onic clocks across platfor=3D
> ms
> >>=C2=A0 =C2=A0 =C2=A0is kind of a mess, let's try not makin= g it worse.
> >>
> >>=C2=A0 =C2=A0 =C2=A0On Linux, CLOCK_MONOTONIC does NOT count s= uspended time, and
> >>=C2=A0 =C2=A0 =C2=A0CLOCK_BOOTTIME was introduced to INCLUDE s= uspended time.
> >>
> >>=C2=A0 =C2=A0 =C2=A0On OpenBSD, CLOCK_MONOTONIC DOES count sus= pended time, and
> >> CLOCK_UPTIME
> >>=C2=A0 =C2=A0 =C2=A0was introduced to EXCLUDE suspended time.<= br> > >>
> >>=C2=A0 =C2=A0 =C2=A0On macOS, it's the same as OpenBSD, bu= t with CLOCK_UPTIME_RAW.
> >>
> >>=C2=A0 =C2=A0 =C2=A0Right now, we do not have a monotonic cloc= k that counts suspended
> >> time.
> >>=C2=A0 =C2=A0 =C2=A0We have CLOCK_UPTIME as a distinct ID alia= s, and CLOCK_BOOTTIME as a
> >>=C2=A0 =C2=A0 =C2=A0preprocessor alias, both being effectively= `CLOCK_MONOTONIC` for now=3D
> .
> >>
> >>=C2=A0 =C2=A0 =C2=A0When we introduce a suspend-aware clock in= the future, it would make=3D
>=C2=A0 a
> >>=C2=A0 =C2=A0 =C2=A0lot more sense to do it the OpenBSD/macOS = way, i.e. to make
> >>=C2=A0 =C2=A0 =C2=A0CLOCK_MONOTONIC include suspended time and= make CLOCK_UPTIME exclude
> >> it,
> >>=C2=A0 =C2=A0 =C2=A0because that's what the name CLOCK_UPT= IME implies: a deviation from
> >> the
> >>=C2=A0 =C2=A0 =C2=A0default intended for the uptime command to= allow it to only show the
> >>=C2=A0 =C2=A0 =C2=A0time the system was actually up and not su= spended.
> >>
> >>=C2=A0 =C2=A0 =C2=A0Let's change the define right now to m= ake sure software using the
> >> define
> >>=C2=A0 =C2=A0 =C2=A0would not end up using the ID of the wrong= clock in the future, and
> >> fix
> >>=C2=A0 =C2=A0 =C2=A0the IDs in the Linux compat code to match = the expected changes too.
> >>
> >>=C2=A0 =C2=A0 =C2=A0See https:/= /bugzilla.mozilla.org/show_bug.cgi?id=3D3D1824084
> >>=C2=A0 =C2=A0 =C2=A0for more discussion.
> >>
> >>=C2=A0 =C2=A0 =C2=A0Fixes:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1= 55f15118a77 ("clock_gettime: Add Linux aliases for
> >> CLOCK_*")
> >>=C2=A0 =C2=A0 =C2=A0Fixes:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 2= 5ada637362d ("Map Linux CLOCK_BOOTTIME to native
> >> CLOCK_UPTIME.")
> >>=C2=A0 =C2=A0 =C2=A0Sponsored by:=C2=A0 =C2=A0https:/= /www.patreon.com/valpackett
> >>=C2=A0 =C2=A0 =C2=A0Reviewed by:=C2=A0 =C2=A0 kib, imp
> >>=C2=A0 =C2=A0 =C2=A0Differential Revision:=C2=A0 http= s://reviews.freebsd.org/D39270
> >> ---
> >>=C2=A0 sys/compat/linux/linux_time.c | 6 +++---
> >>=C2=A0 sys/sys/_clock_id.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| 2 +-
> >>=C2=A0 2 files changed, 4 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/sys/compat/linux/linux_time.c b/sys/compat/linux= /linux_time=3D
> .c
> >> index e9e5cf075210..f4dd26dd3d2a 100644
> >> --- a/sys/compat/linux/linux_time.c
> >> +++ b/sys/compat/linux/linux_time.c
> >> @@ -287,7 +287,7 @@ linux_to_native_clockid(clockid_t *n, clo= ckid_t l)
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= *n =3D3D CLOCK_REALTIME;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_MONOTONIC:<= br> > >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = =3D3D CLOCK_MONOTONIC;
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = =3D3D CLOCK_UPTIME;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_PROCESS_CPU= TIME_ID:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= *n =3D3D CLOCK_PROCESS_CPUTIME_ID;
> >> @@ -300,10 +300,10 @@ linux_to_native_clockid(clockid_t *n, c= lockid_t l)
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_MONOTONIC_C= OARSE:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_MONOTONIC_R= AW:
> >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = =3D3D CLOCK_MONOTONIC_FAST;
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = =3D3D CLOCK_UPTIME_FAST;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_BOOTTIME: > >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = =3D3D CLOCK_UPTIME;
> >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = =3D3D CLOCK_MONOTONIC;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break;
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_REALTIME_AL= ARM:
> >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_BOOTTIME_AL= ARM:
> >> diff --git a/sys/sys/_clock_id.h b/sys/sys/_clock_id.h
> >> index 47a551428dc3..728346a0f0ab 100644
> >> --- a/sys/sys/_clock_id.h
> >> +++ b/sys/sys/_clock_id.h
> >> @@ -78,7 +78,7 @@
> >>=C2=A0 =C2=A0* Linux compatible names.
> >>=C2=A0 =C2=A0*/
> >>=C2=A0 #if __BSD_VISIBLE
> >> -#define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_BOOTTIME=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_UPTIME
> >> +#define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_BOOTTIME=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_MONOTONIC
> >>=C2=A0 #define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_REALTIME_COARS= E=C2=A0 =C2=A0CLOCK_REALTIME_FAST
> >>=C2=A0 #define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_MONOTONIC_COAR= SE=C2=A0 CLOCK_MONOTONIC_FAST
> >>=C2=A0 #endif
> >>
> >>
> >
> > --
> > Nuno Teixeira
> > FreeBSD UNIX:=C2=A0 <eduardo@FreeBSD.org>=C2=A0 =C2=A0Web:= =C2=A0 https://FreeBSD.org
> >
>
> --0000000000000d72080619d34a39
> Content-Type: text/html; charset=3D"UTF-8"
> Content-Transfer-Encoding: quoted-printable
>
> <div dir=3D3D"ltr"><div dir=3D3D"auto">= ;<div><br><br><div class=3D3D"gmail_quote"&g= t;=3D
> <div dir=3D3D"ltr" class=3D3D"gmail_attr">On= Sat, Jun 1, 2024, 4:37=3DE2=3D80=3DAFAM =3D
> Nuno Teixeira &lt;<a href=3D3D"mailto:eduardo@freebsd.org" target= =3D3D"_blank">=3D
> eduardo@freeb= sd.org</a>&gt; wrote:<br></div><blockquote cla= ss=3D3D"gmail_quot=3D
> e" style=3D3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p= adding-left:1ex">=3D
> <div dir=3D3D"ltr"><div>Hello,</div><di= v><br></div><div>Having issues buildin=3D
> g graphics/mesa-dri:</div><div><br></div><d= iv>../src/intel/common/xe/intel_=3D
> gem.c:72:9: error: duplicate case value &#39;4&#39;<br>= =3DC2=3DA0 =3DC2=3DA072 | =3D
> =3DC2=3DA0 =3DC2=3DA0case CLOCK_BOOTTIME:<br>=3DC2=3DA0 =3DC2=3D= A0 =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3D
> =3DC2=3DA0 =3DC2=3DA0 ^<br>/usr/include/sys/_clock_id.h:81:25: n= ote: expanded from =3D
> macro &#39;CLOCK_BOOTTIME&#39;<br>=3DC2=3DA0 =3DC2=3DA08= 1 | #define CLOCK_BOOTTIME =3D
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0CLOCK_MONOTONIC&= lt;br>=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 |=3D
>=C2=A0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= 0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D
> =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 ^<br&g= t;/usr/include/sys/_clock_id.h:56=3D
> :26: note: expanded from macro &#39;CLOCK_MONOTONIC&#39;<br= >=3DC2=3DA0 =3DC2=3DA056=3D
>=C2=A0 | #define CLOCK_MONOTONIC =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= =3DA0 4<br>=3DC2=3DA0 =3DC2=3DA0 =3D
> =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 = =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D
> =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= 0 ^<br>../src/intel/common/xe/i=3D
> ntel_gem.c:66:9: note: previous case defined here<br>=3DC2=3DA0 = =3DC2=3DA066 | =3DC2=3D
> =3DA0 =3DC2=3DA0case CLOCK_MONOTONIC:<br>=3DC2=3DA0 =3DC2=3DA0 = =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D
> =3DA0 =3DC2=3DA0 ^<br>/usr/include/sys/_clock_id.h:56:26: note: = expanded from mac=3D
> ro &#39;CLOCK_MONOTONIC&#39;<br>=3DC2=3DA0 =3DC2=3DA056 = | #define CLOCK_MONOTONIC =3D
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 4<br>=3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D
> =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= 0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 ^<br>1 error generated.</div= ></div></blockquote></div>=3D
> </div><div dir=3D3D"auto"><br></div>= <div dir=3D3D"auto"><div class=3D3D"gmail_quo=3D > te"><div>Mesa needs to be updated to not assume these ar= e distinct values.<=3D
> /div><div><br></div><div>Warner</div>= <div>=3DC2=3DA0</div><blockquote class=3D3D"=3D
> gmail_quote" style=3D3D"margin:0 0 0 .8ex;border-left:1px #c= cc solid;padding-=3D
> left:1ex"><div dir=3D3D"ltr"><div><fo= nt color=3D3D"#888888">Thanks<br clear=3D3D"=3D
> all"></font></div><div></div></div&= gt;<br><div class=3D3D"gmail_quote"><div dir=3D > =3D3D"ltr" class=3D3D"gmail_attr">Warner Losh &= amp;lt;<a href=3D3D"mailto:imp@freebsd=3D
> .org" rel=3D3D"noreferrer" target=3D3D"_blank"= ;>imp@freebsd.org</a>&gt; escreveu=3D
>=C2=A0 (sexta, 31/05/2024 =3DC3=3DA0(s) 15:47):<br></div>&l= t;blockquote class=3D3D"gmail_q=3D
> uote" style=3D3D"margin:0px 0px 0px 0.8ex;border-left:1px so= lid rgb(204,204,2=3D
> 04);padding-left:1ex">The branch main has been updated by imp:= <br>
> <br>
> URL: <a href=3D3D"
https= ://cgit.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe=3D
> 850e7b003a73e26b5b54caa" rel=3D3D"noreferrer noreferrer"= ; target=3D3D"_blank">ht=3D
> tps://cgit.Fre= eBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73e26b5b=3D
> 54caa</a><br>
> <br>
> commit 108de784513d87bbe850e7b003a73e26b5b54caa<br>
> Author:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Val Packett &lt;val@packett= .cool&gt;<br>
> AuthorDate: 2024-05-31 14:45:02 +0000<br>
> Commit:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Warner Losh &lt;imp@FreeBSD= .org&gt;<br>
> CommitDate: 2024-05-31 14:45:02 +0000<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 Redefine CLOCK_BOOTTIME to alias CLOCK_MONOTONIC= , not CLOCK_U=3D
> PTIME<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 The suspend-awareness situation with monotonic c= locks across =3D
> platforms<br>
> =3DC2=3DA0 =3DC2=3DA0 is kind of a mess, let&#39;s try not making = it worse.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 On Linux, CLOCK_MONOTONIC does NOT count suspend= ed time, and<=3D
> br>
> =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME was introduced to INCLUDE suspend= ed time.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 On OpenBSD, CLOCK_MONOTONIC DOES count suspended= time, and CL=3D
> OCK_UPTIME<br>
> =3DC2=3DA0 =3DC2=3DA0 was introduced to EXCLUDE suspended time.<br&= gt;
> <br>
> =3DC2=3DA0 =3DC2=3DA0 On macOS, it&#39;s the same as OpenBSD, but = with CLOCK_UPTIME=3D
> _RAW.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 Right now, we do not have a monotonic clock that= counts suspe=3D
> nded time.<br>
> =3DC2=3DA0 =3DC2=3DA0 We have CLOCK_UPTIME as a distinct ID alias, and= CLOCK_BOOTTI=3D
> ME as a<br>
> =3DC2=3DA0 =3DC2=3DA0 preprocessor alias, both being effectively `CLOC= K_MONOTONIC` =3D
> for now.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 When we introduce a suspend-aware clock in the f= uture, it wou=3D
> ld make a<br>
> =3DC2=3DA0 =3DC2=3DA0 lot more sense to do it the OpenBSD/macOS way, i= .e. to make<b=3D
> r>
> =3DC2=3DA0 =3DC2=3DA0 CLOCK_MONOTONIC include suspended time and make = CLOCK_UPTIME =3D
> exclude it,<br>
> =3DC2=3DA0 =3DC2=3DA0 because that&#39;s what the name CLOCK_UPTIM= E implies: a devi=3D
> ation from the<br>
> =3DC2=3DA0 =3DC2=3DA0 default intended for the uptime command to allow= it to only s=3D
> how the<br>
> =3DC2=3DA0 =3DC2=3DA0 time the system was actually up and not suspende= d.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 Let&#39;s change the define right now to mak= e sure software u=3D
> sing the define<br>
> =3DC2=3DA0 =3DC2=3DA0 would not end up using the ID of the wrong clock= in the futur=3D
> e, and fix<br>
> =3DC2=3DA0 =3DC2=3DA0 the IDs in the Linux compat code to match the ex= pected change=3D
> s too.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 See <a href=3D3D"h= ttps://bugzilla.mozilla.org/show_bug.cgi?id=3D
> =3D3D1824084" rel=3D3D"noreferrer noreferrer" target=3D= 3D"_blank">https://bugzill=3D
> a.mozilla.org/show_bug.cgi?id=3D3D1824084&l= t;/a><br>
> =3DC2=3DA0 =3DC2=3DA0 for more discussion.<br>
> <br>
> =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= 0 =3DC2=3DA0 155f15118a77 (&quot;=3D
> clock_gettime: Add Linux aliases for CLOCK_*&quot;)<br>
> =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= 0 =3DC2=3DA0 25ada637362d (&quot;=3D
> Map Linux CLOCK_BOOTTIME to native CLOCK_UPTIME.&quot;)<br><= br> > =3DC2=3DA0 =3DC2=3DA0 Sponsored by:=3DC2=3DA0 =3DC2=3DA0<a href=3D3= D"https://www.patreon.com/=3D
> valpackett" rel=3D3D"noreferrer noreferrer" target=3D3D= "_blank">https://www.pat=3D
> reon.com/valpackett</a><br>
> =3DC2=3DA0 =3DC2=3DA0 Reviewed by:=3DC2=3DA0 =3DC2=3DA0 kib, imp<br= >
> =3DC2=3DA0 =3DC2=3DA0 Differential Revision:=3DC2=3DA0 <a href=3D3D= "https://reviews.freeb=3D
> = sd.org/D39270" rel=3D3D"noreferrer noreferrer" target=3D= 3D"_blank">https://revi=3D
> ews.freebsd.org/D39270</a><br>
> ---<br>
> =3DC2=3DA0sys/compat/linux/linux_time.c | 6 +++---<br>
> =3DC2=3DA0sys/sys/_clock_id.h=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D= A0 =3DC2=3DA0 =3DC2=3DA0| 2 +-<br=3D
> >
> =3DC2=3DA02 files changed, 4 insertions(+), 4 deletions(-)<br> > <br>
> diff --git a/sys/compat/linux/linux_time.c b/sys/compat/linux/linux_ti= me.c<=3D
> br>
> index e9e5cf075210..f4dd26dd3d2a 100644<br>
> --- a/sys/compat/linux/linux_time.c<br>
> +++ b/sys/compat/linux/linux_time.c<br>
> @@ -287,7 +287,7 @@ linux_to_native_clockid(clockid_t *n, clockid_t l)= <br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 *n =3D3D CLOCK_REALTI=3D
> ME;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 break;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC= :<br>
> -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_MONOTO=3D
> NIC;<br>
> +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_UPTIME=3D
> ;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 break;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_PROCESS_C= PUTIME_ID:<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 *n =3D3D CLOCK_PROCES=3D
> S_CPUTIME_ID;<br>
> @@ -300,10 +300,10 @@ linux_to_native_clockid(clockid_t *n, clockid_t = l)<br=3D
> >
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 break;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC= _COARSE:<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC= _RAW:<br>
> -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_MONOTO=3D
> NIC_FAST;<br>
> +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_UPTIME=3D
> _FAST;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 break;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME:= <br>
> -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_UPTIME=3D
> ;<br>
> +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_MONOTO=3D
> NIC;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= 2=3DA0 =3DC2=3DA0 break;<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_REALTIME_= ALARM:<br>
> =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME_= ALARM:<br>
> diff --git a/sys/sys/_clock_id.h b/sys/sys/_clock_id.h<br>
> index 47a551428dc3..728346a0f0ab 100644<br>
> --- a/sys/sys/_clock_id.h<br>
> +++ b/sys/sys/_clock_id.h<br>
> @@ -78,7 +78,7 @@<br>
> =3DC2=3DA0 * Linux compatible names.<br>
> =3DC2=3DA0 */<br>
> =3DC2=3DA0#if __BSD_VISIBLE<br>
> -#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC= 2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D
> =3DA0 =3DC2=3DA0 CLOCK_UPTIME<br>
> +#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC= 2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D
> =3DA0 =3DC2=3DA0 CLOCK_MONOTONIC<br>
> =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_REA= LTIME_COARSE=3DC2=3DA0 =3DC2=3DA0=3D
> CLOCK_REALTIME_FAST<br>
> =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_MON= OTONIC_COARSE=3DC2=3DA0 CLOCK=3D
> _MONOTONIC_FAST<br>
> =3DC2=3DA0#endif<br>
> <br>
> </blockquote></div><br clear=3D3D"all"><= ;br><span class=3D3D"gmail_signature_pre=3D
> fix">-- </span><br><div dir=3D3D"ltr"= class=3D3D"gmail_signature"><div dir=3D3D"l=3D
> tr"><div><font color=3D3D"#888888">Nuno = Teixeira</font></div><div><div><font =3D
> color=3D3D"#888888">
> FreeBSD UNIX:=3DC2=3DA0 &lt;eduardo@FreeBSD.org&gt;=3DC2=3DA0 = =3DC2=3DA0Web:=3DC2=3DA0 <a h=3D
> ref=3D3D"https://FreeBSD.org" rel=3D3D"noreferrer norefer= rer" target=3D3D"_blank"=3D
> >https://FreeBSD.org</a><br></font></div><= /div></div></div>
> </blockquote></div></div></div>
> </div>
>
> --0000000000000d72080619d34a39--
>


--000000000000dcc9a90619d4664c--