Re: git: 108de784513d - main - Redefine CLOCK_BOOTTIME to alias CLOCK_MONOTONIC, not CLOCK_UPTIME
Date: Sat, 01 Jun 2024 15:04:58 UTC
In message <CANCZdfpp4sOHxygKuYF+pyBb8K_Nm3tXo75zpwo2e3w9hsAS9w@mail.gmail.c om> , Warner Losh writes: > --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 <Cy.Schubert@cschubert.c= > om> > 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@freeb= > sd.org> > > 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! I just put it out there. I'm outside, again, today continuing to build that new fence. I can submit a poudriere review or PR for X11 maintainer approval. I'll need to show the WPA ports a little loving attention at that time too. Maybe tonight. -- Cheers, Cy Schubert <Cy.Schubert@cschubert.com> FreeBSD UNIX: <cy@FreeBSD.org> Web: https://FreeBSD.org NTP: <cy@nwtime.org> Web: https://nwtime.org e^(i*pi)+1=0 > > Warner > > Warner > > Warner > > > -- > > Cheers, > > Cy Schubert <Cy.Schubert@cschubert.com> > > FreeBSD UNIX: <cy@FreeBSD.org> Web: https://FreeBSD.org > > NTP: <cy@nwtime.org> Web: https://nwtime.org > > > > 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://cgit.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73= > e=3D > > > 26b5b54caa > > > >> > > > >> commit 108de784513d87bbe850e7b003a73e26b5b54caa > > > >> Author: Val Packett <val@packett.cool> > > > >> AuthorDate: 2024-05-31 14:45:02 +0000 > > > >> Commit: Warner Losh <imp@FreeBSD.org> > > > >> 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: <eduardo@FreeBSD.org> Web: 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">=3D > > > <div dir=3D3D"ltr" class=3D3D"gmail_attr">On Sat, Jun 1, 2024, > > 4:37=3DE2=3D80=3DAFAM =3D > > > Nuno Teixeira <<a href=3D3D"mailto:eduardo@freebsd.org" > > target=3D3D"_blank">=3D > > > eduardo@freebsd.org</a>> wrote:<br></div><blockquote > > class=3D3D"gmail_quot=3D > > > e" style=3D3D"margin:0 0 0 .8ex;border-left:1px #ccc > > solid;padding-left:1ex">=3D > > > <div dir=3D3D"ltr"><div>Hello,</div><div><br></div><div>Having issues > > buildin=3D > > > g > > graphics/mesa-dri:</div><div><br></div><div>../src/intel/common/xe/intel_= > =3D > > > gem.c:72:9: error: duplicate case value '4'<br>=3DC2=3DA0 =3DC2= > =3DA072 | > > =3D > > > =3DC2=3DA0 =3DC2=3DA0case CLOCK_BOOTTIME:<br>=3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 | =3DC2=3DA0 > > =3DC2=3DA0 =3D > > > =3DC2=3DA0 =3DC2=3DA0 ^<br>/usr/include/sys/_clock_id.h:81:25: note: ex= > panded > > from =3D > > > macro 'CLOCK_BOOTTIME'<br>=3DC2=3DA0 =3DC2=3DA081 | #define > > CLOCK_BOOTTIME =3D > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0CLOCK_MONOTONIC<b= > r>=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 > > ^<br>/usr/include/sys/_clock_id.h:56=3D > > > :26: note: expanded from macro 'CLOCK_MONOTONIC'<br>=3DC2=3DA0 > > =3DC2=3DA056=3D > > > | #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 =3D= > C2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > > =3DC2=3D > > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 > > ^<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=3D= > A0 | =3DC2=3DA0 =3DC2=3DA0 > > =3DC2=3D > > > =3DA0 =3DC2=3DA0 ^<br>/usr/include/sys/_clock_id.h:56:26: note: expande= > d from > > mac=3D > > > ro 'CLOCK_MONOTONIC'<br>=3DC2=3DA0 =3DC2=3DA056 | #define > > CLOCK_MONOTONIC =3D > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 4<br>=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 ^<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 are 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 #ccc > > solid;padding-=3D > > > left:1ex"><div dir=3D3D"ltr"><div><font color=3D3D"#888888">Thanks<br > > clear=3D3D"=3D > > > all"></font></div><div></div></div><br><div class=3D3D"gmail_quote"><di= > v > > dir=3D > > > =3D3D"ltr" class=3D3D"gmail_attr">Warner Losh <<a href=3D3D"mailto: > > imp@freebsd=3D > > > .org" rel=3D3D"noreferrer" target=3D3D"_blank">imp@freebsd.org</a>> > > escreveu=3D > > > (sexta, 31/05/2024 =3DC3=3DA0(s) 15:47):<br></div><blockquote > > 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:<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.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73e26b5b= > =3D > > > 54caa</a><br> > > > <br> > > > commit 108de784513d87bbe850e7b003a73e26b5b54caa<br> > > > Author:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Val Packett <val@packett.cool= > ><br> > > > AuthorDate: 2024-05-31 14:45:02 +0000<br> > > > Commit:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Warner Losh <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 cl= > ocks > > across =3D > > > platforms<br> > > > =3DC2=3DA0 =3DC2=3DA0 is kind of a mess, let's try not making it wo= > rse.<br> > > > <br> > > > =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.<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> > > > <br> > > > =3DC2=3DA0 =3DC2=3DA0 On macOS, it'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 > > `CLOCK_MONOTONIC` =3D > > > for now.<br> > > > <br> > > > =3DC2=3DA0 =3DC2=3DA0 When we introduce a suspend-aware clock in the fu= > ture, 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's what the name CLOCK_UPTIME imp= > lies: 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 suspended= > .<br> > > > <br> > > > =3DC2=3DA0 =3DC2=3DA0 Let's change the define right now to make sur= > e > > 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 exp= > ected > > change=3D > > > s too.<br> > > > <br> > > > =3DC2=3DA0 =3DC2=3DA0 See <a href=3D3D" > > 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</a><br> > > > =3DC2=3DA0 =3DC2=3DA0 for more discussion.<br> > > > <br> > > > =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0= > =3DC2=3DA0 155f15118a77 > > ("=3D > > > clock_gettime: Add Linux aliases for CLOCK_*")<br> > > > =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.")<br> > > > =3DC2=3DA0 =3DC2=3DA0 Sponsored by:=3DC2=3DA0 =3DC2=3DA0<a href=3D3D" > > 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=3D3D"_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=3DA= > 0 =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_time.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 =3DC2= > =3DA0 =3DC2=3DA0 *n =3D3D > > CLOCK_REALTI=3D > > > ME;<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= > =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 =3DC= > 2=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*n =3D3D > > CLOCK_UPTIME=3D > > > ;<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= > =3DA0 =3DC2=3DA0 break;<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_PROCESS_CP= > UTIME_ID:<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= > =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 =3DC2= > =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 =3DC= > 2=3DA0 =3DC2=3DA0*n =3D3D > > CLOCK_MONOTO=3D > > > NIC_FAST;<br> > > > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0*n =3D3D > > CLOCK_UPTIME=3D > > > _FAST;<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= > =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 =3DC= > 2=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*n =3D3D > > CLOCK_MONOTO=3D > > > NIC;<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= > =3DA0 =3DC2=3DA0 break;<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_REALTIME_A= > LARM:<br> > > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME_A= > LARM:<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=3DC2= > =3DA0 =3DC2=3DA0 =3DC2=3DA0 > > =3DC2=3D > > > =3DA0 =3DC2=3DA0 CLOCK_UPTIME<br> > > > +#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC2= > =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_REAL= > TIME_COARSE=3DC2=3DA0 > > =3DC2=3DA0=3D > > > CLOCK_REALTIME_FAST<br> > > > =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_MONO= > TONIC_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 <eduardo@FreeBSD.org>=3DC2=3DA0 =3DC2=3DA= > 0Web:=3DC2=3DA0 > > <a h=3D > > > ref=3D3D"https://FreeBSD.org" rel=3D3D"noreferrer noreferrer" > > target=3D3D"_blank"=3D > > > >https://FreeBSD.org</a><br></font></div></div></div></div> > > > </blockquote></div></div></div> > > > </div> > > > > > > --0000000000000d72080619d34a39-- > > > > > > > > > > > --000000000000dcc9a90619d4664c > Content-Type: text/html; charset="UTF-8" > Content-Transfer-Encoding: quoted-printable > > <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">= > <div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jun 1, 2024 at 9:31=E2=80=AFA= > M Cy Schubert <<a href=3D"mailto:Cy.Schubert@cschubert.com">Cy.Schubert@= > cschubert.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" sty= > le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi= > ng-left:1ex">In message <CANCZdfpMvorgKYx6pCL7_q6BW3AqZSDwryKHg_cV+yt_E-= > FbOQ@mail.gmail.c<br> > om><br> > , Warner Losh writes:<br> > > --0000000000000d72080619d34a39<br> > > Content-Type: text/plain; charset=3D"UTF-8"<br> > > Content-Transfer-Encoding: quoted-printable<br> > ><br> > > On Sat, Jun 1, 2024, 4:37=3DE2=3D80=3DAFAM Nuno Teixeira <<a href= > =3D"mailto:eduardo@freebsd.org" target=3D"_blank">eduardo@freebsd.org</a>&g= > t; wr=3D<br> > > ote:<br> > ><br> > > > Hello,<br> > > ><br> > > > Having issues building graphics/mesa-dri:<br> > > ><br> > > > ../src/intel/common/xe/intel_gem.c:72:9: error: duplicate case va= > lue '4'<br> > > >=C2=A0 =C2=A0 72 |=C2=A0 =C2=A0 case CLOCK_BOOTTIME:<br> > > >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^<br= > > > > > /usr/include/sys/_clock_id.h:81:25: note: expanded from macro<br> > > > 'CLOCK_BOOTTIME'<br> > > >=C2=A0 =C2=A0 81 | #define CLOCK_BOOTTIME=C2=A0 =C2=A0 =C2=A0 =C2= > =A0 =C2=A0 CLOCK_MONOTONIC<br> > > >=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^<br> > > > /usr/include/sys/_clock_id.h:56:26: note: expanded from macro<br> > > > 'CLOCK_MONOTONIC'<br> > > >=C2=A0 =C2=A0 56 | #define CLOCK_MONOTONIC=C2=A0 =C2=A0 =C2=A0 =C2= > =A0 =C2=A04<br> > > >=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^<br> > > > ../src/intel/common/xe/intel_gem.c:66:9: note: previous case defi= > ned here<br> > > >=C2=A0 =C2=A0 66 |=C2=A0 =C2=A0 case CLOCK_MONOTONIC:<br> > > >=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^<br= > > > > > /usr/include/sys/_clock_id.h:56:26: note: expanded from macro<br> > > > 'CLOCK_MONOTONIC'<br> > > >=C2=A0 =C2=A0 56 | #define CLOCK_MONOTONIC=C2=A0 =C2=A0 =C2=A0 =C2= > =A0 =C2=A04<br> > > >=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^<br> > > > 1 error generated.<br> > > ><br> > ><br> > > Mesa needs to be updated to not assume these are distinct values.<br> > <br> > You should be able to resolve this with,<br> > <br> > --- src/intel/common/xe/intel_gem.c.orig=C2=A0 =C2=A0 =C2=A0 =C2=A0 2024-05= > -22 09:48:39.000000000 -0700<br> > +++ src/intel/common/xe/intel_gem.c=C2=A0 =C2=A0 =C2=A02024-06-01 06:28:22.= > 268439000 -0700<br> > @@ -69,8 +69,10 @@<br> > =C2=A0#endif<br> > =C2=A0 =C2=A0 case CLOCK_REALTIME:<br> > =C2=A0#ifdef CLOCK_BOOTTIME<br> > +#if CLOCK_BOOTTIME !=3D CLOCK_MONOTONIC<br> > =C2=A0 =C2=A0 case CLOCK_BOOTTIME:<br> > =C2=A0#endif<br> > +#endif<br> > =C2=A0#ifdef CLOCK_TAI<br> > =C2=A0 =C2=A0 case CLOCK_TAI:<br> > =C2=A0#endif<br></blockquote><div><br></div><div>Yea, that should do it. I = > was going to look at this when I got back from BSDcan (mostly because</div>= > <div>my talk is this morning), but thanks for beating me to it.=C2=A0 I wok= > e up grump and it was bugging me</div><div>on the=C2=A0walk over to the con= > ference I was a little short in my first reply, but since you proposed a</d= > iv><div>fix, I feel less guilty... :) Thanks!</div><div><br></div><div>Warn= > er</div><div><br></div><div>Warner</div><div><br></div><div>Warner=C2=A0</d= > iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord= > er-left:1px solid rgb(204,204,204);padding-left:1ex"> > -- <br> > Cheers,<br> > Cy Schubert <<a href=3D"mailto:Cy.Schubert@cschubert.com" target=3D"_bla= > nk">Cy.Schubert@cschubert.com</a>><br> > FreeBSD UNIX:=C2=A0 <cy@FreeBSD.org>=C2=A0 =C2=A0Web:=C2=A0 <a href= > =3D"https://FreeBSD.org" rel=3D"noreferrer" target=3D"_blank">https://FreeB= > SD.org</a><br> > NTP:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<<a href=3D"mailto:cy@nwtim= > e.org" target=3D"_blank">cy@nwtime.org</a>>=C2=A0 =C2=A0 Web:=C2=A0 <a h= > ref=3D"https://nwtime.org" rel=3D"noreferrer" target=3D"_blank">https://nwt= > ime.org</a><br> > <br> > =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<br> > <br> > <br> > ><br> > > Warner<br> > ><br> > ><br> > > > Thanks<br> > > ><br> > > > Warner Losh <<a href=3D"mailto:imp@freebsd.org" target=3D"_bla= > nk">imp@freebsd.org</a>> escreveu (sexta, 31/05/2024 =3DC3=3DA0(s) 15:47= > =3D<br> > > ):<br> > > ><br> > > >> The branch main has been updated by imp:<br> > > >><br> > > >> URL:<br> > > >> <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D3D108de7= > 84513d87bbe850e7b003a73e=3D" rel=3D"noreferrer" target=3D"_blank">https://c= > git.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73e=3D</a><br= > > > > 26b5b54caa<br> > > >><br> > > >> commit 108de784513d87bbe850e7b003a73e26b5b54caa<br> > > >> Author:=C2=A0 =C2=A0 =C2=A0Val Packett <val@packett.cool&g= > t;<br> > > >> AuthorDate: 2024-05-31 14:45:02 +0000<br> > > >> Commit:=C2=A0 =C2=A0 =C2=A0Warner Losh <imp@FreeBSD.org>= > ;<br> > > >> CommitDate: 2024-05-31 14:45:02 +0000<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0Redefine CLOCK_BOOTTIME to alias CLOCK_MON= > OTONIC, not CLOCK_UPTIME<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0The suspend-awareness situation with monot= > onic clocks across platfor=3D<br> > > ms<br> > > >>=C2=A0 =C2=A0 =C2=A0is kind of a mess, let's try not makin= > g it worse.<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0On Linux, CLOCK_MONOTONIC does NOT count s= > uspended time, and<br> > > >>=C2=A0 =C2=A0 =C2=A0CLOCK_BOOTTIME was introduced to INCLUDE s= > uspended time.<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0On OpenBSD, CLOCK_MONOTONIC DOES count sus= > pended time, and<br> > > >> CLOCK_UPTIME<br> > > >>=C2=A0 =C2=A0 =C2=A0was introduced to EXCLUDE suspended time.<= > br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0On macOS, it's the same as OpenBSD, bu= > t with CLOCK_UPTIME_RAW.<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0Right now, we do not have a monotonic cloc= > k that counts suspended<br> > > >> time.<br> > > >>=C2=A0 =C2=A0 =C2=A0We have CLOCK_UPTIME as a distinct ID alia= > s, and CLOCK_BOOTTIME as a<br> > > >>=C2=A0 =C2=A0 =C2=A0preprocessor alias, both being effectively= > `CLOCK_MONOTONIC` for now=3D<br> > > .<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0When we introduce a suspend-aware clock in= > the future, it would make=3D<br> > >=C2=A0 a<br> > > >>=C2=A0 =C2=A0 =C2=A0lot more sense to do it the OpenBSD/macOS = > way, i.e. to make<br> > > >>=C2=A0 =C2=A0 =C2=A0CLOCK_MONOTONIC include suspended time and= > make CLOCK_UPTIME exclude<br> > > >> it,<br> > > >>=C2=A0 =C2=A0 =C2=A0because that's what the name CLOCK_UPT= > IME implies: a deviation from<br> > > >> the<br> > > >>=C2=A0 =C2=A0 =C2=A0default intended for the uptime command to= > allow it to only show the<br> > > >>=C2=A0 =C2=A0 =C2=A0time the system was actually up and not su= > spended.<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0Let's change the define right now to m= > ake sure software using the<br> > > >> define<br> > > >>=C2=A0 =C2=A0 =C2=A0would not end up using the ID of the wrong= > clock in the future, and<br> > > >> fix<br> > > >>=C2=A0 =C2=A0 =C2=A0the IDs in the Linux compat code to match = > the expected changes too.<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0See <a href=3D"https://bugzilla.mozilla.or= > g/show_bug.cgi?id=3D3D1824084" rel=3D"noreferrer" target=3D"_blank">https:/= > /bugzilla.mozilla.org/show_bug.cgi?id=3D3D1824084</a><br> > > >>=C2=A0 =C2=A0 =C2=A0for more discussion.<br> > > >><br> > > >>=C2=A0 =C2=A0 =C2=A0Fixes:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1= > 55f15118a77 ("clock_gettime: Add Linux aliases for<br> > > >> CLOCK_*")<br> > > >>=C2=A0 =C2=A0 =C2=A0Fixes:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 2= > 5ada637362d ("Map Linux CLOCK_BOOTTIME to native<br> > > >> CLOCK_UPTIME.")<br> > > >>=C2=A0 =C2=A0 =C2=A0Sponsored by:=C2=A0 =C2=A0<a href=3D"https= > ://www.patreon.com/valpackett" rel=3D"noreferrer" target=3D"_blank">https:/= > /www.patreon.com/valpackett</a><br> > > >>=C2=A0 =C2=A0 =C2=A0Reviewed by:=C2=A0 =C2=A0 kib, imp<br> > > >>=C2=A0 =C2=A0 =C2=A0Differential Revision:=C2=A0 <a href=3D"ht= > tps://reviews.freebsd.org/D39270" rel=3D"noreferrer" target=3D"_blank">http= > s://reviews.freebsd.org/D39270</a><br> > > >> ---<br> > > >>=C2=A0 sys/compat/linux/linux_time.c | 6 +++---<br> > > >>=C2=A0 sys/sys/_clock_id.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = > =C2=A0| 2 +-<br> > > >>=C2=A0 2 files changed, 4 insertions(+), 4 deletions(-)<br> > > >><br> > > >> diff --git a/sys/compat/linux/linux_time.c b/sys/compat/linux= > /linux_time=3D<br> > > .c<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, clo= > ckid_t l)<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > *n =3D3D CLOCK_REALTIME;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > break;<br> > > >>=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;<br> > > >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = > =3D3D CLOCK_UPTIME;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > break;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_PROCESS_CPU= > TIME_ID:<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > *n =3D3D CLOCK_PROCESS_CPUTIME_ID;<br> > > >> @@ -300,10 +300,10 @@ linux_to_native_clockid(clockid_t *n, c= > lockid_t l)<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > break;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_MONOTONIC_C= > OARSE:<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_MONOTONIC_R= > AW:<br> > > >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = > =3D3D CLOCK_MONOTONIC_FAST;<br> > > >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = > =3D3D CLOCK_UPTIME_FAST;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > break;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_BOOTTIME:<b= > r> > > >> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = > =3D3D CLOCK_UPTIME;<br> > > >> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*n = > =3D3D CLOCK_MONOTONIC;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= > break;<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_REALTIME_AL= > ARM:<br> > > >>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case LINUX_CLOCK_BOOTTIME_AL= > ARM:<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> > > >>=C2=A0 =C2=A0* Linux compatible names.<br> > > >>=C2=A0 =C2=A0*/<br> > > >>=C2=A0 #if __BSD_VISIBLE<br> > > >> -#define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_BOOTTIME=C2=A0 =C2= > =A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_UPTIME<br> > > >> +#define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_BOOTTIME=C2=A0 =C2= > =A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_MONOTONIC<br> > > >>=C2=A0 #define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_REALTIME_COARS= > E=C2=A0 =C2=A0CLOCK_REALTIME_FAST<br> > > >>=C2=A0 #define=C2=A0 =C2=A0 =C2=A0 =C2=A0 CLOCK_MONOTONIC_COAR= > SE=C2=A0 CLOCK_MONOTONIC_FAST<br> > > >>=C2=A0 #endif<br> > > >><br> > > >><br> > > ><br> > > > --<br> > > > Nuno Teixeira<br> > > > FreeBSD UNIX:=C2=A0 <eduardo@FreeBSD.org>=C2=A0 =C2=A0Web:= > =C2=A0 <a href=3D"https://FreeBSD.org" rel=3D"noreferrer" target=3D"_blank"= > >https://FreeBSD.org</a><br> > > ><br> > ><br> > > --0000000000000d72080619d34a39<br> > > Content-Type: text/html; charset=3D"UTF-8"<br> > > Content-Transfer-Encoding: quoted-printable<br> > ><br> > > <div dir=3D3D"ltr"><div dir=3D3D"auto">= > ;<div><br><br><div class=3D3D"gmail_quote"&g= > t;=3D<br> > > <div dir=3D3D"ltr" class=3D3D"gmail_attr">On= > Sat, Jun 1, 2024, 4:37=3DE2=3D80=3DAFAM =3D<br> > > Nuno Teixeira &lt;<a href=3D3D"mailto:<a href=3D"mailto:ed= > uardo@freebsd.org" target=3D"_blank">eduardo@freebsd.org</a>" target= > =3D3D"_blank">=3D<br> > > <a href=3D"mailto:eduardo@freebsd.org" target=3D"_blank">eduardo@freeb= > sd.org</a></a>&gt; wrote:<br></div><blockquote cla= > ss=3D3D"gmail_quot=3D<br> > > e" style=3D3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p= > adding-left:1ex">=3D<br> > > <div dir=3D3D"ltr"><div>Hello,</div><di= > v><br></div><div>Having issues buildin=3D<br> > > g graphics/mesa-dri:</div><div><br></div><d= > iv>../src/intel/common/xe/intel_=3D<br> > > gem.c:72:9: error: duplicate case value &#39;4&#39;<br>= > =3DC2=3DA0 =3DC2=3DA072 | =3D<br> > > =3DC2=3DA0 =3DC2=3DA0case CLOCK_BOOTTIME:<br>=3DC2=3DA0 =3DC2=3D= > A0 =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3D<br> > > =3DC2=3DA0 =3DC2=3DA0 ^<br>/usr/include/sys/_clock_id.h:81:25: n= > ote: expanded from =3D<br> > > macro &#39;CLOCK_BOOTTIME&#39;<br>=3DC2=3DA0 =3DC2=3DA08= > 1 | #define CLOCK_BOOTTIME =3D<br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0CLOCK_MONOTONIC&= > lt;br>=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 |=3D<br> > >=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<br> > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 ^<br&g= > t;/usr/include/sys/_clock_id.h:56=3D<br> > > :26: note: expanded from macro &#39;CLOCK_MONOTONIC&#39;<br= > >=3DC2=3DA0 =3DC2=3DA056=3D<br> > >=C2=A0 | #define CLOCK_MONOTONIC =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2= > =3DA0 4<br>=3DC2=3DA0 =3DC2=3DA0 =3D<br> > > =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 = > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D<br> > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= > 0 ^<br>../src/intel/common/xe/i=3D<br> > > ntel_gem.c:66:9: note: previous case defined here<br>=3DC2=3DA0 = > =3DC2=3DA066 | =3DC2=3D<br> > > =3DA0 =3DC2=3DA0case CLOCK_MONOTONIC:<br>=3DC2=3DA0 =3DC2=3DA0 = > =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D<br> > > =3DA0 =3DC2=3DA0 ^<br>/usr/include/sys/_clock_id.h:56:26: note: = > expanded from mac=3D<br> > > ro &#39;CLOCK_MONOTONIC&#39;<br>=3DC2=3DA0 =3DC2=3DA056 = > | #define CLOCK_MONOTONIC =3D<br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 4<br>=3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 | =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D<br> > > =3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= > 0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D<br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 ^<br>1 error generated.</div= > ></div></blockquote></div>=3D<br> > > </div><div dir=3D3D"auto"><br></div>= > <div dir=3D3D"auto"><div class=3D3D"gmail_quo=3D<br= > > > > te"><div>Mesa needs to be updated to not assume these ar= > e distinct values.<=3D<br> > > /div><div><br></div><div>Warner</div>= > <div>=3DC2=3DA0</div><blockquote class=3D3D"=3D<br> > > gmail_quote" style=3D3D"margin:0 0 0 .8ex;border-left:1px #c= > cc solid;padding-=3D<br> > > left:1ex"><div dir=3D3D"ltr"><div><fo= > nt color=3D3D"#888888">Thanks<br clear=3D3D"=3D<br> > > all"></font></div><div></div></div&= > gt;<br><div class=3D3D"gmail_quote"><div dir=3D<br= > > > > =3D3D"ltr" class=3D3D"gmail_attr">Warner Losh &= > amp;lt;<a href=3D3D"mailto:<a href=3D"mailto:imp@freebsd" target=3D= > "_blank">imp@freebsd</a>=3D<br> > > .org" rel=3D3D"noreferrer" target=3D3D"_blank"= > ;><a href=3D"mailto:imp@freebsd.org" target=3D"_blank">imp@freebsd.org</= > a></a>&gt; escreveu=3D<br> > >=C2=A0 (sexta, 31/05/2024 =3DC3=3DA0(s) 15:47):<br></div>&l= > t;blockquote class=3D3D"gmail_q=3D<br> > > uote" style=3D3D"margin:0px 0px 0px 0.8ex;border-left:1px so= > lid rgb(204,204,2=3D<br> > > 04);padding-left:1ex">The branch main has been updated by imp:= > <br><br> > > <br><br> > > URL: <a href=3D3D"<a href=3D"https://cgit.FreeBSD.org/src/comm= > it/?id=3D3D108de784513d87bbe=3D" rel=3D"noreferrer" target=3D"_blank">https= > ://cgit.FreeBSD.org/src/commit/?id=3D3D108de784513d87bbe=3D</a><br> > > 850e7b003a73e26b5b54caa" rel=3D3D"noreferrer noreferrer"= > ; target=3D3D"_blank">ht=3D<br> > > tps://<a href=3D"http://cgit.FreeBSD.org/src/commit/?id=3D3D108de78451= > 3d87bbe850e7b003a73e26b5b=3D" rel=3D"noreferrer" target=3D"_blank">cgit.Fre= > eBSD.org/src/commit/?id=3D3D108de784513d87bbe850e7b003a73e26b5b=3D</a><br> > > 54caa</a><br><br> > > <br><br> > > commit 108de784513d87bbe850e7b003a73e26b5b54caa<br><br> > > Author:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Val Packett &lt;val@packett= > .cool&gt;<br><br> > > AuthorDate: 2024-05-31 14:45:02 +0000<br><br> > > Commit:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0Warner Losh &lt;imp@FreeBSD= > .org&gt;<br><br> > > CommitDate: 2024-05-31 14:45:02 +0000<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 Redefine CLOCK_BOOTTIME to alias CLOCK_MONOTONIC= > , not CLOCK_U=3D<br> > > PTIME<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 The suspend-awareness situation with monotonic c= > locks across =3D<br> > > platforms<br><br> > > =3DC2=3DA0 =3DC2=3DA0 is kind of a mess, let&#39;s try not making = > it worse.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 On Linux, CLOCK_MONOTONIC does NOT count suspend= > ed time, and<=3D<br> > > br><br> > > =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME was introduced to INCLUDE suspend= > ed time.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 On OpenBSD, CLOCK_MONOTONIC DOES count suspended= > time, and CL=3D<br> > > OCK_UPTIME<br><br> > > =3DC2=3DA0 =3DC2=3DA0 was introduced to EXCLUDE suspended time.<br&= > gt;<br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 On macOS, it&#39;s the same as OpenBSD, but = > with CLOCK_UPTIME=3D<br> > > _RAW.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 Right now, we do not have a monotonic clock that= > counts suspe=3D<br> > > nded time.<br><br> > > =3DC2=3DA0 =3DC2=3DA0 We have CLOCK_UPTIME as a distinct ID alias, and= > CLOCK_BOOTTI=3D<br> > > ME as a<br><br> > > =3DC2=3DA0 =3DC2=3DA0 preprocessor alias, both being effectively `CLOC= > K_MONOTONIC` =3D<br> > > for now.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 When we introduce a suspend-aware clock in the f= > uture, it wou=3D<br> > > ld make a<br><br> > > =3DC2=3DA0 =3DC2=3DA0 lot more sense to do it the OpenBSD/macOS way, i= > .e. to make<b=3D<br> > > r><br> > > =3DC2=3DA0 =3DC2=3DA0 CLOCK_MONOTONIC include suspended time and make = > CLOCK_UPTIME =3D<br> > > exclude it,<br><br> > > =3DC2=3DA0 =3DC2=3DA0 because that&#39;s what the name CLOCK_UPTIM= > E implies: a devi=3D<br> > > ation from the<br><br> > > =3DC2=3DA0 =3DC2=3DA0 default intended for the uptime command to allow= > it to only s=3D<br> > > how the<br><br> > > =3DC2=3DA0 =3DC2=3DA0 time the system was actually up and not suspende= > d.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 Let&#39;s change the define right now to mak= > e sure software u=3D<br> > > sing the define<br><br> > > =3DC2=3DA0 =3DC2=3DA0 would not end up using the ID of the wrong clock= > in the futur=3D<br> > > e, and fix<br><br> > > =3DC2=3DA0 =3DC2=3DA0 the IDs in the Linux compat code to match the ex= > pected change=3D<br> > > s too.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 See <a href=3D3D"<a href=3D"https://bugz= > illa.mozilla.org/show_bug.cgi?id=3D" rel=3D"noreferrer" target=3D"_blank">h= > ttps://bugzilla.mozilla.org/show_bug.cgi?id=3D</a><br> > > =3D3D1824084" rel=3D3D"noreferrer noreferrer" target=3D= > 3D"_blank"><a href=3D"https://bugzill" rel=3D"noreferrer" targ= > et=3D"_blank">https://bugzill</a>=3D<br> > > <a href=3D"http://a.mozilla.org/show_bug.cgi?id=3D3D1824084" rel=3D"no= > referrer" target=3D"_blank">a.mozilla.org/show_bug.cgi?id=3D3D1824084</a>&l= > t;/a><br><br> > > =3DC2=3DA0 =3DC2=3DA0 for more discussion.<br><br> > > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= > 0 =3DC2=3DA0 155f15118a77 (&quot;=3D<br> > > clock_gettime: Add Linux aliases for CLOCK_*&quot;)<br><br> > > =3DC2=3DA0 =3DC2=3DA0 Fixes:=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA= > 0 =3DC2=3DA0 25ada637362d (&quot;=3D<br> > > 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"<a href=3D"https://www.patreon.com/=3D" rel=3D"noreferrer" target=3D= > "_blank">https://www.patreon.com/=3D</a><br> > > valpackett" rel=3D3D"noreferrer noreferrer" target=3D3D= > "_blank"><a href=3D"https://www.pat" rel=3D"noreferrer" target= > =3D"_blank">https://www.pat</a>=3D<br> > > <a href=3D"http://reon.com/valpackett" rel=3D"noreferrer" target=3D"_b= > lank">reon.com/valpackett</a></a><br><br> > > =3DC2=3DA0 =3DC2=3DA0 Reviewed by:=3DC2=3DA0 =3DC2=3DA0 kib, imp<br= > ><br> > > =3DC2=3DA0 =3DC2=3DA0 Differential Revision:=3DC2=3DA0 <a href=3D3D= > "<a href=3D"https://reviews.freeb" rel=3D"noreferrer" target=3D"_blank= > ">https://reviews.freeb</a>=3D<br> > > <a href=3D"http://sd.org/D39270" rel=3D"noreferrer" target=3D"_blank">= > sd.org/D39270</a>" rel=3D3D"noreferrer noreferrer" target=3D= > 3D"_blank"><a href=3D"https://revi" rel=3D"noreferrer" target= > =3D"_blank">https://revi</a>=3D<br> > > <a href=3D"http://ews.freebsd.org/D39270" rel=3D"noreferrer" target=3D= > "_blank">ews.freebsd.org/D39270</a></a><br><br> > > ---<br><br> > > =3DC2=3DA0sys/compat/linux/linux_time.c | 6 +++---<br><br> > > =3DC2=3DA0sys/sys/_clock_id.h=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D= > A0 =3DC2=3DA0 =3DC2=3DA0| 2 +-<br=3D<br> > > ><br> > > =3DC2=3DA02 files changed, 4 insertions(+), 4 deletions(-)<br><b= > r> > > <br><br> > > diff --git a/sys/compat/linux/linux_time.c b/sys/compat/linux/linux_ti= > me.c<=3D<br> > > br><br> > > index e9e5cf075210..f4dd26dd3d2a 100644<br><br> > > --- a/sys/compat/linux/linux_time.c<br><br> > > +++ b/sys/compat/linux/linux_time.c<br><br> > > @@ -287,7 +287,7 @@ linux_to_native_clockid(clockid_t *n, clockid_t l)= > <br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 *n =3D3D CLOCK_REALTI=3D<br> > > ME;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 break;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC= > :<br><br> > > -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= > C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_MONOTO=3D<br> > > NIC;<br><br> > > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= > C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_UPTIME=3D<br> > > ;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 break;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_PROCESS_C= > PUTIME_ID:<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 *n =3D3D CLOCK_PROCES=3D<br> > > S_CPUTIME_ID;<br><br> > > @@ -300,10 +300,10 @@ linux_to_native_clockid(clockid_t *n, clockid_t = > l)<br=3D<br> > > ><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 break;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC= > _COARSE:<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_MONOTONIC= > _RAW:<br><br> > > -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= > C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_MONOTO=3D<br> > > NIC_FAST;<br><br> > > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= > C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_UPTIME=3D<br> > > _FAST;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 break;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME:= > <br><br> > > -=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= > C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_UPTIME=3D<br> > > ;<br><br> > > +=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3D= > C2=3DA0 =3DC2=3DA0*n =3D3D CLOCK_MONOTO=3D<br> > > NIC;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC= > 2=3DA0 =3DC2=3DA0 break;<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_REALTIME_= > ALARM:<br><br> > > =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 case LINUX_CLOCK_BOOTTIME_= > ALARM:<br><br> > > diff --git a/sys/sys/_clock_id.h b/sys/sys/_clock_id.h<br><br> > > index 47a551428dc3..728346a0f0ab 100644<br><br> > > --- a/sys/sys/_clock_id.h<br><br> > > +++ b/sys/sys/_clock_id.h<br><br> > > @@ -78,7 +78,7 @@<br><br> > > =3DC2=3DA0 * Linux compatible names.<br><br> > > =3DC2=3DA0 */<br><br> > > =3DC2=3DA0#if __BSD_VISIBLE<br><br> > > -#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC= > 2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D<br> > > =3DA0 =3DC2=3DA0 CLOCK_UPTIME<br><br> > > +#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_BOOTTIME=3DC= > 2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3D<br> > > =3DA0 =3DC2=3DA0 CLOCK_MONOTONIC<br><br> > > =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_REA= > LTIME_COARSE=3DC2=3DA0 =3DC2=3DA0=3D<br> > > CLOCK_REALTIME_FAST<br><br> > > =3DC2=3DA0#define=3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 =3DC2=3DA0 CLOCK_MON= > OTONIC_COARSE=3DC2=3DA0 CLOCK=3D<br> > > _MONOTONIC_FAST<br><br> > > =3DC2=3DA0#endif<br><br> > > <br><br> > > </blockquote></div><br clear=3D3D"all"><= > ;br><span class=3D3D"gmail_signature_pre=3D<br> > > fix">-- </span><br><div dir=3D3D"ltr"= > class=3D3D"gmail_signature"><div dir=3D3D"l=3D<br> > > tr"><div><font color=3D3D"#888888">Nuno = > Teixeira</font></div><div><div><font =3D<br> > > color=3D3D"#888888"><br> > > FreeBSD UNIX:=3DC2=3DA0 &lt;eduardo@FreeBSD.org&gt;=3DC2=3DA0 = > =3DC2=3DA0Web:=3DC2=3DA0 <a h=3D<br> > > ref=3D3D"<a href=3D"https://FreeBSD.org" rel=3D"noreferrer" targe= > t=3D"_blank">https://FreeBSD.org</a>" rel=3D3D"noreferrer norefer= > rer" target=3D3D"_blank"=3D<br> > > ><a href=3D"https://FreeBSD.org" rel=3D"noreferrer" target=3D"_blan= > k">https://FreeBSD.org</a></a><br></font></div><= > /div></div></div><br> > > </blockquote></div></div></div><br> > > </div><br> > ><br> > > --0000000000000d72080619d34a39--<br> > ><br> > <br> > <br> > </blockquote></div></div> > > --000000000000dcc9a90619d4664c--