This is the second article of a two-part series in which I describe the automated testing infrastructure that I am developing for the SystemTap project. The first article, “Automating the testing process for SystemTap, Part 1: Test automation with libvirt and Buildbot,” described my solution for managing test machines and for producing SystemTap test results. This follow-up article continues by describing Bunsen, the toolkit I developed for storing and analyzing test results.
Continue reading Automating the testing process for SystemTap, Part 2: Test result analysis with Bunsen
For a multitude of reasons, developers usually compile the project they are working on with only one compiler. On Red Hat Enterprise Linux 8, the system compiler for C and C++ is GNU Compiler Collection (GCC) 8, and newer versions are available through the GCC toolset.
Continue reading Use multiple compilers to build better projects
Over the past year, I have been implementing an automated infrastructure to test the SystemTap project and to collect and analyze the test results. SystemTap is a scripting language for creating instrumentation to observe a live running Linux kernel and user-space applications. The SystemTap language translator produces Linux kernel modules. These modules depend on internal details of the Linux kernel that vary significantly between different versions of Linux.
Continue reading Automating the testing process for SystemTap, Part 1: Test automation with libvirt and Buildbot
Recently, I’ve been trying to improve the speed of the Clang compiler for C and C++. When I profile the Clang pre-processing step on a large file, one function quickly stands out:
Continue reading Optimizing the Clang compiler’s line-to-offset mapping
OpenMP is an API consisting of compiler directives and library routines for high-level parallelism in C and C++, as well as Fortran. Version 5.1 of OpenMP was released in November 2020 and version 5.0 was released in November 2018. This article discusses the new features from OpenMP 5.0 which are implemented in GCC 11, and some new OpenMP 5.1 features.
Continue reading New features in OpenMP 5.0 and 5.1
The latest versions of Red Hat Software Collections and Red Hat Developer Toolset are available now in beta. Software Collections 3.7 delivers the latest stable versions of many popular open source runtime languages, web servers, and databases natively to the Red Hat Enterprise Linux platform. These components are supported for up to five years, supporting a more consistent, efficient, and reliable developer experience.
Continue reading Red Hat Software Collections 3.7 and Red Hat Developer Toolset 10.1 beta versions now available
Rayon is a data parallelism library for the Rust programming language. Common reactions from programmers who start to use Rayon express how it seems magical: “I changed one line and my code now runs in parallel!” As one of Rayon’s authors, I am of course glad to see happy users, but I want to dispel some of the magic and give credit where it’s due—to Rust itself.
Continue reading How Rust makes Rayon’s data parallelism magical
This article is about the poll mode driver (PMD) automatic load balance feature in Open vSwitch with a Data Plane Development Kit data path (OVS-DPDK). The feature has existed for a while but we’ve recently added new user parameters in Open vSwitch 2.15. Now is a good time to take a look at this feature in OVS-DPDK.
Continue reading Automatic load balancing for PMD threads in Open vSwitch with DPDK
One of the optimizations GNU Compiler Collection (GCC) performs on C and C++ programs is value range propagation (VRP). VRP determines what subranges a variable can contain and uses that information to eliminate redundant calculations. This in turn makes programs smaller and run faster.
Continue reading Value range propagation in GCC with Project Ranger
In this final article of our C# 9 series, we’ll look at advanced features related to native interop and performance in C# 9.
Continue reading Some more C# 9