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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Christoffer Dall

dblp:12/10322 · DBLP profile ↗
← Back
9ranked-venue papers
5as first author
1since 2021 · last 2022
—ORCID · none

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

Software engineering, systems software and programming languages · 6 · 2 first-author · 1 since 2021Systems, architecture and hardware · 5 · 4 first-authorHuman-computer interaction and ubiquitous computing · 1 · 1 first-author

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.

Computer architecture, parallel and distributed computing, and storage systems
6 papers
Cloud and datacenter computing · 77% Processor architecture and microarchitecture · 23%
Software engineering, system software, and programming languages
5 papers
Operating systems · 83% Programming languages and type systems · 17%
Network and information security
3 papers
Hardware security and side channels · 88% Systems and software security · 12%

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

TopicWeightPapersLastEvidence papers
Cloud and datacenter computing
virtualization
1.152017
Optimizing the Design and Implementation of the Linux ARM Hypervisor · USENIX ATC 2017
NEVE: Nested Virtualization Extensions for ARM · SOSP 2017
ARM Virtualization: Performance and Architectural Implications · ISCA 2016
Hardware security and side channels
trusted execution environments
0.612022
Design and Verification of the Arm Confidential Compute Architecture · OSDI 2022
Processor architecture and microarchitecture › instruction set architecture › RISC
ARM architecture
0.422017
NEVE: Nested Virtualization Extensions for ARM · SOSP 2017
ARM Virtualization: Performance and Architectural Implications · ISCA 2016
Operating systems › virtualization
hypervisor
0.312017
Optimizing the Design and Implementation of the Linux ARM Hypervisor · USENIX ATC 2017
Cloud and datacenter computing › virtualization
nested virtualization
0.312017
NEVE: Nested Virtualization Extensions for ARM · SOSP 2017
Operating systems
virtualization
0.322012
The Design, Implementation, and Evaluation of Cells: A Virtual Smartphone Architecture · ACM Trans. Comput. Syst. 2012
Cells: a virtual mobile smartphone architecture · SOSP 2011
Cloud and datacenter computing › virtualization › virtualization performance
hypervisor performance
0.212016
ARM Virtualization: Performance and Architectural Implications · ISCA 2016
Programming languages and type systems › interoperability
binary compatibility
0.212014
Cider: native execution of iOS apps on android · ASPLOS 2014
Operating systems › kernel
kernel design
0.212014
Cider: native execution of iOS apps on android · ASPLOS 2014
Processor architecture and microarchitecture
instruction set architecture
0.212022
Design and Verification of the Arm Confidential Compute Architecture · OSDI 2022
Cloud and datacenter computing › virtualization › resource virtualization
mobile virtualization
0.112011
Cells: a virtual mobile smartphone architecture · SOSP 2011
Cloud and datacenter computing › virtualization
virtual machine monitor
0.112017
NEVE: Nested Virtualization Extensions for ARM · SOSP 2017
Systems and software security
isolation
0.122012
The Design, Implementation, and Evaluation of Cells: A Virtual Smartphone Architecture · ACM Trans. Comput. Syst. 2012
Cells: a virtual mobile smartphone architecture · SOSP 2011
Cloud and datacenter computing › virtualization
hardware-assisted virtualization
0.112016
ARM Virtualization: Performance and Architectural Implications · ISCA 2016

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

linux kernel integration · 0.4hardware virtualization · 0.4device proxies · 0.3OS virtualization · 0.3paravirtualization · 0.3measurement · 0.2diplomatic functions · 0.2compile-time code adaptation · 0.2binary compatibility techniques · 0.2
YearPublicationVenuePosition
2022 Design and Verification of the Arm Confidential Compute Architecture
Xupeng Li, Xuheng Li, Christoffer Dall, Ronghui Gu, Jason Nieh, Yousuf Sait, Gareth Stockwell
OSDI3
2017 NEVE: Nested Virtualization Extensions for ARM
abstract
Nested virtualization, the ability to run a virtual machine inside another virtual machine, is increasingly important because of the need to deploy virtual machines running software stacks on top of virtualized cloud infrastructure. As ARM servers make inroads in cloud infrastructure deployments, supporting nested virtualization on ARM is a key requirement, which has been met recently with the introduction of nested virtualization support to the ARM architecture. We build the first hypervisor to use ARM nested virtualization support and show that despite similarities between ARM and x86 nested virtualization support, performance on ARM is much worse than on x86. This is due to excessive traps to the hypervisor caused by differences in non-nested virtualization support. To address this problem, we introduce a novel paravirtualization technique to rapidly prototype architectural changes for virtualization and evaluate their performance impact using existing hardware. Using this technique, we propose Nested Virtualization Extensions for ARM (NEVE), a set of simple architectural changes to ARM that can be used by software to coalesce and defer traps by logging the results of hypervisor instructions until the results are actually needed by the hypervisor or virtual machines. We show that NEVE allows hypervisors running real application workloads to provide an order of magnitude better performance than current ARM nested virtualization support and up to three times less overhead than x86 nested virtualization. NEVE will be included in ARMv8.4, the next version of the ARM architecture.
Jin Tack Lim, Christoffer Dall, Shih-Wei Li, Jason Nieh, Marc Zyngier
SOSP2
2017 Optimizing the Design and Implementation of the Linux ARM Hypervisor
Christoffer Dall, Shih-Wei Li, Jason Nieh
USENIX ATC1
2016 ARM Virtualization: Performance and Architectural Implications
abstract
ARM servers are becoming increasingly common, making server technologies such as virtualization for ARM of growing importance. We present the first study of ARM virtualization performance on server hardware, including multi-core measurements of two popular ARM and x86 hypervisors, KVM and Xen. We show how ARM hardware support for virtualization can enable much faster transitions between VMs and the hypervisor, a key hypervisor operation. However, current hypervisor designs, including both Type 1 hypervisors such as Xen and Type 2 hypervisors such as KVM, are not able to leverage this performance benefit for real application workloads. We discuss the reasons why and show that other factors related to hypervisor software design and implementation have a larger role in overall performance. Based on our measurements, we discuss changes to ARM's hardware virtualization support that can potentially bridge the gap to bring its faster VM-to-hypervisor transition mechanism to modern Type 2 hypervisors running real applications. These changes have been incorporated into the latest ARM architecture.
Christoffer Dall, Shih-Wei Li, Jin Tack Lim, Jason Nieh, Georgios Koloventzos
ISCA1
2014 Cider: native execution of iOS apps on android
abstract
We present Cider, an operating system compatibility architecture that can run applications built for different mobile ecosystems, iOS or Android, together on the same smartphone or tablet. Cider enhances the domestic operating system, Android, of a device with kernel-managed, per-thread personas to mimic the application binary interface of a foreign operating system, iOS, enabling it to run unmodified foreign binaries. This is accomplished using a novel combination of binary compatibility techniques including two new mechanisms: compile-time code adaptation, and diplomatic functions. Compile-time code adaptation enables existing unmodified foreign source code to be reused in the domestic kernel, reducing implementation effort required to support multiple binary interfaces for executing domestic and foreign applications. Diplomatic functions leverage per-thread personas, and allow foreign applications to use domestic libraries to access proprietary software and hardware interfaces. We have built a Cider prototype, and demonstrate that it imposes modest performance overhead and runs unmodified iOS and Android applications together on a Google Nexus tablet running the latest version of Android.
Jeremy Andrus, Alexander Van't Hof, Naser AlDuaij, Christoffer Dall, Nicolas Viennot, Jason Nieh
ASPLOS4
2014 KVM/ARM: the design and implementation of the linux ARM hypervisor
abstract
As ARM CPUs become increasingly common in mobile devices and servers, there is a growing demand for providing the benefits of virtualization for ARM-based devices. We present our experiences building the Linux ARM hypervisor, KVM/ARM, the first full system ARM virtualization solution that can run unmodified guest operating systems on ARM multicore hardware. KVM/ARM introduces split-mode virtualization, allowing a hypervisor to split its execution across CPU modes and be integrated into the Linux kernel. This allows KVM/ARM to leverage existing Linux hardware support and functionality to simplify hypervisor development and maintainability while utilizing recent ARM hardware virtualization extensions to run virtual machines with comparable performance to native execution. KVM/ARM has been successfully merged into the mainline Linux kernel, ensuring that it will gain wide adoption as the virtualization platform of choice for ARM. We provide the first measurements on real hardware of a complete hypervisor using ARM hardware virtualization support. Our results demonstrate that KVM/ARM has modest virtualization performance and power costs, and can achieve lower performance and power costs compared to x86-based Linux virtualization on multicore hardware.
Christoffer Dall, Jason Nieh
ASPLOS1
2014 Teaching operating systems using code review
abstract
Learning about operating systems often involves modifying a large and complex code base. Grading student projects can be difficult and time consuming, yet students often do not learn from their programming errors and struggle to understand core operating system concepts. We present GradeBoard, a code review system designed to simplify grading for instructors and enable students to understand and learn from their errors. GradeBoard provides an easy-to-use Web interface that allows instructors to annotate student code submissions with grading comments and scores, and students to discuss the comments and scores with instructors. GradeBoard presents student code changes with syntax highlighting and lets users collapse or expand code sections to provide a desired level of context, making it easier to read and understand student programming project submissions. Comments and scores are easily identifiable by visual cues, improving interaction between instructors and students. We have deployed and used GradeBoard in a large operating systems course involving Linux kernel programming projects. GradeBoard provided robust, easy-to-use functionality for reviewing Linux kernel code changes, improved the instructional staff grading experience, and over 90% of students surveyed indicated that GradeBoard improved their understanding of the kernel programming projects better than other alternatives.
Christoffer Dall, Jason Nieh
SIGCSE1
2012 The Design, Implementation, and Evaluation of Cells: A Virtual Smartphone Architecture
abstract
Smartphones are increasingly ubiquitous, and many users carry multiple phones to accommodate work, personal, and geographic mobility needs. We present Cells , a virtualization architecture for enabling multiple virtual smartphones to run simultaneously on the same physical cellphone in an isolated, secure manner. Cells introduces a usage model of having one foreground virtual phone and multiple background virtual phones. This model enables a new device namespace mechanism and novel device proxies that integrate with lightweight operating system virtualization to multiplex phone hardware across multiple virtual phones while providing native hardware device performance. Cells virtual phone features include fully accelerated 3D graphics, complete power management features, and full telephony functionality with separately assignable telephone numbers and caller ID support. We have implemented a prototype of Cells that supports multiple Android virtual phones on the same phone. Our performance results demonstrate that Cells imposes only modest runtime and memory overhead, works seamlessly across multiple hardware devices including Google Nexus 1 and Nexus S phones, and transparently runs Android applications at native speed without any modifications.
Christoffer Dall, Jeremy Andrus, Alexander Van't Hof, Oren Laadan, Jason Nieh
ACM Trans. Comput. Syst.1
2011 Cells: a virtual mobile smartphone architecture
abstract
Smartphones are increasingly ubiquitous, and many users carry multiple phones to accommodate work, personal, and geographic mobility needs. We present Cells, a virtualization architecture for enabling multiple virtual smartphones to run simultaneously on the same physical cellphone in an isolated, secure manner. Cells introduces a usage model of having one foreground virtual phone and multiple background virtual phones. This model enables a new device namespace mechanism and novel device proxies that integrate with lightweight operating system virtualization to multiplex phone hardware across multiple virtual phones while providing native hardware device performance. Cells virtual phone features include fully accelerated 3D graphics, complete power, management features, and full telephony functionality with separately assignable telephone numbers and caller ID support. We have implemented a prototype of Cells that supports multiple Android virtual phones on the same phone. Our performance results demonstrate that Cells imposes only modest runtime and memory overhead, works seamlessly across multiple hardware devices including Google Nexus 1 and Nexus S phones, and transparently runs Android applications at native speed without any modifications.
Jeremy Andrus, Christoffer Dall, Alexander Van't Hof, Oren Laadan, Jason Nieh
SOSP2