From owner-svn-doc-head@freebsd.org Sun May 1 02:31:21 2016
Return-Path: A new implementation for support of native PCI-express
+ A new implementation of support for native PCI-express
hotplug is present at the URL above. Much of the new code
lives in the PCI-PCI bridge driver to handle hotplug events
and manage the PCI-express slot registers. Additional changes
in the branch include adding new rescan and
- delete commands to devctl(8) as well as
+ delete commands to devctl(8), as well as
support for rescanning PCI busses. The current implementation has been tested on systems with
- ExpressCard but could use additional testing, especially on
+ ExpressCard slots but could use additional testing, especially on
systems with other PCI-express HotPlug features such as
mechanical latches, attention buttons, indicators, and so
on. Split branch into separate logical changes as commit
+ Split the branch into separate logical changes as commit
candidates. The KDE on FreeBSD team focuses on packaging and making sure
- that the experience of KDE and Qt on FreeBSD is as good as
+ The KDE on &os; team focuses on packaging and making sure
+ that the experience of KDE and Qt on &os; is as good as
possible. While the list of updates is shorter than that for the
@@ -732,7 +732,7 @@
highlight in the beginning of this year is the (re)addition of
another committer to our experimental repository: Adriaan de
Groot, a longtime KDE contributor who also used to work on KDE
- and FreeBSD almost a decade ago when our team was first
+ and &os; almost a decade ago when our team was first
formed. Welcome back, Ade! The following big updates were landed in the ports tree this
@@ -760,7 +760,7 @@
Work on Qt 5.6.0 is
under way in our experimental repositories. At
- the time of writing, it also contains KDE Frameworks 5.20.0,
+ the time of this writing, it also contains KDE Frameworks 5.20.0,
Plasma 5.6.1, and KDE Applications 16.03.80. Users interested in testing those ports are encouraged to
@@ -802,7 +802,7 @@
POSIX specifies several kinds of pthread locks. For
this report, the private and process-shared variants are
considered. Private locks can be used only by the threads of
- the same process, which share the address space.
+ the same process, which share a single common address space.
Process-shared locks can be used by threads from any process,
assuming the process can map the lock memory into its address
space.
A common opinion was that we have no choice but to break the @@ -825,12 +825,12 @@
Instead, I proposed and implemented a scheme where process-shared locks can be implemented without breaking the - ABI. The lock memory is used as a key into the system-global - hash of the shared memory objects (off-pages), which carry the - real lock structures.
+ ABI. The lock memory is used as a key into a system-global + hash of shared memory objects (off-pages), which contain the + actual lock structures. -New umtx operations to create or look up the shared - object, by the memory key were added. libthr is +
New umtx operations to create or look up a shared + object by memory key were added. libthr is modified to look up the object and use it for shared locks, instead of using malloc() as for private locks.
@@ -840,13 +840,13 @@The proposal of inlining the lock structures, besides the drawbacks of breaking ABI, has its merits. Most important, - the inlining avoids the need of indirection. Another - important advantage over the off-page page approach is that no + the inlining avoids the need for indirection. Another + important advantage over the off-page approach is that no off-page object needs to be maintained, and the lifecycle of the shared lock naturally finishes with the destruction of the - shared memory without explicit cleanup. Right now, off-pages + shared memory, without need for explicit cleanup. Right now, off-pages hook into vm object termination to avoid leakage, but - long-livedness of the vnode vm object prolonges the off-page + long-livedness of the vnode vm object prolonges the off-page's existence for shared locks backed by files, however unlikely they may be.
@@ -882,33 +882,33 @@ --
This quarter, we:
+Ruby on Rails is the base for most of the rubygems in the - portstree. Currently version 3.2 and 4.2 coexists, but since - Rails 3.2 runs out of support, the time has come to + Ports Collection. Currently, versions 3.2 and 4.2 coexist, but since + Rails 3.2 is running out of support, the time has come to switch.
There is an ongoing progress to remove Rails 3.2 from the ports tree. While many gems already work with the new - version, there are some exceptions. For example www/redmine - needs a big update (which is currently tested) because it - depends on gems which therefore depends on Rails 3.2.
+ version, there are some exceptions. For example, www/redmine + needs a big update (which is currently being tested) because it + depends on gems that depends on Rails 3.2. -If you want to help porting or testing, feel free to contact +
If you want to help with porting or testing, feel free to contact me or the mailinglist ruby@FreeBSD.org.
@@ -960,7 +960,7 @@After nearly a year of work on this project, GitLab 8.5.5 was committed into the ports tree. A big thanks to the enormous - number of people involved! Since GitLab is a fast moving + number of people involved! Since GitLab is a fast-moving project, there is also ongoing work to stay in sync with upstream. Have fun!
@@ -981,15 +981,15 @@ -Build improvements for buildworld on head continue. +
Build improvements for buildworld on &os; head continue. Some highlights include:
Filemon on -HEAD was improved for stability and performance
over this quarter. It no longer causes every syscall it hooks
- into to loop on processes looking for a matching filemon
+ into to loop over processes looking for a matching filemon
struct. It now just attaches directly to the struct proc with
its own pointer. This improves performance by reducing lock
contention during a build. Much other work went into
@@ -1082,15 +1082,15 @@
Improving credential handling Improve credential handling. Improving EVENTHANDLER performance Improve EVENTHANDLER performance. Possibly providing a framework for syscallenter/syscallret
+ Possibly provide a framework for syscallenter/syscallret
hooking to avoid the need to hook syscalls as Filemon
does. A continuation of the Book-E QorIQ support enhancements by
- Semihalf dating back to 2012. This project is a continuation of the Book-E QorIQ support
+ enhancements by Semihalf dating back to 2012. The AmigaOne X5000 series of AmigaOS compatible systems uses
+ The AmigaOne X5000 series of AmigaOS-compatible systems uses
the Freescale QorIQ series of SoCs for a desktop-class form
factor. The work here entails adding support for the e5500
core itself, in addition to support for the SoC
peripherals. Currently most code is checked in to enable basic support:
- dTSEC (ethernet), core support (e500mc, e5500). As part of
+ Currently, most of the code to enable basic support is checked
+ in: dTSEC (ethernet), core support (e500mc, e5500). As part of
this, rman, the kernel resource manager, was enhanced
- to use uintmax_t for resources. This allows devices
- to be physically above the 4GB boundary on 32-bit systems.
- With a statically compiled device tree, it boots to multiuser
- mode with nfsroot, and can be used as normal (serial and SSH
- logins once configured).
Local console (VGA) support: It currently boots with a - serial console. vgapci0 is seen if there is a PCIe graphics + serial console. vgapci0 is seen if there is a PCIe graphics card, but vt(4) does not attach to it yet.
The FreeBSD German Documentation Project translates FreeBSD's +
The FreeBSD German Documentation Project translates &os;'s documentation (handbook, articles, website, etc.) into the German language.
Due to the tireless effort of Björn Heidotting, we made huge improvements in catching up with the translation of the German handbook. Benedict helped with reviewing the changes using - FreeBSD's review system Phabricator, which helped a lot. We + &os;'s review system Phabricator, which helped a lot. We now have the following handbook chapters in sync with the latest version in the English tree:
@@ -1291,14 +1290,14 @@ projects, even if we do not require it in order to update &os;. -In the first quarter of 2016 The ELF Tool Chain tools were - updated to a snapshot of upstream SVN revision 3400, which +
In the first quarter of 2016, the ELF Tool Chain tools were + updated to a snapshot of upstream Subversion revision 3400, which is close to the 0.7.1 release. Additional bug fixes were - committed to FreeBSD and subsequently merged into the upstream + committed to &os; and subsequently merged into the upstream repository.
ELF Tool Chain's elfcopy(1) is now installed as - objcopy(1) by default as it is a viable replacement + objcopy(1) by default, as it is a viable replacement for the base system and ports tree.
Significant improvements were made to the @@ -1307,7 +1306,7 @@ AArch64 support.
-Investigate replacement objdump, ld and as - implementations.
+Investigate replacement objdump, ld and + as implementations.
Mellanox is working on a big infiniband update towards Mellanox OFED v3.2 of the infiniband stack in &os;. The - updates include both userland and kernel. + updates include both userland and kernel components. Infiniband patches for &os; are available in the link above which can be downloaded and applied to a recent &os;-head checkout.
@@ -1402,35 +1401,35 @@ Hyper-V synthetic devices is recommended to get the best network and storage performance and make full use of all the benefits that Hyper-V provides. The collection of drivers - that are required to use Hyper-V synthetic devices in FreeBSD + that are required to use Hyper-V synthetic devices in &os; are known as FreeBSD Integration Services (BIS). Some of the BIS drivers (like network and storage drivers) have existed in FreeBSD 9.x and 10.x for years, but there are still some performance and stability issues and bugs. Compared with Windows and Linux VMs, the current BIS lacks some useful features, e.g., live virtual machine backup, TRIM/Unmap, the - support for UEFI VM (boot from UEFI), etc. + support for UEFI VMs (boot from UEFI), etc.During the past quarter, we made a great progress on the performance tuning for Hyper-V network driver. We also refactored and cleaned up the VMBus driver, and fixed some - important bugs. All the work makes FreeBSD VMs run even + important bugs. All the work makes &os; VMs run even better on Hyper-V and the Hyper-V based cloud platform Azure!
Our work during 2016Q1 is documented below:
-Optimizing the performance of Hyper-V network driver
+Optimizing the performance of Hyper-V network driver:
Refactoring and Cleaning up the VMBus driver code
+Refactoring and cleaning up the VMBus driver code:
Bug Fixing
+Bug Fixing:
Found a workaround for PR 20824 ([Hyper-V] VM network may not - work over virtual switch based on wireless NIC): add - "net.link.ether.inet.max_age=60" in /etc/sysctl.conf.
+We plan to add support for live virtual machine backup, TRIM/Unmap, and UEFI VMs (Hyper-V Generation-2 VMs).
We published errata (FreeBSD-EN-16:04.hyperv, FreeBSD-EN-16:05.hv_netvsc) with the Release Engineering team, - so 10.1 and 10.2 users can easily get the fixes of KVP and TCP - checksum by upgrading the system.
+ so 10.1 and 10.2 users can easily get the fixes for KVP and TCP + checksums by upgrading the system.We published BIS test cases for Hyper-V on github: - https://github.com/FreeBSDonHyper-V/Test-BIS and we are going - to publish the test cases for Azure soon.
+ https://github.com/FreeBSDonHyper-V/Test-BIS + and we are going to publish the test cases for Azure soon.With this change, randomization is applied to all non-fixed - mappings. By randomization I mean the base address for the + mappings. By randomization, I mean that the base address for the mapping is selected with a guaranteed amount of entropy (bits). If the mapping was requested to be superpage aligned, the randomization honors the superpage attributes.
@@ -1641,18 +1645,18 @@ the allocator falls back to a first fit strategy if fragmentation prevents entropy injection. It is trivial to implement a strong mode where failure to guarantee the - requested amount of entropy results in mapping request - failure, but I do not consider that to be usable. + requested amount of entropy results in failure of the mapping + request failure, but I do not consider that to be usable.I have not fine-tuned the amount of entropy injected right - now. It is only a quantitive change that will not change the + now, but that is only a quantitive change that will not change the implementation. The current amount is controlled by aslr_pages_rnd.
To not spoil coalescing optimizations, to reduce the page - table fragmentation inherent to ASLR, and to keep the - transient superpage promotion for the malloced - memory, the locality is implemented for anonymous private + table fragmentation inherent to ASLR, and to retain + transient superpage promotion for malloced + memory, locality is implemented for anonymous private mappings, which are automatically grouped until fragmentation kicks in. The initial location for the anon group range is, of course, randomized. After some additional tuning, the @@ -1663,24 +1667,25 @@
The default mode keeps the sbrk area unpopulated by other mappings, but this can be turned off, which gives much - more breathing bits on the small AS architectures (funny that - 32 bits is considered small). This is tied with the question + more breathing room on the small address-space architectures + (it is funny that + 32 bits is now considered small). This is tied with the question of following an application's hint about the mmap(2) base address. Testing shows that ignoring the hint does not - affect the function of common applications, but I would expect + affect the function of common applications, but I would expect that more demanding code could break. By default sbrk is preserved and mmap hints are satisfied, which can be changed by using the kern.elf{32,64}.aslr_care_sbrk - sysctl (currently enabled by default for wider testing).
+ sysctls (currently enabled by default for wider testing).Stack gap, W^X, shared page randomization, KASLR and other - techniques are explicitly out of scope of this work.
+ techniques are explicitly out of scope for this work.The paxtest results for the run with the previous version 5 of the patch applied and aggressively tuned can be seen at paxtest.log. - For comparison, the run on Fedora 23 on the same machine is at + For comparison, a run on Fedora 23 on the same machine is at fedora.log.
ASLR is enabled on a per-ABI basis, and currently is only @@ -1688,7 +1693,7 @@ ARMv6 ABIs. I expect to test and enable ASLR for arm64 as well, later.
-The procctl(2) control for ASLR is implemented, but +
A procctl(2) control for ASLR is implemented, but I have not provided a userspace wrapper around the syscall. In fact, the most reasonable control needed is per-image and not per-process, but we have no tradition to put the @@ -1732,7 +1737,7 @@ This project aims to fill that hole by making it possible to add RCTL rules for read bytes per second (BPS), write BPS, read I/O operations per second (IOPS), and write IOPS, and - adding a new throttling mechanism, to slow down offending + adding a new throttling mechanism to slow down offending processes when a limit gets hit.
The code has been committed and will ship with &os;
@@ -1745,13 +1750,13 @@
Simplify locking, getting rid of rctl_lock altogether Simplify locking, getting rid of rctl_lock altogether Improve statistics gathering by make it possible for
+ Improve statistics gathering by making it possible for
rctl -u to retrieve usage counters at a fixed point
- of time
Qt 5.6 is a great framework to build embedded GUI +
Qt 5.6 is a great framework for building embedded GUI applications, so when Qt 5.6 was released it was natural to - bring it up on Raspberry Pi. Current Qt support in ports is - very Xorg-centric so as a proof of concept I created an - experimental qt56-base and qt56-multimedia.
- -qt56-base can be configured for a generic ARM device with the - scfb video driver and specifically for Raspberry Pi in which - case it supports eglfs mode with hardware OpenGL + bring it up on the Raspberry Pi. The current Qt support in ports is + very Xorg-centric, so as a proof of concept I created an + experimental qt56-base and qt56-multimedia.
+ +qt56-base can be configured for a generic ARM device with the + scfb video driver, and specifically for Raspberry Pi in which + case it supports EGLFS mode with hardware OpenGL acceleration.
Check how embedded use cases can be fit into current +
Check how embedded use cases can be fit into the current bsd.qt.mk or whether a new port should be introduced.
This approach does not work when hardware is expandable. For +
This approach does not work when the hardware is expandable. For example, the Raspberry Pi and Beaglebone Black have the concept of capes or shields: snap-on PCBs that are connected to IO headers on the main board and provide additional @@ -1834,13 +1839,12 @@ trees can be overlaid on the base tree by the boot loader, thus providing an accurate description to the kernel.
-The proposed patch add this functionality to ubldr. The user - can specify a comma-separated list of overlays as U-Boot or - the loader fdt_overlays variable and ubldr will load +
The proposed patch adds this functionality to ubldr. The user + can specify a comma-separated list of overlays to U-Boot or + the loader fdt_overlays variable and ubldr will load them from the /boot/dtb/ directory and do the overlaying.
-The goal of this project is to reimplement the existing MMC/SD stack using the CAM framework. This will permit - utilizing the well-tested CAM locking model and debug + utilizing the well-tested CAM locking model and debugging features. It will also be possible to process interrupts generated by the inserted card, which is a prerequisite for implementing the SDIO interface. SDIO support is necessary - for communicating with WiFi/BT modules found on many + for communicating with the WiFi/BT modules found on many development boards, like Wan Raspberry Pi 3.
Another feature that the new stack will have is support for - sending SD commands from the userland applications using - cam(3). This will allow building device drivers in + sending SD commands from userland applications using + cam(3). This will allow for building device drivers in userland and make debugging much easier.
The first version of the code was uploaded to Phabricator for @@ -2015,9 +2019,9 @@
lld currently lacks comprehensive linker script expression evaluation support, and therefore cannot yet be - used to link the FreeBSD kernel. It also lacks versioned + used to link the &os; kernel. It also lacks versioned symbol support, and does not implement some options used in - the FreeBSD boot loader components.
+ the &os; boot loader components.Ed has been running experimental world builds of FreeBSD/amd64 with lld installed in place of @@ -2043,7 +2047,7 @@
Add or improve support for remaining FreeBSD +
Add or improve support for the remaining &os; architectures.
Object Storage
Ceph provides seamless access to objects using native - language bindings or radosgw, a REST interface that is + language bindings or radosgw, a REST interface that is compatible with applications written for S3 and Swift.
@@ -2121,22 +2125,20 @@ nodes that are running ZFS. The end station would be running bhyve on RBD disk that are stored in Ceph. -The FreeBSD build will build most of the tools in Ceph. Note - that the RBD-dependent items will not work since FreeBSD does +
The &os; build will build most of the tools in Ceph. Note + that the RBD-dependent items will not work since &os; does not have RBD yet.
-Build Prerequisites
-Compiling and building Ceph is tested on 11-CURRENT. It uses - the CLANG toolset that is available, which needs to be at + the Clang toolset that is available, which needs to be at least 3.7. Clang 3.4 (on 10.2-STABLE) does not have all the required capabilities to compile everything.
-This setup will get things running for FreeBSD:
+This setup will get things running for &os;:
Install bash and link it in /bin (requires root +
Install bash and link it in /bin (requires root privileges):
sudo pkg install bash
@@ -2157,7 +2159,7 @@Parts Not Yet Included
+Parts Not Yet Included:
BlueStore
-FreeBSD and Linux have a different AIO API, and that +
&os; and Linux have a different AIO API, and that needs to be made compatible. Next to that is the - discussion in FreeBSD about aio_cancel not + discussion in &os; about aio_cancel not working for all device types.
Tests that verify the correct working of the above are also excluded from the test set.
-Tests Not Yet Included
+Tests Not Yet Included:
ceph-detect-init/run-tox.sh
Because the current implementation does not know anything - about FreeBSD rc-init.
+ about &os;'s rc/init.Tests that make use of nosestests
+Tests that make use of nosestests
Calling these does not really work since nosetests is not in /usr/bin, and - calling through /usr/bin/env/nosetests does not + calling through /usr/bin/env nosetests does not work on FreeBSD.
Things To Investigate
+Things To Investigate:
Current and foremost task is to get the test set to +
The current and foremost task is to get the test set to complete without errors. This includes fixing several coredumps.
-Run integration tests to see if the FreeBSD daemons will +
Run integration tests to see if the &os; daemons will work with a Linux Ceph platform.
Investigate and see if an in-kernel RBD device could be - developed a la ggate.
+ developed akin to ggate.Integrate the FreeBSD /etc/rc.d init scripts in +
Integrate the &os; /etc/rc.d init scripts in the Ceph stack for testing and running Ceph on production machines.
The FreeBSD GNOME Team maintains the GNOME, MATE, and CINNAMON desktop environments and graphical user interfaces for - FreeBSD. GNOME 3 is part of the GNU Project. MATE is a fork of + &os;. GNOME 3 is part of the GNU Project. MATE is a fork of the GNOME 2 desktop. CINNAMON is a desktop environment using GNOME 3 technologies but with a GNOME 2 look and feel.
-This quarter, GNOME 3.18 and MATE 1.12 was committed to the +
This quarter, GNOME 3.18 and MATE 1.12 were committed to the ports tree.
-The bsd.gnome.mk and bsd.mate.mk framework - was replaced by the simpler Uses/gnome.mk and +
The bsd.gnome.mk and bsd.mate.mk frameworks + were replaced by the simpler Uses/gnome.mk and Uses/mate.mk style.
@@ -2353,14 +2355,14 @@ corporate donations and is used to fund and manage development projects, conferences and developer summits, and provide travel grants to FreeBSD developers. The Foundation purchases - hardware to improve and maintain FreeBSD infrastructure and - publishes FreeBSD white papers and marketing material to + hardware to improve and maintain &os; infrastructure and + publishes &os; white papers and marketing material to promote, educate, and advocate for the FreeBSD Project. The Foundation also represents the FreeBSD Project in executing contracts, license agreements, and other legal arrangements that require a recognized legal entity. -Here are some highlights of what we did to help FreeBSD last +
Here are some highlights of what we did to help &os; last quarter:
Fundraising Efforts
@@ -2373,11 +2375,11 @@OS Improvements
-The Foundation improves FreeBSD by funding software +
The Foundation improves &os; by funding software development projects approved through our proposal submission - process and our three software developer staff members. Two + process, and our three software developer staff members. Two Foundation-funded projects were started last quarter, the - first to improve stability of the vnet network stack + first to improve the stability of the vnet network stack virtualization infrastructure, and the second for phase two of the FreeBSD/arm64 port project.
@@ -2387,7 +2389,7 @@ bandwidth limits, porting libunwind to FreeBSD/arm, bug fixes in the autofs automount daemon, an updated version of the ELF Tool Chain, investigation of the - lld linker, improved X86 hardware support, and VM + lld linker, improved x86 hardware support, and VM subsystem stability improvements. Several of these projects are described elsewhere in this quarterly report. @@ -2397,18 +2399,18 @@ on packaging the base system with pkg(8), separating debug files from the default base system so they can be selected or deselected during an install, supporting - preparations, testing for the on-time release of FreeBSD + preparations, testing for the on-time release of &os; 10.3, and producing 11-CURRENT and 10-STABLE snapshot builds. -FreeBSD Advocacy
+&os; Advocacy
Anne Dickison, our Marketing Director, focused on creating and updating marketing material to promote and teach people - about FreeBSD. + about &os;. This material is available - for FreeBSD advocates to hand out at conferences and events to - promote FreeBSD. She also worked on promoting FreeBSD work + for &os; advocates to hand out at conferences and events to + promote &os;. She also worked on promoting &os; work being done over social media, blog posts, and articles.
Last quarter, we continued our Faces of FreeBSD series by @@ -2416,23 +2418,24 @@ Scott Long and Sean Bruno. - This is an opportunity to put a face to a name in the FreeBSD + This is an opportunity to put a face to a name in the &os; community and get to know more about the people who - contribute to FreeBSD.
+ contribute to &os;. -Work began on updating the FreeBSD 10.X brochure to +
Work began on updating the &os; 10.X brochure to include the new 10.3 features.
We love getting stories from companies who are successfully - using FreeBSD. Testimonials were received last quarter from + using &os;. Testimonials were received last quarter from Chelsio and Acceleration Systems.
ZFS was making some headlines, so we wrote a blog entry on - the longstanding relationship between FreeBSD and ZFS.
+ the + longstanding relationship between &os; and ZFS.We helped promote - the FreeBSD RISC-V - work being done.
+ the + &os; RISC-V work being done.Assistance was provided to Mellanox for their press release highlighting @@ -2446,22 +2449,22 @@ underrepresented groups. We provide financial support to the *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***