From owner-svn-doc-all@freebsd.org Tue Apr 12 23:24:56 2016
Return-Path: This is a draft of the January–March 2016
- status report. Please check back after it is finalized, and
- an announcement email is sent to the &os;-Announce mailing
- list.
The first quarter of 2016 was another productive quarter for - the &os; project and community. [...]
- -Thanks to all the reporters for the excellent work!
- -The deadline for submissions covering the period from April - to June 2016 is July 7, 2016.
- ?> - - -In February, Program Verification Systems used their - PVS-Studio tool to run a static analysis of the &os; kernel. - A Phabricator review was created to allow developers to share - comments on the results. A number of bugs ranging from - trivial typos to redundant code to important logic errors were - found and fixed. Some results were false positives. Several - of these were addressed by changing code that misled the - static analyzer and could also mislead a human reader.
- -The cooperation that Program Verification Systems offers to - open-source projects like &os; benefits everyone. We thank - them for sharing this analysis and their insights with us.
- -Federico Caminiti created an entirely new Spanish translation - of the 31,000-word - FAQ - with editorial help from Carlos J Puga Medina.
- -This landmark accomplishment marks the first use of the new - PO translation system to translate an entire book!
- -Ruey-Cherng Yu has begun an ambitious Chinese translation - (zh_TW) of the 64,000-word - Porter's Handbook. - About half of the strings in the book have been translated so - far.
- - -Help add and improve translations of &os; documents into - Spanish: - start of freebsd-translators thread.
-Help add and improve translations of &os; documents into - Chinese or other languages.
-A new option "-manage-gids" was added to the nfsuserd - daemon. This option tells the NFS server to use the list of - groups for a uid on the server and not the list of groups in - the NFS RPC request. Use of this option avoids the 16 group - limit for NFS RPCs using AUTH_SYS (the default).
- -Work is ongoing with respect to development of pNFS support - for the NFS server using GlusterFS as a back end. This will - be a long term project with the eventual goal of allowing the - NFS server to scale beyond a single server system. Hopefully - it will be available for testing in late Spring 2016. pNFS - allows a NFSv4.1 client to do reads/writes directly to a data - server and not the NFS server.
- - -Development of the pNFS server will be in need of testing - or it will never progress to a near production status. I - hope to have code available in FreeBSD's subversion projects - branch for testing in late spring 2016.
-The purpose of this is to enable use of the Signal Processing - Engine found in the NXP/Freescale e500v2 SoC. The SPE uses - opcodes overlapping with Altivec, so is mutually exclusive. - Additionally, the e500v2 does not have a traditional FPU, and - instead uses the SPE for all floating point operations (or - emulation as is currently done). Combined with the fact that - the SPE ABI is incompatible with traditional ABI, a new - MACHINE_ARCH is created to address this.
- -A project branch has been created with the work. A - powerpcspe kernel boots on the RouterBoard RB800, and base - utilities run properly.
- - -Potentially optimizing setjmp/longjmp to not use SPE unless - it's already been enabled. This would save the kernel - switch for processes that don't otherwise use the SPE. This - is a low priority task which may not be completed.
-The major news for this quarter is the update of the i915 - driver in the kernel! The driver now matches Linux 3.8.13, so - it includes initial Haswell support. Linux 3.8 is already - three years old, but work continues to upgrade DRM further. - In particular, the move to linuxkpi was started.
- -In the Ports tree, Mesa was updated to 11.1.2. The next minor - release, 11.2.0, is ready for testing in our development tree. - We also updated libclc to 0.2.0.20151006, a library used by - Mesa to provide OpenCL support.
- -We attended FOSDEM 2016 in Brussels. Jean-S??bastien P??dron - gave a talk to explain the work of the graphics team and show - how people can contribute. It was well received and the - presentation was followed by interesting discussions. FOSDEM - was also a nice occasion to meet and talk again to the nice - "upstream" developers of the graphics stack.
- -For the first year, we added two ideas for GSoC 2016: one for - a kernel task, one to redesign libdevq. Six students - submitted a proposal for those two ideas, that was unexpected! - We now need to decide which one we want to mentor and the - choice is difficult.
- -The blog is still down. We started to work on a replacement. - We will probably go with a static generated website hosted on - GitHub pages.
- - -See the "Graphics" wiki page for up-to-date - information.
-Allwinner SoC are used in multiple hobbyist devboards and - single board computers. Recently, support for these SoC have - received a lot of updates
- -Task done during first quarter :
- -Ongoing task :
- -SPI driver
-LCD Support
-Any unsupported hardware device that might be of - interest.
-FreeBSD Mastery: Specialty Filesystems - is now available everywhere, in print and ebook.
- -Lucas and Allan Jude have also finished writing "FreeBSD - Mastery: Advanced ZFS." It's in copyedit now, and should be - available before May 2016. Check - zfsbook.com for details.
- -Lucas' next book, "PAM Mastery," has a whole bunch of FreeBSD - content in it.
- - -Make grammar corrections to Advanced ZFS, get it in - print.
-Since the last report &os; support for ThunderX has been - significantly improved and stabilized. Semihalf contributions - include the following items:
- -The driver supports all available Ethernet connections (1, - 10, 30 Gbps) and system can can saturate 10 Gbps link (on Tx) - using 4 CPU cores.
- -This work is integrated to the FreeBSD HEAD on on-going - basis.
- - -Support for multi Queue Set operation in VNIC
-The new thread target that directly uses ptrace(2) - was committed upstream and included in GDB 7.11. The port was - also updated to GDB 7.11.
- - -Figure out why the powerpc kgdb targets are not able to - unwind the stack past the initial frame.
-Add support for more platforms (arm, mips, aarch64) to - upstream gdb for both userland and kgdb.
-Add support for debugging powerpc vector registers.
-Add support for catching system calls.
-Add support for $_siginfo.
-Add support for ELF auxv data via 'info auxv'.
-Implement 'info os' commands.
-Implement gdbserver for freebsd.
-A new implementation for support of 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 support for - rescanning PCI busses.
- -The current implementation has been tested on systems with - ExpressCard but could use additional testing, especially on - systems with other PCI-express HotPlug features such as - mechanical latches, attention buttons, indicators, etc.
- - -Split branch into separate logical changes as commit - candidates.
-Additional testing.
-The KDE on FreeBSD team focuses on packaging and making sure - that the experience of KDE and Qt on FreeBSD is as good as - possible.
- -While the list of updates is shorter compared to the previous - quarter, the team remained busy and work on KDE Frameworks 5 - and Plasma 5 continues.
- -This quarter, Tobias Berner, who has been driving our KDE - Frameworks 5 and Plasma 5 efforts from the beginning, received - a KDE commit bit, and has been putting it to good use by - upstreaming FreeBSD across several KDE repositories. Another - team 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 formed. Welcome back, Ade!
- -The following big updates were landed in the ports tree this - quarter. In many cases, we have also contributed patches to - the upstream projects.
- -In our experimental area51 repository, work on Qt 5.6.0 is - underway in our experimental repositories. Additionally, at - the time of 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 - follow the instructions in - our website - and report their results to our mailing list. Qt5 5.6.0 is in - our "qt-5.6" branch, and Plasma 5 and the rest is in the - "plasma5" branch.
- - -Land the KDE Frameworks 5 and Plasma 5 ports to the - tree.
-Commit the DigiKam 4.14.0 update currently being worked on - in our experimental repository.
-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. Process-shared locks - can be used by threads from any process, assuming the process - can map the lock memory into its address space.
- -Our libthr, the library implementing the POSIX threads and - locking operations, uses a pointer as the internal - representation behind a lock. The pointer contains the - address of the actual structure carrying the lock. This has - unfortunate consequences for implementing the - PTHREAD_PROCESS_SHARED attribute for locks, since - really only the pointer is shared when the lock is mapped into - distinct address spaces.
- -A common opinion was that we have no choice but to break the - libthr Application Binary Interface (ABI) by changing the lock - types to be the actual lock structures (and padding for future - ABI extension). This is very painful for users, as our - previous experience with non-versioned libc and libc_r - shown.
- -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.
- -New umtx operations to create or look up the shared object, - by the memory key, were added. Libthr is modified to lookup - the object and use it for shared locks, instead of using - malloc() as for private locks.
- -The pointer value in the user-visible lock type contains a - canary for shared locks. Libthr detects the canary and - switches into the shared-lock mode.
- -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 - 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 - hook into vm object termination to avoid leakage, but long - liviness of the vnode vm object prolonges the off-page - existence for shared locks backed by files, however unlikely - they may be.
- -Libthr with inlined locks become informally known as libthr2 - project, since the library name better be changed instead of - only bumping the library version. The rtld should ensure that - libthr and libthr2 do not become simultaneously loaded into a - single address space.
- - -Implement robust mutexes.
-Evaluate and implement libthr2.
--
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 - 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.
- -If you want to help porting or testing, feel free to contact - me or the mailinglist ruby@FreeBSD.org.
- -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 - project, there is also ongoing work to stay in sync with - upstream. Have fun!
- -Build improvements for buildworld on head continue. - Some highlights include:
- -Opportunistically skipping the bootstrap compiler phase of - buildworld.
-Skipping the 'make obj' tree walk.
-Enabling WITH_META_MODE in buildworld to provide a - reliable incremental build using filemon(4) and bmake's - .MAKE.MODE=meta. This should not be confused with - WITH_DIRDEPS_BUILD which previously was named - WITH_META_MODE and is a drastically different build - system presented at BSDCan 2014 by Simon Gerraty.
-