June 22, 2012

Patching vmware vmnet module for Linux 3.2.*

When installing vmware player 4.0.4, I had the nice surprise of finding out that the vmnet kernel module would not properly compile while starting the vmware service. 2012-06-22T15:34:41.039+01:00| vthread-3| I120: Building module vmnet. 2012-06-22T15:34:41.040+01:00| vthread-3| I120: Extracting the sources of the vmnet module. 2012-06-22T15:34:41.046+01:00| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmnet-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-25-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-06-22T15:34:41.835+01:00| vthread-3| I120: Failed to compile module vmnet! Manually directly compiling the module, we see a couple of incompatibility with the kernel header definitions ... Read more

February 24, 2012

Lower initial TCP RTO - Redhat kernel patch

I have recently back-ported the rfc2988bis changes (initRTO=1 and fallack) to the redhat 2.6.32 kernel - find the patch on my github account at @ https://github.com/alouche/redhat-2.6.32-kernel-patches/blob/master/rfc2988bis.patch On short lived connections with a lot of 3WHS, a lower initial RTO will improve 3WHS latency by 2*2000ms*X% (X% being the average of packet drops of a specific route). For further technical details, refer to https://www.ietf.org/proceedings/77/slides/tcpm-1.pdf

February 4, 2012

Linux CFS Algorithm and Virtual Runtime

Since the 2.6.23 kernel, the Linux kernel process scheduler previously O(1) was replaced by CFS - a Completely Fair Scheduler. CFS uses a red-black tree as data-structure and unlike previous Unix process scheduler does not account a traditional time slice of process execution but accounts what is referred as the process virtual runtime, expressed in nanoseconds (as opposed to Hz or jiffies). The usage of a self-balanced tree as the red-black tree allows for a lookup of $$O(\log\ n)$$ time per the height of the tree, but more on this later. ... Read more

October 12, 2011

RXDSK - RapidDisk - Ram Block Device

RXDSK is a project currently in development which is worth checking out and keeping an eye on. It is quiet similar to ZRAM (previously compache) and TMPFS/RAMFS but has some minor differences which renders it more flexible for generic usage. ZXDSK allows for example an export of the ram disk to a physical disk, making it therefore usable as a swap device. According to the developer, LZO is planned to be used as a compression layer, making it therefore quiet similar in this light to ZRAM. ... Read more

September 8, 2011

RedHat/CentOS 6 Xen Kernel RPMs

I have created a working Red Hat/CentOS 6 Xen Dom0 Kernel including backport patches. I had to hack to the blktap driver hooks to finalize support of the module due to the interface changes in the recent vanilla kernel. But all is working. [[email protected] ~]# uname -rsm Linux 2.6.32-131.12.1.el6.alouche.xen.dom0.x86_64 x86_64 [[email protected] ~]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 1024 4 r----- 235.5 For download of the RPMs or mirror use, see http://mirror. ... Read more

July 18, 2011

The Kernel Samepage Merging Process

KSM, simply put is a service daemon which scans the page addresses to find duplicate pages, merges them and therefore reduces the memory density. The code used in this post as example can be found under /mm/ksm.c in the kernel source. Before continuing, it is important to keep in mind that: KSM uses a red-black tree for the stable and unstable trees - efficiency is $$O(\log\ n)$$ per tree since the height can never be more than $$(2log\ (n+1))$$ with n being the number of nodes. ... Read more

May 9, 2011

KGPU - GPU Computing Framework

KGPU is a project that aims to port GPU capabilities directly to the linux kernel. Utilizing CUDA or OpenCL, userspace application can offload calculations to the GPU card, however KGPU extends this now transparently to the kernel. As stated by the project’s site The idea behind KGPU is to treat the GPU as a computing co-processor for the operating system, enabling data-parallel computation inside the Linux kernel. This allows us to use SIMD (or SIMT in CUDA) style code to accelerate Linux kernel functionality, and to bring new functionality formerly considered too compute intensive into the kernel. ... Read more

April 1, 2011

kojid dead but subsys locked

I have been toying with Koji ( A build server by Fedora) and encountered an issue while starting the kojid daemon on one of the builder host. [[email protected] ~]# /etc/init.d/kojid status kojid dead but subsys locked while the log kept showing [INFO] koji.build: Starting up Time for some debugging, I issue [[email protected] ~]# /usr/sbin/kojid --verbose --fg and see koji.AuthError: Traceback (most recent call last):` koji.AuthError: Traceback (most recent call last): File "/usr/share/koji-hub/kojixmlrpc. ... Read more

February 14, 2011

Don't like make? Use ninja

ninja is a new build system developed by the Chrome developers at google, used to compile chrome executables Source code is available at: https://github.com/martine/ninja Blog post about ninja at: http://neugierig.org/software/chromium/notes/2011/02/ninja.html In a nutshell, ninja is a simple and light weight replacement to “make”… it is surely worth a look if you are looking for a fast lightweight build system alternative.

August 29, 2010

systemd - Yet another replacement for init

systemd is a new replacement to the System V init system long used in all flavor of UNIX and Linux systems. Ok! ok! not all flavor of Linux/Unix.. Solaris switched a long time ago to use SMF while Ubuntu/Fedora (and the distribution targeted to end users) use Upstart - and yes if you consider Darwin(OSX) a true Unix system :-X, then those guys have used/use launchd. You can read the purpose and goals of systemd at http://0pointer. ... Read more