RFC: cpuid_t
John Baldwin
jhb at freebsd.org
Mon Aug 11 21:28:56 UTC 2014
On Saturday, August 09, 2014 5:16:26 pm Bruce Evans wrote:
> On Sat, 9 Aug 2014, Adrian Chadd wrote:
>
> > How's this look?
>
> Not good.
>
> > Index: sys/sys/_types.h
> > ===================================================================
> > --- sys/sys/_types.h (revision 269480)
> > +++ sys/sys/_types.h (working copy)
> > @@ -52,6 +52,7 @@
> > typedef __uint16_t __nlink_t; /* link count */
> > typedef __int64_t __off_t; /* file offset */
> > typedef __int32_t __pid_t; /* process [group] */
> > +typedef __uint32_t __cpuid_t; /* CPU ID */
> > typedef __int64_t __rlim_t; /* resource limit - intentionally */
> > /* signed, because of legacy code */
> > /* that uses -1 for RLIM_INFINITY */
>
> Unsorting. In the English alphabet, c is not between p and r.
>
> The whitespace seems to be inconsistent, but the mail corrupted all the
> tabs so it is hard to tell.
>
> > Index: sys/sys/types.h
> > ===================================================================
> > --- sys/sys/types.h (revision 269480)
> > +++ sys/sys/types.h (working copy)
> > @@ -154,6 +154,11 @@
> > #define _LWPID_T_DECLARED
> > #endif
> >
> > +#ifndef _CPUID_T_DECLARED
> > +typedef __cpuid_t cpuid_t; /* CPU ID */
> > +#define _CPUID_T_DECLARED
> > +#endif
> > +
> > #ifndef _MODE_T_DECLARED
> > typedef __mode_t mode_t; /* permissions */
> > #define _MODE_T_DECLARED
>
> Unsorting. c is also not between l and m.
>
> The comment is banal, like many nearby ones. It does less than echo the
> code. Most for ids at least echo the code by repeating "id" in lower case.
>
> In private mail, I said that this typedef is less needed than one for
> file descriptors. Since the latter need is negative, the need for this
> one is very negative. Ids should be small integers so that they can be
> used directly as array indexes, unless they need to cover a large sparse
> namespace so that they need to be hash numbers.
You would just prefer an int then? Your point about it being used in kinfo
is well-taken (meaning that once it is part of an ABI you can't actually
change it transparently). I know Adrian is currently concerned about doing
the initial sweep to identify the places that store CPU IDs and marking them
as such, and I believe he sees value in simply enumerating the places that
are CPU IDs rather than something else. It is true that cpuset_t currently
assumes it represents a set of integers (more or less) and the closes analogy
to that (signals) just use plain int for signal numbers (and not a sig_t or
the like).
--
John Baldwin
More information about the freebsd-arch
mailing list