Category: Linux

  • June 17, 2015 - Tilmann Scheller

    A Conclusion to Accelerating Your Build with Clang

    This is the second part of a series that explores improving the build process using Clang. This post will take a look at the remaining methods for speeding up the build and will conclude with an overall summary of the improved speeds. To read an introduction to this experiment as well as the build system we are using, take a look at part one of this series. Here is our list of ideas again: Generic: Build with Clang rather than GCC Use a faster linker, such as GNU gold Optimize our host compiler binary aggressively (LTO, PGO, LTO+PGO) Move parts of the debug info into separate files: split DWARF Use Ninja rather than GNU make in CMake-based projects Cache object files with ccache Use a shared library build instead of a static build for incremental debug builds Clang/LLVM-specific: Optimize TableGen for debug builds Build less: e.g. build only the backends we […]

    Read More
  • Building software is a time-consuming task, especially if you are working on large codebases such as Clang and LLVM (2.5M C++ lines combined). As an LLVM developer, a significant portion of my time is spent building the software because a clean build take several minutes to complete. The work outlined in this series started out as an experiment to see by how much we could speed up the build process by using different tools or build settings rather than simply upgrading our hardware, and the goal is to squeeze as much performance out of the toolchain as possible. The focus is on building Clang/LLVM, however most of the results and corresponding suggestions will apply to other large C++ projects as well, and this post expands on a lightning talk I recently gave at the EuroLLVM 2015 conference. Taking a Look at the Options So what can we actually do to speed up […]

    Read More
  • Open Source Wrap Up June 6 – 12, 2015 LinkedIn Releases Pinot: An Open Source, Real-Time, Business Analytics Platform Pinot has been the de-facto analytics program used by LinkedIn for more than two years to provide insight to information like profile views, company follow analytics and A/B testing analytics. The program provides an OLAP datastore that emphasizes scalability, low latency, data freshness, and high availability. It uses data from Hadoop and Kafka, and provides an SQL-like query language that includes functionality such as: filtering, aggregation, group by, order by, and distinct entries. The source code can be acquired on GitHub, and the project wiki has detailed information about why and how you might want to use this software. Read more at the LinkedIn Engineering blog. Wayland Gets a License Fix A problem with Wayland’s license was recently uncovered when a Wikipedia editor pointed out a discrepancy between the license statement […]

    Read More
  • Entering any technical field is very challenging and requires a high amount of commitment, passion and grit to be successful. Yet, the work is highly rewarding and fulfilling, which makes the payoff completely worth the effort. In this article, I will share my journey into the highly technical software engineering/open source field as a woman, explaining how I stayed focused and motivated to find my way into vital software projects and endeavors.  My hope is that my story can inspire others who may be unsure whether they should take on this challenge to go for it! My Choice to Launch an Engineering Career Every career has a beginning, and mine started with the conscious decision to become an engineer when I was young. I loved math, physics and chemistry, and I tended to gravitate toward analytical and logical pursuits. There were some doubters and detractors, including my grandfather who said […]

    Read More
  • Open Source Wrap Up: May 20 – June 5, 2014 Automotive Grade Linux Released Automotive Grade Linux (AGL) is a collaborative environment to bring a Linux software stack to the connected car. The project has released its own open source In-Vehicle Infotainment (IVI) software that features a dashboard, home screen, navigation map, media playback, audio controls, and more. Each feature also includes detailed design requirement documents with descriptions, use cases, graphical assets, and architecture diagrams, all available on the project wiki. Moving forward, the project will focus on developing standardized instruments clusters in an effort to expand the role of AGL into more aspects of the car ecosystem as a part of the push towards autonomous cars. Read more from the Linux Foundation. Fedora 22 Released Fedora 22, the latest version of a popular Linux distribution that’s backed by Red Hat, has been released. It includes quite a few improvements, […]

    Read More
  • There are many companies shipping products based on ARMv8 today, including AMD, Samsung, NVIDIA, Cavium, Apple, Broadcom, Qualcomm, Huawei, and others.  What makes ARM unique is the differentiation between vendors; while a majority of features are based on the ARM reference processor and bus architectures, additional custom features may be introduced or reference features may be omitted at the vendor’s discretion. This results in various profiles that are tailored to specific products, making it extremely difficult for another architecture to compete against such a wide selection of choices. As ARMv8 matures, it’s moving out of mobile and embedded devices into Industrial IoT (Internet of Things), network routers, wireless infrastructure, and eventually, the cloud. For those of you not familiar with KVM, it stands for Kernel Virtual Machine. It’s a Linux Kernel hypervisor module. KVM is the primary open-source-based hypervisor, and is the default for Openstack, a popular cloud computing software […]

    Read More
  • Open Source Wrap Up: May 22-29, 2015 Open Source Democratizes Prosthetics Development & Production There have been a number of open source prosthetic projects that have emerged in recent years including the Open Hand Project and The Open Prosthetics Project. e-NABLE is yet another of these projects and includes more than 5,000 3D printing enthusiasts who volunteer their time and equipment to produce low-cost prosthetic arms and hands to people all over the world. These prosthetics are designed mostly as temporary solutions since they are made of plastic and aren’t very durable, but the low cost, adaptable nature has made them ideal for children who will need regular adjustments to the devices as they grow. Recently, volunteer Albert Manero designed and produced an Iron Man-themed prosthetic arm for a young fan of the series and even got Robert Downey Jr involved in presenting the arm to the boy. The e-NABLE […]

    Read More
  • Part 1 of this series can be read here. Supporting embedded Digital TV (DTV) hardware is complex, considering that such hardware generally has multiple components that can each be rewired during runtime to dynamically change the stream pipelines and provide flexibility for activities like recording a video stream while tuning into another channel to watch a different program. The first article of this series described how the Digital Video Broadcasting (DVB) pipelines are setup and the needs that should be addressed by the Linux Kernel. In this article, I’ll  discuss the needs of the DVB API with a focus on the network interfaces that are part of any DTV device. An Introduction to Digital TV Network Interfaces Typical DTV devices have dedicated hardware that provides the network interfaces. If you would like to learn more about such hardware, check out the first post in this series, specifically Figure 6 and […]

    Read More
  • May 20, 2015 - Shuah Khan

    How Can IOMMU Event Tracing Help You?

    Input/Output Memory Management Unit (IOMMU) event tracing can be extremely beneficial when debugging IOMMU hardware, BIOS, and firmware problems. In addition, IOMMU event tracing can be used to debug  Linux kernel IOMMU driver, device assignment, and performance problems related to device assignment in virtualized and non-virtualized environments. If you aren’t familiar with IOMMU Event Tracing, the first article in this series covered the fundamental concepts behind it, in addition to how tracing can be used to track information about devices as they are moved between guest and host environments. This article will focus on how to use IOMMU event tracing effectively, and will provide a few examples of IOMMU event tracing in action. How to Enable IOMMU Event Tracing at Boot-Time IOMMU trace events can be enabled using the Kernel boot option trace_event. The following enables all IOMMU trace events at boot-time:

    The following enables map and unmap events at […]

    Read More
  • Open Source Weekly Wrap Up: May 9 -15 2015 2015 Future of Open Source Study For the last 15 years, North Bridge and Black Duck Software have joined efforts every year to conduct a survey about the use of open source in modern business. A record 1,300 people responded to the survey this year, up from 822 in 2013. Respondents included software engineers, CIOs, CEOs, educators, analysts, and more. There is little that has changed in open source trends, and this survey demonstrates the continued pervasive expansion of open source. Here are some notable findings from this year’s survey: Enterprise Use/Participation 78% of companies run on open source, and less than 3% don’t use FOSS at all. 64% of respondents said their company currently participates in open source projects, up 14% YOY. 88% expect their companies to increase open source contributions, up from 56% last year. 66% consider OSS to […]

    Read More