Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
/xpmemPublic

Linux Cross-Memory Attach

License

LGPL-2.1, GPL-2.0 licenses found

Licenses found

LGPL-2.1
COPYING.LESSER
GPL-2.0
COPYING
NotificationsYou must be signed in to change notification settings

hpc/xpmem

Repository files navigation

# IntroductionThis is an experimental version of XPMEM based on a version provided by Crayand uploaded tohttps://code.google.com/p/xpmem. This version supports anyLinux kernel 3.12 and newer (tested up to 5.8.x). Keep in mind there may be bugs andthis version may cause kernel panics, code crashes, eat your cat, etc.XPMEM is a Linux kernel module that enables a process to map thememory of another process into its virtual address space. Source codecan be obtained by cloning the Git repository, original Mercurialrepository or by downloading a tarball from the link above.The XPMEM API has three main functions:  xpmem_make()      xpmem_get()  xpmem_attach()A process calls xpmem_make() to export a region of its virtual addressspace. Other processes can then attach to the region by callingxpmem_get() and xpmem_attach(). After a memory region is attached, itis accessed via direct loads and stores. This enables upper-levelprotocols such as MPI and SHMEM to perform single-copy address-spaceto address-space transfers, completely at user-level.Note, there is a limitation to the usage of an attached region. Anysystem call that will call get_user_pages() on the region from thenon-owning process with get EFAULT. This include pthread mutexesand condition variable, and SYS V semaphores. We intend to addressthis limitation in a future release.XPMEM regions are free to have "holes" in them, meaning virtual memoryregions that are not allocated. This makes XPMEM somewhat moreflexible than mmap(). A process could, for example, export a regionvia XPMEM starting at address 0 and extending 4 GB. Accesses toallocated (valid) virtual addresses in this region proceed normally,and pages are mapped between address spaces on demand. A segfault willoccur if the source process or any other process mapping the regiontries to access an unallocated (invalid) virtual address in theregion.# Known issues* Memory regions mapped with XPMEM cannot be pinned with  [ibv_dereg_mr](https://linux.die.net/man/3/ibv_reg_mr)

About

Linux Cross-Memory Attach

Resources

License

LGPL-2.1, GPL-2.0 licenses found

Licenses found

LGPL-2.1
COPYING.LESSER
GPL-2.0
COPYING

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp