Overview
I graduated with MS in Computer Science on May 11, 2012. I was part of the PLASMA research group. My program advisor was Emery Berger.
Work Experience
[June 18 - Present] Intel: Systems Sofware Engineer
[May 2011 - Aug 2011] Microsoft: Research Intern at Microsoft Research (eXtreme Computing Group). Working on enhanced caching facilities for Bing and SQL Server products.
[Sept 2006 - Apr 2010] VMware: Work involved fixing bugs and implementing features for VMware ESX Server, a bare-metal x86 virtualization platform. Received "outstanding" rating for year 2007. Focus: Memory Management and CPU Scheduling.
Research
My research interests include Virtualization, Operating Systems (memory management in particular)
Publications/Articles
- Evaluating effects of cache memory compression on embedded systems. Linux Symposium, Ottawa, 2007 (pdf)
- Published article at Linux Weekly News (LWN): Compcache: in-memory compressed swapping (link)
Projects
- Memory Compression for Virtualized Environments: A scalable implementation of transparent memory compression scheme -- for both heap pages and filesystem cache pages -- for the Linux kernel to increase consolidation ratios for virtualized environments (KVM in particular). Project selected in Google Summer of Code 2010 program and prize money of $5000 was awarded for successful completion. Article: http://lwn.net/Articles/397574/
- Compressed Caching for Linux: This introduces a new layer in virtual memory hierarchy - Compressed Cache. It compresses and stores pages that would otherwise have been swapped to slow disks or freed under memory pressure. This effectively increases RAM space and avoids /reduces accesses to slow disks. This project was funded as part of Google Summer of Code 2006 program and prize money of $4500 was awarded for successful completion. It is now included in mainline Linux kernel and also part of (unofficial) builds of Google Android. Project home: http://code.google.com/p/compcache/
- LZO compression algorithm: This is a fast de/compression algorithm that favors speed over compression ratio. This was ported to Linux kernel and was accepted in mainline kernel since version 2.6.24.
- xvMalloc Memory Allocator: This is allocator for Linux kernel developed from scratch to allow large amounts of memory to be allocated even on 32-bit kernels. It has very small metadata overhead, low fragmentation, O(1) alloc/free. It's part of compcache project. Details: http://code.google.com/p/compcache/wiki/xvMalloc
- TLSF Allocator Enhancement: TLSF (Two-Level Segregate Fit) is dynamic memory allocator with O(1) allocation and deallocation with low fragmentation. This allocator was ported to Linux kernel with additional functionality of dynamically expanding pools. It's now included in Xen. Details: http://code.google.com/p/compcache/wiki/TLSFAllocator
- Swap Replay: This is infrastructure for simulating swapping activity under userspace. This allows accurate evaluation of effects of page-sharing (among various systems) and compressed swapping. Details: http://code.google.com/p/compcache/wiki/SwapReplay
- CIFS VFS Enhancement: Improvements to CIFS VFS implementation in Linux kernel 2.6.8 that enhances network file copy performance from server (CIFS) by 10-15%. This sends multiple read requests to server in parallel instead of sending one request and waiting for its response before sending next request as is done currently. Kernel patch can be found at: http://linux-mm.org/NitinGupta
Education
B. Tech (CSE), Indraprastha University, Delhi, India