Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Asim Kadav is active.

Publication


Featured researches published by Asim Kadav.


ACM Transactions on Storage | 2010

Differential RAID: Rethinking RAID for SSD reliability

Mahesh Balakrishnan; Asim Kadav; Vijayan Prabhakaran; Dahlia Malkhi

SSDs exhibit very different failure characteristics compared to hard drives. In particular, the bit error rate (BER) of an SSD climbs as it receives more writes. As a result, RAID arrays composed from SSDs are subject to correlated failures. By balancing writes evenly across the array, RAID schemes can wear out devices at similar times. When a device in the array fails towards the end of its lifetime, the high BER of the remaining devices can result in data loss. We propose Diff-RAID, a parity-based redundancy solution that creates an age differential in an array of SSDs. Diff-RAID distributes parity blocks unevenly across the array, leveraging their higher update rate to age devices at different rates. To maintain this age differential when old devices are replaced by new ones, Diff-RAID reshuffles the parity distribution on each drive replacement. We evaluate Diff-RAIDs reliability by using real BER data from 12 flash chips on a simulator and show that it is more reliable than RAID-5, in some cases by multiple orders of magnitude. We also evaluate Diff-RAIDs performance using a software implementation on a 5-device array of 80 GB Intel X25-M SSDs and show that it offers a trade-off between throughput and reliability.


symposium on operating systems principles | 2009

Tolerating hardware device failures in software

Asim Kadav; Matthew J. Renzelmann; Michael M. Swift

Hardware devices can fail, but many drivers assume they do not. When confronted with real devices that misbehave, these assumptions can lead to driver or system failures. While major operating system and device vendors recommend that drivers detect and recover from hardware failures, we find that there are many drivers that will crash or hang when a device fails. Such bugs cannot easily be detected by regular stress testing because the failures are induced by the device and not the software load. This paper describes Carburizer, a code-manipulation tool and associated runtime that improves system reliability in the presence of faulty devices. Carburizer analyzes driver source code to find locations where the driver incorrectly trusts the hardware to behave. Carburizer identified almost 1000 such bugs in Linux drivers with a false positive rate of less than 8 percent. With the aid of shadow drivers for recovery, Carburizer can automatically repair 840 of these bugs with no programmer involvement. To facilitate proactive management of device failures, Carburizer can also locate existing driver code that detects device failures and inserts missing failure-reporting code. Finally, the Carburizer runtime can detect and tolerate interrupt-related bugs, such as stuck or missing interrupts.


european conference on computer systems | 2010

Differential RAID: rethinking RAID for SSD reliability

Asim Kadav; Mahesh Balakrishnan; Vijayan Prabhakaran; Dahlia Malkhi

Deployment of SSDs in enterprise settings is limited by the low erase cycles available on commodity devices. Redundancy solutions such as RAID can potentially be used to protect against the high Bit Error Rate (BER) of aging SSDs. Unfortunately, such solutions wear out redundant devices at similar rates, inducing correlated failures as arrays age in unison. We present Diff-RAID, a new RAID variant that distributes parity unevenly across SSDs to create age disparities within arrays. By doing so, Diff-RAID balances the high BER of old SSDs against the low BER of young SSDs. Diff-RAID provides much greater reliability for SSDs compared to RAID-4 and RAID-5 for the same space overhead, and offers a trade-off curve between throughput and reliability.


architectural support for programming languages and operating systems | 2012

Understanding modern device drivers

Asim Kadav; Michael M. Swift

Device drivers are the single largest contributor to operating-system kernel code with over 5 million lines of code in the Linux kernel, and cause significant complexity, bugs and development costs. Recent years have seen a flurry of research aimed at improving the reliability and simplifying the development of drivers. However, little is known about what constitutes this huge body of code beyond the small set of drivers used for research. In this paper, we study the source code of Linux drivers to understand what drivers actually do, how current research applies to them and what opportunities exist for future research. We determine whether assumptions made by most driver research, such as that all drivers belong to a class, are indeed true. We also analyze driver code and abstractions to determine whether drivers can benefit from code re-organization or hardware trends. We develop a set of static-analysis tools to analyze driver code across various axes. Broadly, our study looks at three aspects of driver code (i) what are the characteristics of driver code functionality and how applicable is driver research to all drivers, (ii) how do drivers interact with the kernel, devices, and buses, and (iii) are there similarities that can be abstracted into libraries to reduce driver size and complexity? We find that many assumptions made by driver research do not apply to all drivers. At least 44% of drivers have code that is not captured by a class definition, 28% of drivers support more than one device per driver, and 15% of drivers do significant computation over data. From the driver interactions study, we find USB bus offers an efficient bus interface with significant standardized code and coarse-grained access, ideal for executing drivers in isolation. We also find that drivers for different buses and classes have widely varying levels of device interaction, which indicates that the cost of isolation will vary by class. Finally, from our driver similarity study, we find 8% of all driver code is substantially similar to code elsewhere and may be removed with new abstractions or libraries.


architectural support for programming languages and operating systems | 2013

Fine-grained fault tolerance using device checkpoints

Asim Kadav; Matthew J. Renzelmann; Michael M. Swift

Recovering faults in drivers is difficult compared to other code because their state is spread across both memory and a device. Existing driver fault-tolerance mechanisms either restart the driver and discard its state, which can break applications, or require an extensive logging mechanism to replay requests and recreate driver state. Even logging may be insufficient, though, if the semantics of requests are ambiguous. In addition, these systems either require large subsystems that must be kept up-to-date as the kernel changes, or require substantial rewriting of drivers. We present a new driver fault-tolerance mechanism that provides fine-grained control over the code protected. Fine-Grained Fault Tolerance (FGFT) isolates driver code at the granularity of a single entry point. It executes driver code as a transaction, allowing roll back if the driver fails. We develop a novel checkpointing mechanism to save and restore device state using existing power management code. Unlike past systems, FGFT can be incrementally deployed in a single driver without the need for a large kernel subsystem, but at the cost of small modifications to the driver. In the evaluation, we show that FGFT can have almost zero runtime cost in many cases, and that checkpoint-based recovery can reduce the duration of a failure by 79% compared to restarting the driver. Finally, we show that applying FGFT to a driver requires little effort, and the majority of drivers in common classes already contain the power-management code needed for checkpoint/restore.


symposium on operating systems principles | 2015

Revisiting hash table design for phase change memory

Biplob Debnath; Alireza Haghdoost; Asim Kadav; Mohammed G. Khatib; Cristian Ungureanu

Phase Change Memory (PCM) is emerging as an attractive alternative to Dynamic Random Access Memory (DRAM) in building data-intensive computing systems. PCM offers read/write performance asymmetry that makes it necessary to revisit the design of in-memory applications. In this paper, we focus on in-memory hash tables, a family of data structures with wide applicability. We evaluate several popular hash-table designs to understand their performance under PCM. We find that for write-heavy workloads the designs that achieve best performance for PCMdiffer from the ones that are best for DRAM, and that designs achieving a high load factor also cause a high number of memory writes. Finally, we propose PFHT, a PCM-Friendly Hash Table which presents a cuckoo hashing variant that is tailored to PCM characteristics, and offers a better trade-off between performance, the amount of writes generated, and the expected load factor than any of the existing DRAM-based implementations.


international conference on ergonomics and health aspects of work with computers | 2011

Improving the online video chat experience

Asim Kadav; Chelsea Wanta; Nai-Wen Claire Yu; Kyung Lee; Enid Montague

With the recent proliferation of netbooks and tablets with webcams transforming oneself virtually is easier than ever before. However, the software used for such devices like video chat programs and online role playing do little to enhance the connectedness of the users involved. In this paper, we present Touch Live Connect (TLC), a product concept for an enhanced video chat experience that is aimed towards improving the online shared experience. TLC enhances the online experience by enabling people to do activities together in video mode. Users watch online videos together, transform to different backgrounds and also perform multi-way chat. TLC can also detect user motions and appropriately enhance the environment of the chat. This helps people emulate the face to face experience beyond just chatting and makes them feel connected. We developed three prototypes of the product concept and tested them on sets of users, and conclude that (1) Users feel more connected by sharing experiences rather than just seeing visual representation of self, (2) Amplification of human gestures over video is an important feature to improve video communication and (3) Users find a handheld tablet as most useful device for video communication and television as least useful.


operating systems design and implementation | 2012

SymDrive: testing drivers without devices

Matthew J. Renzelmann; Asim Kadav; Michael M. Swift


networked systems design and implementation | 2014

Blizzard: fast, cloud-scale block storage for cloud-oblivious applications

James Mickens; Edmund B. Nightingale; Jeremy Elson; Krishna Nareddy; Darren Gehring; Bin Fan; Asim Kadav; Vijay Chidambaram; Osama Khan


Operating Systems Review | 2016

Revisiting Hash Table Design for Phase Change Memory

Biplob Debnath; Alireza Haghdoost; Asim Kadav; Mohammed G. Khatib; Cristian Ungureanu

Collaboration


Dive into the Asim Kadav's collaboration.

Top Co-Authors

Avatar

Michael M. Swift

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar

Matthew J. Renzelmann

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Bin Fan

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Chelsea Wanta

University of Wisconsin-Madison

View shared research outputs
Researchain Logo
Decentralizing Knowledge