Add 2017Q2 ino64 entry from mkcusick
This commit is contained in:
parent
baf3c1d09e
commit
49deadcb87
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=50394
1 changed files with 93 additions and 0 deletions
|
@ -83,4 +83,97 @@
|
|||
<description>Miscellaneous</description>
|
||||
</category>
|
||||
|
||||
<project cat='proj'>
|
||||
<title>64-bit Inode Numbers</title>
|
||||
|
||||
<contact>
|
||||
<person>
|
||||
<name>
|
||||
<given>Gleb</given>
|
||||
<common>Kurtsou</common>
|
||||
</name>
|
||||
<email>gleb@FreeBSD.org</email>
|
||||
</person>
|
||||
|
||||
<person>
|
||||
<name>
|
||||
<given>Konstantin</given>
|
||||
<common>Belousov</common>
|
||||
</name>
|
||||
<email>kib@FreeBSD.org</email>
|
||||
</person>
|
||||
|
||||
<person>
|
||||
<name>
|
||||
<given>Kirk</given>
|
||||
<common>McKusick</common>
|
||||
</name>
|
||||
<email>mckusick@FreeBSD.org</email>
|
||||
</person>
|
||||
</contact>
|
||||
|
||||
<links>
|
||||
<url href="https://reviews.FreeBSD.org/D10439">Phabricator Review</url>
|
||||
</links>
|
||||
|
||||
<body>
|
||||
<p>The 64-bit inode project was completed and merged into
|
||||
&os; 12 on May 23, 2017. It extends the <tt>ino_t</tt>,
|
||||
<tt>dev_t</tt>, and <tt>nlink_t</tt> types to be 64-bit
|
||||
integers. It modifies the <tt>struct dirent</tt> layout to
|
||||
add a <tt>d_off</tt> field, increases the size of
|
||||
<tt>d_fileno</tt> to 64 bits, increases the size of
|
||||
<tt>d_namlen</tt> to 16 bits, and changes the required
|
||||
alignment of the structure. It increases the <tt>struct
|
||||
statfs</tt> <tt>f_mntfromname[]</tt> and
|
||||
<tt>f_mntonname[]</tt> array lengths from MNAMELEN to
|
||||
1024.</p>
|
||||
|
||||
<p>ABI breakage is mitigated by providing compatibility using
|
||||
versioned symbols, ingenious use of the existing padding in
|
||||
structures, and employing various other tricks.
|
||||
Unfortunately, not everything can be fixed, especially outside
|
||||
the base system. For instance, third-party APIs which pass
|
||||
<tt>struct stat</tt> as parameters are broken in backward- and
|
||||
forward-incompatible ways.</p>
|
||||
|
||||
<p>The ABI for <tt>kinfo</tt> sysctl MIBs is changed in a
|
||||
backward-compatible way, but there is no general mechanism to
|
||||
handle other sysctl MIBS which return structures where the
|
||||
layout has changed. It was considered that the breakage is
|
||||
either in management interfaces, where we usually allow ABI
|
||||
slippage, or is not important.</p>
|
||||
|
||||
<p>The layout of <tt>struct xvnode</tt> changed, and no
|
||||
compatibility shims are provided.</p>
|
||||
|
||||
<p>For <tt>struct xtty</tt>, the <tt>dev_t tty</tt> device
|
||||
member was reduced to be just <tt>uint32_t</tt>. It was
|
||||
decided that maintaining ABI compatability in this case is
|
||||
more useful than reporting a 64-bit <tt>dev_t</tt> value, for
|
||||
the sake of <tt>pstat</tt>.</p>
|
||||
|
||||
<p>Updating note: strictly follow the instructions in
|
||||
<tt>UPDATING</tt>. Build and install the new kernel with the
|
||||
<tt>COMPAT_FREEBSD11</tt> option enabled, then reboot, and
|
||||
only then install the new world.</p>
|
||||
|
||||
<p>Credits: The 64-bit inode project, also known as ino64,
|
||||
started life many years ago as a project by Gleb Kurtsou
|
||||
(gleb). Kirk McKusick (mckusick) then picked up and updated
|
||||
the patch, and acted as a flag-waver. Feedback, suggestions,
|
||||
and discussions were carried by Ed Maste (emaste), John
|
||||
Baldwin (jhb), Jilles Tjoelker (jilles), and Rick Macklem
|
||||
(rmacklem). Kris Moore (kris) performed an initial ports
|
||||
investigation followed by an exp-run by Antoine Brodin
|
||||
(antoine). Essential and all-embracing testing was done by
|
||||
Peter Holm (pho). The heavy lifting of coordinating all these
|
||||
efforts and bringing the project to completion were done by
|
||||
Konstantin Belousov (kib). </p>
|
||||
</body>
|
||||
|
||||
<sponsor>
|
||||
The FreeBSD Foundation (emaste, kib)
|
||||
</sponsor>
|
||||
</project>
|
||||
</report>
|
||||
|
|
Loading…
Reference in a new issue