Abhishek Srivastava


vmkernel engineer @ VMWare
Email: abhishek [AT] asrivas [DOT] me
If you would like to send me an encrypted email, use my PGP key.
Blog

About Me

I have been working with VMWare on the ESXi product (specifically in the vmkernel core team) for the past 6 years. The charter for this team revolves around maintaining the core infrastructure of the ESXi hypervisor's kernel: memory management, synchronization primitives, thread management, APIs for driver writers, logging, error reporting are some areas among many others. More recently, I've been involved in looking into avenues for making ESXi and more generally, VSphere a first class Kubernetes platform.

Workload Control Plane: Leading a team of engineers with a goal to modernize ESXi such that it can natively support Kubernetes workloads. The role requires having a deep understanding of both of these fairly complex solutions with opposing design goals, taking the relevant parts of each to develop a solution that brings the best of both worlds to the average VMware customer.

RDMA: I am the tech lead for the RDMA subsystem in the vmkernel: a zero-copy, kernel bypass technology that allows for extremely low latency and high bandwidth communications. Along with the virtual devices team, the charter is to expose this capability to a virtual machine as a device and allow applications in the guest to leverage RDMA. RDMA is also being explored to expose block storage (iSCSI over RDMA) to ESXi and for vMotion (hot migration of virtual machines).

Caller Allocated Timers in the vmkernel: I have been leading an effort to re-architect the allocation strategies for timers in the vmkernel to better isolate misbehaving modules and improve the overall stability of the vmkernel.

Scalability Improvements in Logging: Implemented a lock-free algorithm for a multiple producer single consumer circular log buffer, making the logging process asynchronous getting rid of lock contention, and improving the overall throughput for logs emanating from the kernel. On the userspace side, made various improvements to the syslog daemon on ESXi to improve memory consumption, allow for more resilient network logging and improve error reporting from the daemon.

Migratable Vmkernel Observations: Vmkernel observations are an error reporting mechanism that allow for aggregating errors from various subsystems to better diagnose and root cause failures that occur on ESXi. Migratable vmkernel observations allow for these error contexts to be moved from one kernel thread to another, posing a more challenging lifecycle in terms of synchronization and memory management. Implemented system calls on ESXi to allow for the creation, manipulation and destruction of these objects.

Intel TSX: Mentored an intern who implemented hardware transactional memory in the vmkernel using both HLE and RTM. Gathered performance data, characterized different types of critical sections and how throughput varies for HLE and RTM.

Transcendent Memory: Exploring how yankable (transcendent) memory can be leveraged in the hypervisor to better utilize the idle memory on the hypervisor.

I am actively involved in coordinating a research reading group within the vmkernel team along with assistance from the VMware Research Group to foster discussions around novel trends being explored by the external research community and for potentially having a more active engagement with academia.

I also represent the vmkernel core team's interests in discussions around testing strategies, frameworks and bug triaging that the QE group handles.

Before joining VMWare, I was a graduate student at Columbia University in New York, NY. Some of the courses I took at Columbia were:

I completed my undergraduate studies in Computer Engineering from the University of Pune in 2009. Before I rejoined grad school in Fall 2010, I worked at Avaya Labs in India, mostly on applications for improving remote failure diagnosis of Avaya products.

I interned at Google during the summer of 2011. My project over the summer consisted of analysing and developing probability distributions to model Google's backend processes so that they could be replayed in Linsched (a framework that ran the linux kernel scheduler in user space). This framework was later released to the open source community.

Research Projects at Columbia University

Teaching Experience

I was a TA for Search Engine Technology and Social Networks from A Systems Point of View in Spring 2011 at Columbia University.

Hobbies

Servers have always fascinated me. I host my own web and mail servers and love spending time on building up my homelab bit by bit.

I have an Amateur Radio Extra license and I am usually active on VHF / UHF with the callsign K6ASR.

I try to swim atleast once a week; in the summers, I like going swimming out in the open (lakes and watering holes). I also like traveling, hiking and playing tennis.

Last Updated : 21st Oct 2018 0938 PST