Demo Data from EDBT 2026 / reviewers in the wild / expert
Gen Li 0002
dblp:28/538-2
· DBLP profile ↗
15ranked-venue papers
2as first author
0since 2021 · last 2019
0000-0002-4183-4242ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 6Security and privacy · 4 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 4Software engineering, systems software and programming languages · 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.
| Network and information security
1 paper |
Systems and software security · 100% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 82% Processor architecture and microarchitecture · 18% | |
| Software engineering, system software, and programming languages
2 papers |
Compilers and program optimization · 69% Runtime systems and virtual machines · 31% |
Topics — the 9 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security › software vulnerability
double-fetch vulnerability |
0.3 | 1 | 2017 | How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: A Study of Double Fetches in the Linux Kernel · USENIX Security Symposium 2017 |
Systems and software security
memory safety |
0.3 | 1 | 2017 | How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: A Study of Double Fetches in the Linux Kernel · USENIX Security Symposium 2017 |
Systems and software security
operating system security |
0.3 | 1 | 2017 | How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: A Study of Double Fetches in the Linux Kernel · USENIX Security Symposium 2017 |
Parallel and multicore computing › deterministic execution
deterministic multithreading |
0.2 | 1 | 2013 | RaceFree: an efficient multi-threading model for determinism · PPoPP 2013 |
Parallel and multicore computing › parallel programming runtimes
message-driven runtime |
0.2 | 1 | 2013 | RaceFree: an efficient multi-threading model for determinism · PPoPP 2013 |
Parallel and multicore computing
parallel programming models |
0.2 | 1 | 2013 | RaceFree: an efficient multi-threading model for determinism · PPoPP 2013 |
Compilers and program optimization
stream programming |
0.1 | 1 | 2010 | Exploiting the reuse supplied by loop-dependent stream references for stream processors · ACM Trans. Archit. Code Optim. 2010 |
Processor architecture and microarchitecture › data-parallel architecture
stream processor |
0.1 | 1 | 2010 | Exploiting the reuse supplied by loop-dependent stream references for stream processors · ACM Trans. Archit. Code Optim. 2010 |
Runtime systems and virtual machines › parallel runtime systems
multithreaded runtime |
0.0 | 1 | 2013 | RaceFree: an efficient multi-threading model for determinism · PPoPP 2013 |
Methods — techniques the papers use, named apart from their topics
memory modification propagation · 0.3happen-before relation · 0.3empirical study · 0.3stream reuse graph · 0.2loop-dependent reference analysis · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | DFTracker: detecting double-fetch bugs by multi-taint parallel tracking
Pengfei Wang 0010, Kai Lu 0001, Gen Li 0002, Xu Zhou 0004 |
Frontiers Comput. Sci. | 3 |
| 2018 | A survey of the double-fetch vulnerabilitiesabstractSummary Race conditions widely exist in concurrent programs, and concurrency errors caused by harmful races could lead to severe system failures. A double fetch is a typical situation when the system kernel inevitably accesses user space data multiple times, and it turns into a vulnerability when the data consistency is violated under a special race condition between kernel and user space. In this survey, we present the first (to the best of our knowledge) comprehensive study on double‐fetch vulnerabilities in the real world. Our study is based on the investigation of 91 real‐world double‐fetch vulnerabilities collected from the CVE database and other relevant reports, which covers a period of recent 12 years. Our work reveals some interesting findings on the double‐fetch vulnerabilities, ranging from the various occurrences across different kernels and system levels to the involvement of specific patterns. We also divide the consequences that are usually caused by the double‐fetch vulnerabilities into four categories and discuss each, summarize viable exploitation techniques from existing works, provide useful guidances to detect and practical strategies to prevent double‐fetch vulnerabilities. Pengfei Wang 0010, Kai Lu 0001, Gen Li 0002, Xu Zhou 0004 |
Concurr. Comput. Pract. Exp. | 3 |
| 2018 | Untrusted Hardware Causes Double-Fetch Problems in the I/O Memory
Kai Lu 0001, Pengfei Wang 0010, Gen Li 0002, Xu Zhou 0004 |
J. Comput. Sci. Technol. | 3 |
| 2017 | How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: A Study of Double Fetches in the Linux Kernel
Pengfei Wang 0010, Jens Krinke, Kai Lu 0001, Gen Li 0002, Steve Dodier-Lazaro |
USENIX Security Symposium | 4 |
| 2014 | Hunter: Online Accurate Taint Propagation Analysis Based System for Detecting Bugs in BinariesabstractDynamic test generation approach is becoming increasingly popular to find security vulnerabilities in software, and is applied to detect bugs in binaries. However, the existing such systems adopt offline symbolic analysis and execution, based on program execution trace which includes the flow of execution instructions and the operand values, with all input-related memory access replaced by their execution values. And this brings two fatal problems: first, all symbolic information of input-related memory access is missing, second, the symbolic information of other variables is not accurate, especially for variables operated with input-related memory accesses. This paper presents an online taint analysis based automatic dynamic test generation system, Hunter, which can online find unknown high-priority fatal bugs that must be fixed immediately at a pre-release stage in binaries. To yield this goal, we present a new abstract representation called Taint Single Assignment DAG (TSADAG) to depict the taint propagation information, and we present the algorithm to build TSADAG during online execution, and we build the Hunter system finally. Experimental results show that Hunter has a very low divergence rate of less than 5.4% thanks to the online accurate taint propagation Analysis, and can find pointer-related or indirect memory access-related bugs. Gen Li 0002, Shuangxi Wang, Ying Zhang 0032, Xiaohui Peng 0004 |
DASC | 1 |
| 2014 | Enhancing the Security of Parallel Programs via Reducing Scheduling SpaceabstractParallel programs face a new security problem - concurrency vulnerability, which is caused by a special thread scheduling instead of inputs. In this paper, we propose to automatically fix concurrency vulnerabilities by reducing thread scheduling space. Our method is based on two observations. First, most concurrency vulnerabilities are caused by atomicity violation errors. Second, reducing thread scheduling space does not harm the correctness of the original program. We designed a prototype runtime system shield using deterministic multithreading techniques. Shield is designed to transparently run parallel programs and schedule threads in large instruction blocks to prevent atomicity violation at best effort. In case some concurrency vulnerabilities cannot be fixed by shield's scheduling reducing scheme, we also provide a remedy strategy by integrating shield with record&replay function, so that it can help programmers to analyze attacker's behavior for manually fixing. Xu Zhou 0004, Gen Li 0002, Kai Lu 0001, Shuangxi Wang |
DASC | 2 |
| 2014 | Iaso: an autonomous fault-tolerant management system for supercomputers
Kai Lu 0001, Gen Li 0002, Ruibo Wang, Wanqing Chi, Yongpeng Liu, Hong-Wei Tang, Yinghui Gao |
Frontiers Comput. Sci. | 3 |
| 2013 | RaceFree: an efficient multi-threading model for determinismabstractCurrent deterministic systems generally incur large overhead due to the difficulty of detecting and eliminating data races. This paper presents RaceFree, a novel multi-threading runtime that adopts a relaxed deterministic model to provide a data-race-free environment for parallel programs. This model cuts off unnecessary shared-memory communication by isolating threads in separated memories, which eliminates direct data races. Meanwhile, we leverage the happen-before relation defined by applications themselves as one-way communication pipes to perform necessary thread communication. Shared-memory communication is transparently converted to message-passing style communication by our Memory Modification Propagation (MMP) mechanism, which propagates local memory modifications to other threads through the happen-before relation pipes. The overhead of RaceFree is 67.2% according to our tests on parallel benchmarks. Kai Lu 0001, Xu Zhou 0004, Gen Li 0002 |
PPoPP | 5 |
| 2010 | Exploiting the reuse supplied by loop-dependent stream references for stream processorsabstractMemory accesses limit the performance of stream processors. By exploiting the reuse of data held in the Stream Register File (SRF), an on-chip, software controlled storage, the number of memory accesses can be reduced. In current stream compilers, reuse exploitation is only attempted for simple stream references, those whose start and end are known. Compiler analysis, from outside of stream processors, does not directly enable the consideration of other more complex stream references. In this article, we propose a transformation to automatically optimize stream programs to exploit the reuse supplied by loop-dependent stream references. The transformation is based on three results: lemmas identifying the reuse supplied by stream references, a new abstract representation called the Stream Reuse Graph (SRG) depicting the identified reuse, and the optimization of the SRG for our transformation. Both the reuse between the whole sequences accessed by stream references and between partial sequences is exploited in the article. In particular, partial reuse and its treatment are quite new and have never, to the best of our knowledge, appeared in scalar and vector processing. At the same time, reusing streams increases the pressure on the SRF, and this presents a problem of which reuse should be exploited within limited SRF capacity. We extend our analysis to achieve this objective. Finally, we implement our techniques based on the StreamC/KernelC compiler that has been optimized with the best existing compilation techniques for stream processors. Experimental results show a resultant speed-up of 1.14 to 2.54 times using a range of benchmarks. Xuejun Yang, Ying Zhang 0032, Xicheng Lu, Jingling Xue, Ian Rogers, Gen Li 0002, Guibin Wang, Xudong Fang |
ACM Trans. Archit. Code Optim. | 6 |
| 2009 | Architecture- and OS-Independent Binary-Level Dynamic Test Generation
Gen Li 0002, Kai Lu 0001, Ying Zhang 0032, Xicheng Lu, Wei Zhang 0027 |
ICICS | 1 |
| 2008 | Exploiting loop-dependent stream reuse for stream processorsabstractThe memory access limits the performance of stream processors. By exploiting the reuse of data held in the Stream Register File (SRF), an on-chip storage, the number of memory accesses can be reduced. In current stream compilers reuse is only attempted for simple stream references, those whose start and end are known. Compiler analysis from outside of stream processors does not directly enable the consideration of other complex stream references. In this paper we propose a transformation to automatically optimize stream programs to exploit the reuse supplied by loop-dependent stream references. The transformation is based on three results: algorithms to recognize the reuse supplied by stream references, a new abstract expression called the Stream Reuse Graph (SRG) to depict the reuse and the optimization of the SRG for the transformation. Both the reuse between whole sequences accessed by stream references and that between partial sequences are exploited in the paper. In particular, the problem of exploiting partial stream reuse does not have its parallel in the traditional data reuse exploitation setting (for scalars and arrays). Finally, we have implemented our techniques using the StreamC/KernelC compiler for Imagine. Experimental results show a resultant speedup of 1.14 to 2.54 times using a range of typical stream processing application kernels. Xuejun Yang, Ying Zhang 0032, Jingling Xue, Ian Rogers, Gen Li 0002, Guibin Wang |
PACT | 5 |
| 2008 | Mapping and Optimizing 2-D Jacobi Iteration on a Stream ProcessorabstractStream processors, with the stream programming model, have demonstrated significant performance advantages in the domains signal processing, multimedia and graphics applications. In this paper we examine the applicability of a stream processor to 2-D Jacobi iteration which is widely used to solve partial differential equations, an important class of scientific programs. We first map 2-D Jacobi iteration in FORTRAN version to the stream processor in a straightforward way. In a stream processor system, the management of system resources is the programmers' responsibility. We then present several optimizations, which avail the stream program for 2-D Jacobi iteration, called StreamJacobi, of various aspects of the stream processor architecture. Finally, we analyze the performance of StreamJacobi, with different scales, and the presented optimizations. The final stream program StreamJacobi is from 2.31 to 6.42 times faster than the corresponding FORTRAN programs on a Xeon 5100 processor, with the optimizations playing an important role in realizing the performance improvement. Ying Zhang 0032, Qiang Dou, Gen Li 0002, Xuejun Yang, Yongjin Li, Caixia Huang |
HPCC | 3 |
| 2008 | Scientific Computing Applications on a Stream ProcessorabstractStream processors, developed for the stream programming model, perform well on media applications. In this paper we examine the applicability of a stream processor to scientific computing applications. Eight scientific applications, each having different performance characteristics, are mapped to a stream processor. Due to the novelty of the stream programming model, we show how to map programs in a traditional language, such as FORTRAN. In a stream processor system, the management of system resources is the programmers' responsibility. We present several optimizations, which enable mapped programs to exploit various aspects of the stream processor architecture. Finally, we analyze the performance of the stream processor and the presented optimizations on a set of scientific computing applications. The stream programs are from 1.67 to 32.5 times faster than the corresponding FORTRAN programs on an Itanium 2 processor, with the optimizations playing an important role in realizing the performance improvement. Ying Zhang 0032, Xuejun Yang, Guibin Wang, Ian Rogers, Gen Li 0002, Yu Deng 0001, Xiaobo Yan |
ISPASS | 5 |
| 2007 | Optimizing Stream Organization to Improve the Performance of Scientific Computing Applications on the Stream Processor
Ying Zhang 0032, Gen Li 0002, Xuejun Yang |
ICA3PP | 2 |
| 2007 | Implementing and Optimizing a Data-Intensive Hydrodynamics Application on the Stream Processor
Ying Zhang 0032, Gen Li 0002, Xuejun Yang |
ICCSA (3) | 2 |