Analyzing Changes to the Binary Interface Between the Linux Kernel and its Modules

This article is for people interested in long-term Linux kernel maintenance. It introduces you to tools that can help keep the binary interfaces between the kernel and its loadable modules stable during the entire lifetime of a supposedly stable kernel, while the code is modified. As these tools are essentially analysis tools, they can be used not only by kernel developers, but also by quality assurance engineers and advanced kernel users (system programmers).

Upstream in-tree kernel modules: the ideal situation

In the canonical development model of the Linux kernel, the source code of all dynamically loaded modules is hosted alongside the source code of the core kernel. In this model, whenever the core kernel changes the interface it exposes to its modules, the compilers detects that the interface changed, making it easy to adjust the code of the modules accordingly.

Continue reading “Analyzing Changes to the Binary Interface Between the Linux Kernel and its Modules”


Open vSwitch-DPDK: How Much Hugepage Memory?


In order to maximize performance of the Open vSwitch DPDK datapath, it pre-allocates hugepage memory. As a user you are responsible for telling Open vSwitch how much hugepage memory to pre-allocate. The question of exactly what value to use often arises. The answer is, it depends.

There is no simple answer as it depends on things like the MTU size of the ports, the MTU differences between ports, and whether those ports are on the same NUMA node. Just to complicate things a bit more, there are multiple overheads, and alignment and rounding need to be accounted for at various places in OVS-DPDK. Everything clear? OK, you can stop reading then!
However, if not, read on.

Continue reading “Open vSwitch-DPDK: How Much Hugepage Memory?”


Using Camel-Undertow component supporting http2 connection

This article would help to configure http2 protocol support for the camel-undertow component.

  • Camel’s undertow component use embedded undertow web-container of version undertow-core:jar:1.4.21. This version also supports the http2 connection.
  • I have used camel version 2.21.0-SNAPSHOT from upstream
  • Also, the curl version to test application using camel-undertow component is 7.53.1. This curl version supports –http2 flag for sending an http2 request.
  • I have also used nghttp to test application from linux terminal. However, this article is not about http2 insights.
  • For http2 details, I found articles [1] and [2] helpful.

Continue reading “Using Camel-Undertow component supporting http2 connection”


How to enable/disable repository using Subscription Manager or Yum-Utils

This blog is to resolve the following issues/answering the following questions.

  1. How to enable a repository using the Red Hat Subscription Manager/yum?
  2. Need to access a repository using the Red Hat Subscription Manager/yum?
  3. How to disable a repository using the Red Hat Subscription Manager/yum?
  4. How to subscribe a child channel using the Red Hat Subscription Manager/yum?

Continue reading “How to enable/disable repository using Subscription Manager or Yum-Utils”


Technical Cheat Sheets for Developers

Over the past few months, we’ve been building and releasing a variety of technical cheat sheets and we’ve been getting many requests for more.  We are working on new cheat sheets every day, ok maybe not weekends, but almost every day. Here are the cheat sheets available today: Linux Commands Cheat SheetAdvanced Linux Commands Cheat SheetWildfly Swarm Cheat SheetContainers Cheat SheetMongoDB Cheat SheetKubernetes Cheat Sheet and the Eclipse Vert.x Cheat Sheet.

Continue reading “Technical Cheat Sheets for Developers”