VLDB 2026 Research / reviewers in the wild / expert
Shanxiang Qi
dblp:09/6786
· DBLP profile ↗
8ranked-venue papers
2as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 5 · 2 first-authorSoftware engineering, systems software and programming languages · 3Applied, interdisciplinary, general and emerging computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
8 papers |
Concurrent programming · 74% Program analysis · 11% Software maintenance and evolution · 7% | |
| Computer architecture, parallel and distributed computing, and storage systems
5 papers |
Memory systems · 69% Processor architecture and microarchitecture · 31% |
Topics — the 16 heaviest of 19, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
0.7 | 3 | 2016 | A Lightweight System for Detecting and Tolerating Concurrency Bugs · IEEE Trans. Software Eng. 2016 Fixing, preventing, and recovering from concurrency bugs · Sci. China Inf. Sci. 2015 Dynamically detecting and tolerating IF-Condition Data Races · HPCA 2014 |
Concurrent programming › concurrency bugs
atomicity violation |
0.4 | 2 | 2016 | A Lightweight System for Detecting and Tolerating Concurrency Bugs · IEEE Trans. Software Eng. 2016 AI: a lightweight system for tolerating concurrency bugs · SIGSOFT FSE 2014 |
Concurrent programming › concurrency bugs
data race tolerance |
0.3 | 2 | 2014 | Dynamically detecting and tolerating IF-Condition Data Races · HPCA 2014 Pacman: Tolerating asymmetric data races with unintrusive hardware · HPCA 2012 |
Concurrent programming › concurrency bug detection
data race detection |
0.3 | 2 | 2014 | Dynamically detecting and tolerating IF-Condition Data Races · HPCA 2014 SigRace: signature-based data race detection · ISCA 2009 |
Software maintenance and evolution › software maintenance
bug fixing |
0.2 | 1 | 2015 | Fixing, preventing, and recovering from concurrency bugs · Sci. China Inf. Sci. 2015 |
Memory systems
cache coherence |
0.2 | 3 | 2012 | Pacman: Tolerating asymmetric data races with unintrusive hardware · HPCA 2012 Vulcan: Hardware Support for Detecting Sequential Consistency Violations Dynamically · MICRO 2012 SigRace: signature-based data race detection · ISCA 2009 |
Concurrent programming
concurrency bug detection |
0.2 | 1 | 2014 | AI: a lightweight system for tolerating concurrency bugs · SIGSOFT FSE 2014 |
Program analysis
dynamic analysis |
0.1 | 1 | 2012 | Vulcan: Hardware Support for Detecting Sequential Consistency Violations Dynamically · MICRO 2012 |
Concurrent programming
memory models |
0.1 | 1 | 2012 | Vulcan: Hardware Support for Detecting Sequential Consistency Violations Dynamically · MICRO 2012 |
Program analysis › dynamic analysis
runtime detection |
0.1 | 1 | 2012 | Vulcan: Hardware Support for Detecting Sequential Consistency Violations Dynamically · MICRO 2012 |
Concurrent programming › concurrency bug detection › data race detection
hardware-assisted race detection |
0.1 | 1 | 2009 | SigRace: signature-based data race detection · ISCA 2009 |
Memory systems
memory consistency |
0.1 | 1 | 2009 | BulkCompiler: high-performance sequential consistency through cooperative compiler and hardware support · MICRO 2009 |
Memory systems › memory consistency › memory consistency model
sequential consistency |
0.1 | 1 | 2009 | BulkCompiler: high-performance sequential consistency through cooperative compiler and hardware support · MICRO 2009 |
Program analysis › static analysis
bug detection |
0.1 | 1 | 2016 | A Lightweight System for Detecting and Tolerating Concurrency Bugs · IEEE Trans. Software Eng. 2016 |
Program verification
program invariants |
0.1 | 1 | 2014 | AI: a lightweight system for tolerating concurrency bugs · SIGSOFT FSE 2014 |
Concurrent programming › synchronization
critical sections |
0.0 | 1 | 2012 | Pacman: Tolerating asymmetric data races with unintrusive hardware · HPCA 2012 |
Methods — techniques the papers use, named apart from their topics
thread stalling · 0.4anticipating invariant · 0.4hardware support · 0.4code transformation · 0.4cycle detection · 0.3cache coherence protocol transactions · 0.3cache coherence hardware · 0.3signature intersection · 0.2hardware address signatures · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | A Lightweight System for Detecting and Tolerating Concurrency BugsabstractAlong with the prevalence of multi-threaded programs, concurrency bugs have become one of the most important sources of software bugs. Even worse, due to the non-deterministic nature of concurrency bugs, these bugs are both difficult to detect and fix even after the detection. As a result, it is highly desired to develop an all-around approach that is able to not only detect them during the testing phase but also tolerate undetected bugs during production runs. However, existing bug-detecting and bug-tolerating tools are usually either1)constrained in types of bugs they can handle or2)requiring specific hardware supports for achieving an acceptable overhead. In this paper, we present a novel program invariant, name Anticipating Invariant (Ai), that can detect most types of concurrency bugs. More importantly,Aican be used to anticipate many concurrency bugs before any irreversible changes have been made. Thus it enables us to develop a software-only system that is able to forestall failures with a simple thread stalling technique, which does not rely on execution roll-back and hence has good performance. Experiments with 35 real-world concurrency bugs demonstrate thatAiis capable of detecting and tolerating many important types of concurrency bugs, including both atomicity and order violations. It has also exposed two new bugs (confirmed by developers) that were never reported before in the literature. Performance evaluation with 6 representative parallel programs shows thatAiincurs negligible overhead ($ < 1\%$) for many nontrivial desktop and server applications. Yongwei Wu 0001, Shan Lu 0001, Shanxiang Qi, Jinglei Ren |
IEEE Trans. Software Eng. | 4 |
| 2015 | Fixing, preventing, and recovering from concurrency bugs
Dongdong Deng, Guoliang Jin, Marc de Kruijf, Ben Liblit, Shan Lu 0001, Shanxiang Qi, Jinglei Ren, Karthikeyan Sankaralingam, Linhai Song, Yongwei Wu 0001, Wei Zhang 0022 |
Sci. China Inf. Sci. | 7 |
| 2014 | Dynamically detecting and tolerating IF-Condition Data RacesabstractAn IF-Condition Invariance Violation (ICIV) occurs when, after a thread has computed the control expression of an IF statement and while it is executing the THEN or ELSE clauses, another thread updates variables in the IF's control expression. An ICIV can be easily detected, and is likely to be a sign of a concurrency bug in the code. Typically, the ICIV is caused by a data race, which we call IF-Condition Data Race (ICR). In this paper, we analyze the data races reported in the bug databases of popular software systems and show that ICRs occur relatively often. Then, we present two techniques to handle ICRs dynamically. They rely on simple code transformations and, in one case, additional hardware help. One of them (SW-IF) detects the races, while the other (HW-IF) detects and prevents them. We evaluate SW-IF and HW-IF using a variety of applica- tions. We show that these new techniques are effective at finding new data race bugs and run with low overhead. Specifically, HW-IF finds 5 new (unreported) race bugs and SW-IF finds 3 of them. In addition, 8-threaded executions of SPLASH-2 codes show that, on average, SW-IF adds 2% execution overhead, while HW-IF adds less than 1%. Shanxiang Qi, Abdullah Muzahid, Wonsun Ahn, Josep Torrellas |
HPCA | 1 |
| 2014 | AI: a lightweight system for tolerating concurrency bugsabstractConcurrency bugs are notoriously difficult to eradicate during software testing because of their non-deterministic nature. Moreover, fixing concurrency bugs is time-consuming and error-prone. Thus, tolerating concurrency bugs during production runs is an attractive complementary approach to bug detection and testing. Unfortunately, existing bug-tolerating tools are usually either 1) constrained in types of bugs they can handle or 2) requiring roll-back mechanism, which can hitherto not be fully achieved efficiently without hardware supports. This paper presents a novel program invariant, called Anticipating Invariant (AI), which can help anticipate bugs before any irreversible changes are made. Benefiting from this ability of anticipating bugs beforehand, our software-only system is able to forestall the failures with a simple thread stalling technique, which does not rely on execution roll-back and hence has good performance Experiments with 35 real-world concurrency bugs demonstrate that AI is capable of detecting and tolerating most types of concurrency bugs, including both atomicity and order violations. Two new bugs have been detected and confirmed by the corresponding developers. Performance evaluation with 6 representative parallel programs shows that AI incurs negligible overhead (<1%) for many nontrivial desktop and server applications. Yongwei Wu 0001, Shan Lu 0001, Shanxiang Qi, Jinglei Ren |
SIGSOFT FSE | 4 |
| 2012 | Pacman: Tolerating asymmetric data races with unintrusive hardwareabstractData races are a major contributor to parallel software unreliability. A type of race that is both common and typically harmful is the Asymmetric data race. It occurs when at least one of the racing threads is inside a critical section. Current proposals that target them are software-based. They slow down execution and require significant compiler, operating system (OS), or application changes. This paper proposes the first scheme to tolerate asymmetric data races in production runs with negligible execution overhead. The scheme, called Pacman, exploits cache coherence hardware to temporarily protect the variables that a thread accesses in a critical section from other threads' requests. Unlike previous schemes, Pacman induces negligible slowdown, needs no support from the compiler or (in the baseline design) from the OS, and requires no application source code changes. In addition, its hardware is relatively unintrusive. We test Pacman with the SPLASH-2, PARSEC, Sphinx 3, and Apache codes, and discover two unreported asymmetric data races. Shanxiang Qi, Norimasa Otsuki, Lois Orosa 0001, Abdullah Muzahid, Josep Torrellas |
HPCA | 1 |
| 2012 | Vulcan: Hardware Support for Detecting Sequential Consistency Violations DynamicallyabstractPast work has focused on detecting data races as proxies for Sequential Consistency (SC) violations. However, most data races do not violate SC. In addition, lock-free data structures and synchronization libraries sometimes explicitly employ data races but rely on SC semantics for correctness. Consequently, to uncover SC violations, we need to develop a more precise technique. This paper presents Vulcan, the first hardware scheme to precisely detect SC violations at runtime, in programs running on a relaxed-consistency machine. The scheme leverages cache coherence protocol transactions to dynamically detect cycles in memory access orders across threads. When one such cycle is about to occur, an exception is triggered. For the conditions considered in this paper and with enough hardware, Vulcan suffers neither false positives nor false negatives. In addition, Vulcan induces negligible execution overhead, requires no help from the software, and only takes as input the program executable. Experimental results show that Vulcan detects three new SC violation bugs in the Pthread and Crypt libraries, and in the fmm code from SPLASH-2. Moreover, Vulcan's negligible execution overhead makes it suitable for on-the-fly use. Abdullah Muzahid, Shanxiang Qi, Josep Torrellas |
MICRO | 2 |
| 2009 | SigRace: signature-based data race detectionabstractDetecting data races in parallel programs is important for both software development and production-run diagnosis. Recently, there have been several proposals for hardware-assisted data race detection. Such proposals typically modify the L1 cache and cache coherence protocol messages, and largely lose their capability when lines get displaced or invalidated from the cache. To eliminate these shortcomings, this paper proposes a novel, different approach to hardware-assisted data race detection. The approach, called SigRace, relies on hardware address signatures. As a processor runs, the addresses of the data that it accesses are automatically encoded in signatures. At certain times, the signatures are automatically passed to a hardware module that intersects them with those of other processors. If the intersection is not null, a data race may have occurred. Abdullah Muzahid, Darío Suárez Gracia, Shanxiang Qi, Josep Torrellas |
ISCA | 3 |
| 2009 | BulkCompiler: high-performance sequential consistency through cooperative compiler and hardware supportabstractA platform that supported Sequential Consistency (SC) for all codes --- not only the well-synchronized ones --- would simplify the task of programmers. Recently, several hardware architectures that support high-performance SC by committing groups of instructions at a time have been proposed. However, for a platform to support SC, it is insufficient that the hardware does; the compiler has to support SC as well. Wonsun Ahn, Shanxiang Qi, M. Nicolaides, Josep Torrellas, Jae-Woo Lee, Samuel P. Midkiff, David C. Wong 0001 |
MICRO | 2 |