+ %%YEARNEXT%% - next report due year (if different than %%YEAR%%)
+ %%DUENEXT%% - next report due date (i.e., June 6)
+-->
+
+<report>
+ <date>
+ <month>October-December</month>
+
+ <year>2018</year>
+ </date>
+
+ <section>
+ <title>Introduction</title>
+
+ <p>Since we are still on this island among many in this vast ocean of the Internet, we write this message in a bottle to inform you of the work we have finished and what lies ahead of us. These deeds that we have wrought with our minds and hands, they are for all to partake of - in the hopes that anyone of their free will, will join us in making improvements. In todays message the following by no means complete or ordered set of improvements and additions will be covered:</p>
+
+ <p>i386 PAE Pagetables for up to 24GB memory support, Continuous Integration efforts, driver updates to ena and graphics, ARM enhancements such as RochChip, Marvell 8K, and Broadcom support as well as more DTS files, more Capsicum possibilities, as well as pfsync improvements, and many more things that you can read about for yourselves.</p>
+
+ <p>Additionally, we bring news from some islands further down stream, namely the nosh project, HardenedBSD, ClonOS, and the Polish BSD User-Group.</p>
+
+ <p>We would, selfishly, encourage those of you who give us the good word to please send in your submissions sooner than just before the deadline, and also encourage anyone willing to share the good word to please read the section on which submissions we're also interested in having.</p>
+
+ <p>Yours hopefully,<br/>
+ Daniel Ebdrup, on behalf of the status report team.</p>
+ </section>
+
+ <category>
+ <name>team</name>
+
+ <description>&os; Team Reports</description>
+
+ <p>Entries from the various official and semi-official teams,
+ as found in the <a href="&enbase;/administration.html">Administration
+ Page</a>.</p>
+ </category>
+
+ <category>
+ <name>proj</name>
+
+ <description>Projects</description>
+
+ <p>Projects that span multiple categories, from the kernel and userspace
+ to the Ports Collection or external projects.</p>
+ </category>
+
+ <category>
+ <name>arch</name>
+
+ <description>Architectures</description>
+
+ <p>Updating platform-specific features and bringing in support
+ for new hardware platforms.</p>.
+ </category>
+
+ <category>
+ <name>ports</name>
+
+ <description>Ports</description>
+
+ <p>Changes affecting the Ports Collection, whether sweeping
+ changes that touch most of the tree, or individual ports
+ themselves.</p>
+ </category>
+
+ <category>
+ <name>misc</name>
+
+ <description>Miscellaneous</description>
+
+ <p>Objects that defy categorization.</p>
+ </category>
+
+ <category>
+ <name>third</name>
+
+ <description>Third-Party Projects</description>
+
+ <p>Many projects build upon &os; or incorporate components of
+ &os; into their project. As these projects may be of interest
+ to the broader &os; community, we sometimes include brief
+ updates submitted by these projects in our quarterly report.
+ The &os; project makes no representation as to the accuracy or
+ veracity of any claims in these submissions.</p>
+ </category>
+
+ <project cat='team'>
+ <title>FreeBSD Release Engineering Team</title>
+
+ <body>
+ <p>Category: team</p>
+
+ <p></p>
+
+ <p>The FreeBSD Release Engineering Team is responsible for
+ setting
+ and publishing release schedules for official project
+ releases
+ of FreeBSD, announcing code freezes and maintaining the
+ respective branches, among other things.</p>
+
+ <p>During the fourth quarter of 2018, the FreeBSD Release
+ Engineering team
+ continued working on the 12.0-RELEASE. The
+ <tt>stable/12</tt> branch was created
+ on October 19, with the first BETA build being started
+ shortly after. The
+ release cycle slipped slightly with the addition of
+ 12.0-BETA4, after which
+ the <tt>releng/12.0</tt> branch was created on November
+ 16.</p>
+
+ <p>The remainder of the release cycle continued relatively
+ smoothly for the
+ duration of the release candidate (RC) phase, with the
+ final release builds
+ starting December 7, and the official announcement sent
+ December 11.</p>
+
+ <p>Throughout the quarter, several development snapshots
+ builds were released
+ for the <tt>head</tt> and <tt>stable/11</tt> branches.</p>
+
+ <p>Much of this work was sponsored by the FreeBSD Foundation.</p>
+ <url href="https://github.com/FreeBSD-UPB/freebsd/tree/projects/bhyve_migration_dev">Github - Live Migration branch</url>
+ </links>
+
+ <body>
+ <p>The Migration feature uses the Save/Restore feature to
+ migrate a bhyve guest
+ from a FreeBSD host to another FreeBSD host. To migrate a
+ bhyve guest,
+ one needs to start an empty guest on the destination host
+ from a shared guest
+ image using the bhyve tool with the <tt>-R</tt> option
+ followed by the source host
+ IP and the port to listen to migration request. On the
+ source host, the
+ migration is started by executing the bhyvectl command
+ with the <tt>--migrate</tt>
+ or <tt>--migrate-live</tt> option, followed by the
+ destination host IP and the
+ port to send to the messages.</p>
+
+ <p>New features added:</p>
+
+ <ul>
+ <li>Prove that live migration cannot be implemented using the
+ FreeBSD's Copy-on-Write mechanism;</li>
+
+ <li>Add <tt>--migrate-live</tt> option to bhyvectl;</li>
+
+ <li>Add additional message exchange between source and
+ destination host to establish the migration type
+ and the number of rounds;</li>
+
+ <li>Implement a dirty-bit approach for live migrating the
+ guest's wired memory;</li>
+ </ul>
+
+ <p>
+ Future tasks:</p>
+
+ <ul>
+ <li>Clear the dirty bit after each migration round;</li>
+
+ <li>Extend live migration to highmem segment;</li>
+
+ <li>Extend live migration to unwired memory;</li>
+ </ul>
+
+ <p></p>
+
+ </body>
+
+ <sponsor>
+ Matthew Grooms
+ </sponsor>
+
+ </project>
+
+ <project cat='proj'>
+ <title>bhyve - Save/Restore</title>
+
+ <contact>
+ <person>
+ <name>Elena Mihailescu</name>
+ <email>elenamihailescu22@gmail.com</email>
+ </person>
+ <person>
+ <name>Darius Mihai</name>
+ <email>dariusmihaim@gmail.com</email>
+ </person>
+ <person>
+ <name>Sergiu Weisz</name>
+ <email>sergiu121@gmail.com</email>
+ </person>
+ <person>
+ <name>Mihai Carabas</name>
+ <email>mihai@freebsd.org</email>
+ </person>
+ </contact>
+
+ <links>
+ <url href="https://github.com/FreeBSD-UPB/freebsd/tree/projects/bhyve_migration">Github repository for the save/restore and migration features</url>
+ <url href="https://github.com/FreeBSD-UPB/freebsd/wiki/Save-and-Restore-a-virtual-machine-using-bhyve">Github wiki - How to Save and Restore a bhyve guest</url>
+ <url href="https://github.com/FreeBSD-UPB/freebsd/wiki/Suspend-Resume-test-matrix">Github wiki - Suspend/resume test matrix</url>
+ </links>
+
+ <body>
+ <p>The Save/Restore for bhyve feature is a suspend and resume
+ facility added to the
+ FreeBSD/amd64's hypervisor, bhyve. The bhyvectl tool is
+ used to save the guest
+ state in three files (a file for the guest memory, a file
+ for devices' and CPU's
+ state and another one for some metadata that are used in
+ the restore process).
+ To suspend a bhyve guest, the bhyvectl tool must be run
+ with the <tt>--suspend
+ <state_file_name></tt>
+ option followed by the guest name.</p>
+
+ <p>To restore a bhyve guest from a checkpoint, one simply has
+ to add the <tt>-r</tt> option
+ followed by the main state file (the same file that was
+ given to the <tt>--suspend</tt>
+ option for bhyvectl) when starting the VM.</p>
+
+ <p>New features added:</p>
+
+ <ul>
+ <li>Improve timers' save and restore state feature;</li>
+
+ <li>Fix syncronization issues related to the ahci device save
+ and restore state feature;</li>
+
+ <li>Add suspend/resume support for Windows guests;</li>
+
+ <li>Refactor save and restore code - save component's state
+ field by field</li>
+ </ul>
+
+ <p>
+ Future tasks:</p>
+
+ <ul>
+ <li>Open ticket on Phabricator;</li>
+
+ <li>Add suspend/resume support for nvme;</li>
+
+ <li>Add suspend/resume support for virtio-console;</li>
+
+ <li>Add suspend/resume support for virtio-scsi;</li>
+
+ <li>Add TSC offseting for restore for AMD CPUs;</li>