public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Alessandro Barbieri" <lssndrbarbieri@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:dev commit in: sys-kernel/xpmem/
Date: Tue,  3 Aug 2021 08:07:30 +0000 (UTC)	[thread overview]
Message-ID: <1627977960.5412c3bcd8b34b6477f791a8684e00a404c82135.Alessandro-Barbieri@gentoo> (raw)

commit:     5412c3bcd8b34b6477f791a8684e00a404c82135
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Tue Aug  3 08:06:00 2021 +0000
Commit:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Tue Aug  3 08:06:00 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=5412c3bc

sys-kernel/xpmem: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 sys-kernel/xpmem/Manifest                     |  1 +
 sys-kernel/xpmem/metadata.xml                 | 55 ++++++++++++++++++++++++++
 sys-kernel/xpmem/xpmem-2.6.3_p20210217.ebuild | 56 +++++++++++++++++++++++++++
 3 files changed, 112 insertions(+)

diff --git a/sys-kernel/xpmem/Manifest b/sys-kernel/xpmem/Manifest
new file mode 100644
index 000000000..2cac8e390
--- /dev/null
+++ b/sys-kernel/xpmem/Manifest
@@ -0,0 +1 @@
+DIST xpmem-2.6.3_p20210217.tar.gz 55906 BLAKE2B 609f9b18529e06504c02cbee3383355e161ebcad98d558ff518d125cf4b795fd32f0b6eba8e23c67e4ccf6eb2b6686be21594335a48fcdee71344ee063af65e3 SHA512 fb09d7120686957d02c29c7058e6b1e1de35637252c4942efcd722306117384cb6bdc8d3e175c26d3de56c36dd6946f53fa341473a7ad660d68847a23d331bb3

diff --git a/sys-kernel/xpmem/metadata.xml b/sys-kernel/xpmem/metadata.xml
new file mode 100644
index 000000000..31c9905e2
--- /dev/null
+++ b/sys-kernel/xpmem/metadata.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<longdescription lang="en">
+This is an experimental version of XPMEM based on a version provided by
+Cray and uploaded to https://code.google.com/p/xpmem. This version supports
+any kernel 3.12 and newer. Keep in mind there may be bugs and this version
+may cause kernel panics, code crashes, eat your cat, etc.
+
+XPMEM is a Linux kernel module that enables a process to map the
+memory of another process into its virtual address space. Source code
+can be obtained by cloning the Git repository, original Mercurial
+repository 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 address
+space. Other processes can then attach to the region by calling
+xpmem_get() and xpmem_attach(). After a memory region is attached, it
+is accessed via direct loads and stores. This enables upper-level
+protocols such as MPI and SHMEM to perform single-copy address-space
+to address-space transfers, completely at user-level.
+
+Note, there is a limitation to the usage of an attached region. Any
+system call that will call get_user_pages() on the region from the
+non-owning process with get EFAULT. This include pthread mutexes
+and condition variable, and SYS V semaphores. We intend to address
+this limitation in a future release.
+
+XPMEM regions are free to have "holes" in them, meaning virtual memory
+regions that are not allocated. This makes XPMEM somewhat more
+flexible than mmap(). A process could, for example, export a region
+via XPMEM starting at address 0 and extending 4 GB. Accesses to
+allocated (valid) virtual addresses in this region proceed normally,
+and pages are mapped between address spaces on demand. A segfault will
+occur if the source process or any other process mapping the region
+tries to access an unallocated (invalid) virtual address in the
+region.
+	</longdescription>
+	<maintainer type="person">
+		<email>lssndrbarbieri@gmail.com</email>
+		<name>Alessandro Barbieri</name>
+	</maintainer>
+	<use>
+		<flag name="modules">Build the kernel module</flag>
+	</use>
+	<upstream>
+		<bugs-to>https://github.com/hjelmn/xpmem/issues</bugs-to>
+		<remote-id type="github">hjelmn/xpmem</remote-id>
+	</upstream>
+</pkgmetadata>

diff --git a/sys-kernel/xpmem/xpmem-2.6.3_p20210217.ebuild b/sys-kernel/xpmem/xpmem-2.6.3_p20210217.ebuild
new file mode 100644
index 000000000..f03a6b4e0
--- /dev/null
+++ b/sys-kernel/xpmem/xpmem-2.6.3_p20210217.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools linux-mod
+
+MODULES_OPTIONAL_USE="modules"
+MY_REV="242eaa1eca92567c2118afe21e37cafc524f9166"
+
+DESCRIPTION="Linux Cross-Memory Attach"
+HOMEPAGE="https://github.com/hjelmn/xpmem"
+SRC_URI="https://github.com/hjelmn/xpmem/archive/${MY_REV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${MY_REV}"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+modules"
+
+MODULE_NAMES="xpmem(misc:${WORKDIR}/module/kernel:${WORKDIR}/module/kernel)"
+BUILD_TARGETS="all"
+
+src_prepare() {
+	default
+	AT_M4DIR="m4" eautoreconf
+	if use modules; then
+		cp -r "${S}" "${WORKDIR}/module" || die
+	fi
+}
+
+src_configure() {
+	local myconf=(
+		--disable-kernel-module
+	)
+	econf "${myconf[@]}"
+
+	if use modules; then
+		pushd "${WORKDIR}/module" || die
+	        econf
+		popd || die
+	fi
+}
+
+src_compile() {
+	default
+	use modules && linux-mod_src_compile
+}
+
+src_install() {
+	einstalldocs
+	default
+	use modules && linux-mod_src_install
+	find "${ED}" -name '*.la' -delete || die
+	find "${ED}" -name '*.a' -delete || die
+}


             reply	other threads:[~2021-08-03  8:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-03  8:07 Alessandro Barbieri [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-08-03  9:09 [gentoo-commits] repo/proj/guru:dev commit in: sys-kernel/xpmem/ Alessandro Barbieri
2021-08-24  6:15 Alessandro Barbieri
2021-09-01  0:38 Alessandro Barbieri

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1627977960.5412c3bcd8b34b6477f791a8684e00a404c82135.Alessandro-Barbieri@gentoo \
    --to=lssndrbarbieri@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox