Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Nicolas Palix

dblp:31/6732 · DBLP profile ↗
← Back
15ranked-venue papers
3as first author
0since 2021 · last 2020
0000-0001-8873-281XORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 2 first-authorSystems, architecture and hardware · 5 · 2 first-authorSecurity and privacy · 2Computer networks · 1Human-computer interaction and ubiquitous 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
5 papers
Operating systems · 40% Program verification · 19% Empirical software engineering · 18%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Parallel and multicore computing · 50% Processor architecture and microarchitecture · 50%

Topics — the 12 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Operating systems › resource management › process management
CPU scheduling
0.922020
Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance · USENIX ATC 2020
Provable multicore schedulers with Ipanema: application to work conservation · EuroSys 2020
Software testing
fault analysis
0.322014
Faults in Linux 2.6 · ACM Trans. Comput. Syst. 2014
Faults in linux: ten years later · ASPLOS 2011
Empirical software engineering
mining software repositories
0.322014
Faults in Linux 2.6 · ACM Trans. Comput. Syst. 2014
Faults in linux: ten years later · ASPLOS 2011
Processor architecture and microarchitecture
multicore design
0.112020
Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance · USENIX ATC 2020
Empirical software engineering › software fault analysis
bug study
0.112011
Faults in linux: ten years later · ASPLOS 2011
Operating systems › kernel
linux kernel
0.122014
Faults in Linux 2.6 · ACM Trans. Comput. Syst. 2014
Faults in linux: ten years later · ASPLOS 2011
Ubiquitous computing and smart environments
pervasive application development
0.112008
High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008
Programming languages and type systems
domain-specific languages
0.112008
High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008
Programming languages and type systems › domain-specific languages
interface definition language
0.112008
High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008
Program analysis
static analysis
0.112014
Faults in Linux 2.6 · ACM Trans. Comput. Syst. 2014
Services computing and microservices
service discovery
0.012008
High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008
Program verification
static verification
0.012008
High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008

Methods — techniques the papers use, named apart from their topics

formal verification · 0.9static analysis · 0.3declarative specification · 0.2compiler generation · 0.2
YearPublicationVenuePosition
2020 Provable multicore schedulers with Ipanema: application to work conservation
abstract
Recent research and bug reports have shown that work conservation, the property that a core is idle only if no other core is overloaded, is not guaranteed by Linux's CFS or FreeBSD's ULE multicore schedulers. Indeed, multicore schedulers are challenging to specify and verify: they must operate under stringent performance requirements, while handling very large numbers of concurrent operations on threads. As a consequence, the verification of correctness properties of schedulers has not yet been considered.
Baptiste Lepers, Redha Gouicem, Damien Carver, Jean-Pierre Lozi, Nicolas Palix, Maria-Virginia Aponte, Willy Zwaenepoel, Julien Sopena, Julia Lawall, Gilles Muller
EuroSys5
2020 Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance
Redha Gouicem, Damien Carver, Jean-Pierre Lozi, Julien Sopena, Baptiste Lepers, Willy Zwaenepoel, Nicolas Palix, Julia Lawall, Gilles Muller
USENIX ATC7
2019 Fork/Wait and Multicore Frequency Scaling: a Generational Clash
abstract
The complexity of computer architectures has risen since the early years of the Linux kernel: Simultaneous Multi-Threading (SMT), multicore processing, and frequency scaling with complex algorithms such as Intel® Turbo Boost have all become omnipresent. In order to keep up with hardware innovations, the Linux scheduler has been rewritten several times, and many hardware-related heuristics have been added. Despite this, we show in this paper that a fundamental problem was never identified: the POSIX process creation model, i.e., fork/wait, can behave inefficiently on current multicore architectures due to frequency scaling. We investigate this issue through a simple case study: the compilation of the Linux kernel source tree. To do this, we develop SchedLog, a low-overhead scheduler tracing tool, and SchedDisplay, a scriptable tool to graphically analyze SchedLog's traces efficiently.
Damien Carver, Redha Gouicem, Jean-Pierre Lozi, Julien Sopena, Baptiste Lepers, Willy Zwaenepoel, Nicolas Palix, Julia Lawall, Gilles Muller
PLOS@SOSP7
2018 MDC-Cast: A Total-Order Broadcast Protocol for Multi-Datacenter Environments
abstract
The recent Total-Order Broadcast protocols that have been designed to sustain high throughput and low latency target fully switched environments, such as small datacenters and clusters. These protocols fail to achieve good performance in multi-datacenter environments, that are characterized by non-uniform network connectivity among a set of remote datacenters. More precisely, machines within a datacenter are connected using a fully switched network, whereas machines across datacenters use shared inter-datacenter network cables. This paper presents a novel Total-Order Broadcast protocol, called MDC-cast that specifically targets multi-datacenter environments.
Mohamad-Jaafar Nehme, Nicolas Palix, Kamal Beydoun, Vivien Quéma
SRDS2
2017 Towards Proving Optimistic Multicore Schedulers
abstract
Operating systems have been shown to waste machine resources by leaving cores idle while work is ready to be scheduled. This results in suboptimal performance for user applications, and wasted power.
Baptiste Lepers, Willy Zwaenepoel, Jean-Pierre Lozi, Nicolas Palix, Redha Gouicem, Julien Sopena, Julia Lawall, Gilles Muller
HotOS4
2015 Improving pattern tracking with a language-aware tree differencing algorithm
abstract
Tracking code fragments of interest is important in monitoring a software project over multiple versions. Various approaches, including our previous work on Herodotos, exploit the notion of Longest Common Subsequence, as computed by readily available tools such as GNU Diff, to map corresponding code fragments. Nevertheless, the efficient code differencing algorithms are typically line-based or word-based, and thus do not report changes at the level of language constructs. Furthermore, they identify only additions and removals, but not the moving of a block of code from one part of a file to another. Code fragments of interest that fall within the added and removed regions of code have to be manually correlated across versions, which is tedious and error-prone. When studying a very large code base over a long time, the number of manual correlations can become an obstacle to the success of a study. In this paper, we investigate the effect of replacing the current line-based algorithm used by Herodotos by tree-matching, as provided by the algorithm of the differencing tool GumTree. In contrast to the line-based approach, the tree-based approach does not generate any manual correlations, but it incurs a high execution time. To address the problem, we propose a hybrid strategy that gives the best of both approaches.
Nicolas Palix, Jean-Rémy Falleri, Julia Lawall
SANER1
2014 Coccinelle: Tool support for automated CERT C Secure Coding Standard certification
Mads Chr. Olesen, René Rydhof Hansen, Julia Lawall, Nicolas Palix
Sci. Comput. Program.4
2014 Faults in Linux 2.6
abstract
In August 2011, Linux entered its third decade. Ten years before, Chou et al. published a study of faults found by applying a static analyzer to Linux versions 1.0 through 2.4.1. A major result of their work was that the drivers directory contained up to 7 times more of certain kinds of faults than other directories. This result inspired numerous efforts on improving the reliability of driver code. Today, Linux is used in a wider range of environments, provides a wider range of services, and has adopted a new development and release model. What has been the impact of these changes on code quality? To answer this question, we have transported Chou et al.’s experiments to all versions of Linux 2.6; released between 2003 and 2011. We find that Linux has more than doubled in size during this period, but the number of faults per line of code has been decreasing. Moreover, the fault rate of drivers is now below that of other directories, such as arch. These results can guide further development and research efforts for the decade to come. To allow updating these results as Linux evolves, we define our experimental protocol and make our checkers available.
Nicolas Palix, Gaël Thomas 0001, Suman Saha 0002, Christophe Calvès, Gilles Muller, Julia Lawall
ACM Trans. Comput. Syst.1
2013 WYSIWIB: exploiting fine-grained program structure in a scriptable API-usage protocol-finding process
abstract
SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd.
Julia Lawall, Julien Brunel, Nicolas Palix, René Rydhof Hansen, Henrik Stuart, Gilles Muller
Softw. Pract. Exp.3
2012 Integrated architecture exploration workflow: A NoC-based case study
abstract
Compute-intensive applications can greatly benefit from the flexibility of NoC-based heterogeneous multi-core platforms. However, mapping applications on such MPSoC is becoming increasingly complex and requires integrated design flows. We conducted a case study to evaluate the benefits of an integrated design flow for the mapping space exploration of a real telecommunication application on a NoC-based heterogeneous platform. Thanks to the flow, we simulated several virtual platforms and several mappings of our application on each. This approach drastically lowers the required skills and the time needed for design space exploration. An improvement of several weeks have been observed.
Diego Puschini, Julien Mottin, Nicolas Palix, Lian Apostol, Christian Fabre
RSP3
2011 Faults in linux: ten years later
abstract
In 2001, Chou et al. published a study of faults found by applying a static analyzer to Linux versions 1.0 through 2.4.1. A major result of their work was that the drivers directory contained up to 7 times more of certain kinds of faults than other directories. This result inspired a number of development and research efforts on improving the reliability of driver code. Today Linux is used in a much wider range of environments, provides a much wider range of services, and has adopted a new development and release model. What has been the impact of these changes on code quality? Are drivers still a major problem?
Nicolas Palix, Gaël Thomas 0001, Suman Saha 0002, Christophe Calvès, Julia Lawall, Gilles Muller
ASPLOS1
2009 WYSIWIB: A declarative approach to finding API protocols and bugs in Linux code
abstract
Eliminating OS bugs is essential to ensuring the reliability of infrastructures ranging from embedded systems to servers. Several tools based on static analysis have been proposed for finding bugs in OS code. They have, however, emphasized scalability over usability, making it difficult to focus the tools on specific kinds of bugs and to relate the results to patterns in the source code. We propose a declarative approach to bug finding in Linux OS code using a control-flow based program search engine. Our approach is WYSIWIB (What You See Is Where It Bugs), since the programmer expresses specifications for bug finding using a syntax close to that of ordinary C code. The key advantage of our approach is that search specifications can be easily tailored, to eliminate false positives or catch more bugs. We present three case studies that have allowed us to find hundreds of potential bugs.
Julia Lawall, Julien Brunel, Nicolas Palix, René Rydhof Hansen, Henrik Stuart, Gilles Muller
DSN3
2008 Pantaxou: a domain-specific language for developing safe coordination services
abstract
Coordinating entities in a networked environment has always been a significant challenge for software developers. In recent years, however, it has become even more difficult, because devices have increasingly rich capabilities, combining an ever larger range of technologies (networking, multimedia, sensors, etc.).
Julien Mercadal, Nicolas Palix, Charles Consel, Julia Lawall
GPCE2
2008 High-level Programming Support for Robust Pervasive Computing Applications
abstract
In this paper, we present a domain-specific interface definition language (IDL) and its compiler, dedicated to the development of pervasive computing applications. Our IDL provides declarative support for concisely characterizing a pervasive computing environment. This description is (1) to be used by programmers as a high-level reference to develop applications that coordinate entities of the target environment and (2) to be passed to a compiler that generates a programming framework dedicated to the target environment. This process enables verifications to be performed prior to runtime on both the declared environment and a given application. Furthermore, customized operations are automatically generated to support the development of pervasive computing activities, such as service discovery and session negotiation for stream-oriented devices.
Wilfried Jouve, Julien Lancia, Nicolas Palix, Charles Consel, Julia Lawall
PerCom3
2006 Language Technology for Internet-Telephony Service Creation
abstract
Telephony is evolving at a frantic pace, critically relying on the development of services to offer a host of new functionalities. However, programming Internet telephony services requires an intimate knowledge of a variety of protocols and technologies, which can be a challenge for many programmers. Furthermore, because telephony is a resource heavily relied on, programmability of telephony platforms should not compromise their robustness. This paper presents an approach to creating telephony services that builds on programming language technology (i.e., language design and implementation, language semantics, and program analysis). We have developed a language, named Session Processing Language (SPL), that offers domain-specific constructs, abstracting over the intricacies of the underlying technologies. By design, SPL guarantees critical properties that cannot be verified in general-purpose languages. SPL relies on a Service Logic Execution Environment for SIP (SIP-SLEE) that introduces a design framework for service development based around the notion of session. SPL and SIP-SLEE have been implemented and they are now being used to develop and deploy real services, demonstrating the practical benefits of our approach.
Laurent Burgy, Charles Consel, Fabien Latry, Julia Lawall, Nicolas Palix, Laurent Réveillère
ICC5