Remote Page Faults Over RDMA

Slides:



Advertisements
Similar presentations
Machine cycle.
Advertisements

USERSPACE I/O Reporter: R 張凱富.
Memory Management: Overlays and Virtual Memory
Memory Management Unit
The Linux Kernel: Memory Management
1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Assistant Professor, University of Maryland Baltimore County.
VIA and Its Extension To TCP/IP Network Yingping Lu Based on Paper “Queue Pair IP, …” by Philip Buonadonna.
Inter Process Communication:  It is an essential aspect of process management. By allowing processes to communicate with each other: 1.We can synchronize.
DAPL: Direct Access Transport Libraries Introduction and Example Yufei 10/01/2010.
Netkit ftpd/ftp migration Part 3 Yufei 10/01/2010.
CSE 451 Section 4 Project 2 Design Considerations.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Stan Smith Intel SSG/DPD June, 2015 Kernel Fabric Interface KFI Framework.
Signature Verbs Extension Richard L. Graham. Data Integrity Field (DIF) Used to provide data block integrity check capabilities (CRC) for block storage.
Some VM Complications Extra memory accesses Page tables are huge
COS 598: Advanced Operating System. Operating System Review What are the two purposes of an OS? What are the two modes of execution? Why do we have two.
1-1 NET+OS Software Group Flash API Multiple flash memory bank support New Flash API introduction Detailed Flash API Function presentation Supporting.
Chapter 8 – Main Memory (Pgs ). Overview  Everything to do with memory is complicated by the fact that more than 1 program can be in memory.
And the PageObject Design Model.  How Selenium Remote Control works  You launch a server on your test machine.  Your tests connect to that server via.
1 Some Real Problem  What if a program needs more memory than the machine has? —even if individual programs fit in memory, how can we run multiple programs?
MicroComputer Engineering OperatingSystem slide 1 the Operating System (OS)
IB Verbs Compatibility
Best Practices Steve Maillet Chief Software Architect EmbeddedFusion ECE401 Best Practices For Driver Development.
CSE 466 – Fall Introduction - 1 User / Kernel Space Physical Memory mem mapped I/O kernel code user pages user code GPLR virtual kernel C
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
October 1, 2003Serguei A. Mokhov, 1 SOEN228, Winter 2003 Revision 1.2 Date: October 25, 2003.
LECTURE 12 Virtual Memory. VIRTUAL MEMORY Just as a cache can provide fast, easy access to recently-used code and data, main memory acts as a “cache”
 Open the course you want to add the SI or SA  Click on Context Manager (left side)  Click on the Permissions Tab  Click on Add a Role.
On Demand Paging (ODP) Update Liran Liss Mellanox Technologies.
EUDAT receives funding from the European Union's Horizon 2020 programme - DG CONNECT e-Infrastructures. Contract No Store and Share.
SC’13 BoF Discussion Sean Hefty Intel Corporation.
Input/Output (I/O) Important OS function – control I/O
Homework Reading Machine Projects Labs
Introduction to Kernel
Protecting Memory What is there to protect in memory?
Zero-copy Receive Path in Virtio
Checkpoint/restart in Slurm: current status and new developments
Agenda About us Why para-virtualize RDMA Project overview Open issues
Virtualization Virtualize hardware resources through abstraction CPU
Stored Procedures.
Memory Protection: Kernel and User Address Spaces
Part of the Assembler Language Programmers Toolbox
Protecting Memory What is there to protect in memory?
Lecture 12 Virtual Memory.
Protecting Memory What is there to protect in memory?
the Operating System (OS)
Chapter 2: System Structures
Some Real Problem What if a program needs more memory than the machine has? even if individual programs fit in memory, how can we run multiple programs?
Memory Management References text: Tanenbaum ch.4.
Task 1 Activities Achievements Pictures
Von Neumann model - Memory
Chapter 3: Windows7 Part 4.
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Management References text: Tanenbaum ch.4.
TOOP The Once-Only Principle Project
Making Virtual Memory Real: The Linux-x86-64 way
Computer-System Architecture
US Cluster Visit Booklet
Von Neumann model - Memory
Operating Systems Lecture 3.
Vendor Portal Registration Procedures
Lightning Talk Helping our users be users
their business through new product lines
CS703 - Advanced Operating Systems
Memory Protection: Kernel and User Address Spaces
Interrupts and System Calls
Shared Memory David Ferry, Chris Gill
Digital Learning – participatory meeting
Presentation transcript:

Remote Page Faults Over RDMA Mike Rapoport <rppt@linux.ibm.com> Joel Nider <joeln@il.ibm.com> This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 688386.

RDMA - registering memory problem I want to migrate an application container using post-copy Destination Machine Source Machine Application CRIU CRIU RDMA

RDMA - registering memory problem How does it work today with TCP/IP? Destination Machine Source Machine Parasite Application Userfaultfd Pipes CRIU CRIU TCP/IP

RDMA - Requirements We would like to avoid the pipes RDMA can remotely access memory directly from application All logic must be in CRIU The application should not have to support migration

RDMA - registering memory problem [2] CRIU establishes the RDMA connection - OK! CRIU tries to register the memory region on behalf of the migrating process - ???

RDMA - registering memory problem [3] Option 1: Stuff OFED into the parasite Parasite is PIE code OFED + user mode driver is huge Bad combination

RDMA - registering memory problem [4] Option 2: Teach libibverbs to register memory for another process Add new function ibv_reg_remote_mr (include/infiniband/verbs.h) struct ibv_mr *ibv_reg_remote_mr(struct ibv_pd *pd, void *addr, size_t length, int access, int pid); Now you can pass any pid to steal read its memory May pose a threat to security

What Was Changed? Use ib_ucontext.tgid to hold the PID we are registering for Add ib_mr_init_attr.pid to pass pid to pd->device->reg_user_mr() Add ib_uverbs_reg_mr.pid to pass pid to ib_uverbs_reg_mr() Mellanox specific: reg_user_mr => mlx5_ib_reg_user_mr() Add pid parameter to mlx5_ib_alloc_implicit_mr() Store pid in pd->ibpd.uobject->context->tgid (ib_ucontext)

A Bit Problematic This poses some problems in the real world: No permission check in kernel for accessing another process Touches vendor-specific code What should this API really look like?

Thank you!