Before joining Dell I was mostly working in kernel writing in C programming language. At Dell I still work on mostly low level stuff, but this time it is user-mode, so I am not tied up to C anymore. We’re writing in C++ and I am learning C++. One of the less appealing things for […]
As you know, I changed a couple of workplaces during my career. Long story short, one interesting thing that I noticed in different companies is various models for multi-threaded programs (mostly for large embedded systems).
Posted on February 15, 2010, 12:03 pm, by Alexander Sandler, under
Blog.
Few days ago I’ve written a post explaining how to do a direct I/O in Python. But then I thought that it might be a good idea to explain what direct I/O is. So, here we go. As surprising as it is, when you write some information to the disk, it doesn’t get there immediately. […]
One of the features of x86 architecture is ability to spread interrupts evenly among multiple cores. Benefits of such configuration seems to be obvious. Interrupts consume CPU time and by spreading them on all cores we avoid bottle-necks. I’ve written an article explaining this mechanism in greater detail. Yet let me remind you how it […]
Posted on May 27, 2009, 1:51 pm, by Alexander Sandler, under
News.
This article explains how to implement performance critical reference counting in C/C++ program, using atomic variables and gcc. Enjoy it. Read the article here.
Table of contents Introduction What reference counting needed for? This is how we will use atomic variables to count references to objects The naive approach The RCU approach Where atomic variables coming from? Conclusion IntroductionBACK TO TOC Lets say we have a data structure that manages objects and we would like to manipulate the data […]
There are plenty of virtualization technologies. There are organizations like VMware, VirtualBox and XEN, whose virtualization allows one to run several virtual computers using one physical computer. I worked at a company called ScaleMP. ScaleMP’s technology, vSMP, turns multiple physical computers into one large computer. Today I was looking for something different. I was looking […]
Table of contents Introduction What reference counting needed for? This is how we will use atomic variables to count references to objects The naive approach The RCU approach Where atomic variables coming from? Conclusion Introduction The obvious Memory leaks Hibernation The less obvious I/O cache Bottom line IntroductionBACK TO TOC This short article deals with […]
Tags:
cache,
hibernate,
io,
kernel,
leaks,
linux,
memory,
partition,
performance,
RAM,
speed,
swap,
virtual memory 34 Comments |
Read the rest of this entry »
Posted on June 3, 2008, 6:28 pm, by Alexander Sandler, under
News.
This concludes a long research that I’ve made. I wanted to know if unaligned memory access is really that bad, or not a big deal. Eventually I made some quiet interesting discoveries. Read on.
Tags:
aligned,
cache,
ddr,
ddr2,
l1,
l2,
l3,
memory,
memory access,
misaligned,
nvram,
performance,
protocol,
RAM,
sdram,
speed,
unaligned No Comments |
Read the rest of this entry »
Table of contents Introduction What reference counting needed for? This is how we will use atomic variables to count references to objects The naive approach The RCU approach Where atomic variables coming from? Conclusion Introduction The obvious Memory leaks Hibernation The less obvious I/O cache Bottom line Introduction The theory Measurements Implementation Meet the hardware […]
Tags:
aligned,
cache,
CPU,
ddr,
ddr2,
Intel,
l1,
l2,
l3,
memory,
misaligned,
nv,
performance,
Processor,
protocol,
RAM,
sdram,
speed,
unaligned 29 Comments |
Read the rest of this entry »