237 lines
8.9 KiB
HTML
237 lines
8.9 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
|
|
<meta http-equiv="Content-Type" content=
|
|
"text/html; charset=us-ascii">
|
|
<title>Chapter 30. Using the nvidia-persistenced
|
|
Utility</title>
|
|
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
|
<link rel="start" href="index.html" title=
|
|
"NVIDIA Accelerated Linux Graphics Driver README and Installation Guide">
|
|
<link rel="up" href="installationandconfiguration.html" title=
|
|
"Part I. Installation and Configuration Instructions">
|
|
<link rel="prev" href="nvidia-debugdump.html" title=
|
|
"Chapter 29. Using the nvidia-debugdump Utility">
|
|
<link rel="next" href="sli.html" title=
|
|
"Chapter 31. Configuring SLI and Multi-GPU Mosaic">
|
|
</head>
|
|
<body>
|
|
<div class="navheader">
|
|
<table width="100%" summary="Navigation header">
|
|
<tr>
|
|
<th colspan="3" align="center">Chapter 30. Using the
|
|
nvidia-persistenced Utility</th>
|
|
</tr>
|
|
<tr>
|
|
<td width="20%" align="left"><a accesskey="p" href=
|
|
"nvidia-debugdump.html">Prev</a> </td>
|
|
<th width="60%" align="center">Part I. Installation and
|
|
Configuration Instructions</th>
|
|
<td width="20%" align="right"> <a accesskey="n" href=
|
|
"sli.html">Next</a></td>
|
|
</tr>
|
|
</table>
|
|
<hr></div>
|
|
<div class="chapter" lang="en">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title"><a name="nvidia-persistenced" id=
|
|
"nvidia-persistenced"></a>Chapter 30. Using the
|
|
nvidia-persistenced Utility</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p><b>Table of Contents</b></p>
|
|
<dl>
|
|
<dt><span class="section"><a href=
|
|
"nvidia-persistenced.html#Background46f43">Background</a></span></dt>
|
|
<dt><span class="section"><a href=
|
|
"nvidia-persistenced.html#Usage01b5d">Usage</a></span></dt>
|
|
<dt><span class="section"><a href=
|
|
"nvidia-persistenced.html#Troubleshootingc8305">Troubleshooting</a></span></dt>
|
|
<dt><span class="section"><a href=
|
|
"nvidia-persistenced.html#NotesForPackage3f7a9">Notes for Package
|
|
Maintainers</a></span></dt>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="en">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both"><a name="Background46f43" id=
|
|
"Background46f43"></a>Background</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>A Linux daemon utility, <span><strong class=
|
|
"command">nvidia-persistenced</strong></span>, addresses an
|
|
undesirable side effect of the NVIDIA kernel driver behavior in
|
|
certain computing environments. Whenever the NVIDIA device
|
|
resources are no longer in use, the NVIDIA kernel driver will tear
|
|
down the device state. Normally, this is the intended behavior of
|
|
the device driver, but for some applications, the latencies
|
|
incurred by repetitive device initialization can significantly
|
|
impact performance.</p>
|
|
<p>To avoid this behavior, <span><strong class=
|
|
"command">nvidia-persistenced</strong></span> provides a
|
|
configuration option called "persistence mode" that can be set by
|
|
NVIDIA management software, such as <span><strong class=
|
|
"command">nvidia-smi</strong></span>. When persistence mode is
|
|
enabled, the daemon holds the NVIDIA character device files open,
|
|
preventing the NVIDIA kernel driver from tearing down device state
|
|
when no other process is using the device. This utility does not
|
|
actually use any device resources itself - it will simply sleep
|
|
while maintaining a reference to the NVIDIA device state.</p>
|
|
</div>
|
|
<div class="section" lang="en">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both"><a name="Usage01b5d" id=
|
|
"Usage01b5d"></a>Usage</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p><span><strong class=
|
|
"command">nvidia-persistenced</strong></span> is included with the
|
|
NVIDIA Linux GPU driver. After installing the driver, this utility
|
|
may be installed to run on system startup or manually with the
|
|
command:</p>
|
|
<pre class="screen">
|
|
# nvidia-persistenced
|
|
</pre>
|
|
<p>in a terminal window. Note that the daemon may require root
|
|
privileges to create its runtime data directory,
|
|
/var/run/nvidia-persistenced/, or it may otherwise need to be run
|
|
as a user that has access to that directory.</p>
|
|
<p>Detailed help and usage information is available primarily via
|
|
the <span><strong class=
|
|
"command">nvidia-persistenced</strong></span> man page, as well as
|
|
the <span><strong class="command">--help</strong></span> command
|
|
line option.</p>
|
|
<p>The source code to nvidia-persistenced is released under the MIT
|
|
license and is available at: <a href=
|
|
"https://download.nvidia.com/XFree86/nvidia-persistenced/" target=
|
|
"_top">https://download.nvidia.com/XFree86/nvidia-persistenced/</a>.</p>
|
|
</div>
|
|
<div class="section" lang="en">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both"><a name=
|
|
"Troubleshootingc8305" id=
|
|
"Troubleshootingc8305"></a>Troubleshooting</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>If you have difficulty getting <span><strong class=
|
|
"command">nvidia-persistenced</strong></span> to work as expected,
|
|
the best way to gather information as to what is happening is to
|
|
run the daemon with the <span><strong class=
|
|
"command">--verbose</strong></span> option.</p>
|
|
<p><span><strong class=
|
|
"command">nvidia-persistenced</strong></span> detaches from its
|
|
parent process very early on, and as such only invalid command line
|
|
argument errors will be printed in the terminal window. All other
|
|
output, including verbose informational messages, are sent to the
|
|
syslog interface instead. Consult your distribution's documentation
|
|
for accessing syslog output.</p>
|
|
</div>
|
|
<div class="section" lang="en">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both"><a name=
|
|
"NotesForPackage3f7a9" id="NotesForPackage3f7a9"></a>Notes for
|
|
Package Maintainers</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>The daemon utility <span><strong class=
|
|
"command">nvidia-persistenced</strong></span> is installed by the
|
|
NVIDIA Linux GPU driver installer, but it is not installed to run
|
|
on system startup. Due to the wide variety of init systems used by
|
|
the various Linux distributions that the NVIDIA Linux GPU driver
|
|
supports, we request that package maintainers for those
|
|
distributions provide the packaging necessary to integrate well
|
|
with their platform.</p>
|
|
<p>NVIDIA provides sample init scripts for some common init systems
|
|
in
|
|
/usr/share/doc/NVIDIA_GLX-1.0/sample/nvidia-persistenced-init.tar.bz2
|
|
to aid in installation of the utility.</p>
|
|
<p><span><strong class=
|
|
"command">nvidia-persistenced</strong></span> is intended to be run
|
|
as a daemon from system initialization, and is generally designed
|
|
as a tool for compute-only platforms where the NVIDIA device is not
|
|
used to display a graphical user interface. As such, depending on
|
|
how your package is typically used, it may not be necessary to
|
|
install the daemon to run on system initialization.</p>
|
|
<p>If <span><strong class=
|
|
"command">nvidia-persistenced</strong></span> is packaged to run on
|
|
system initialization, the package installation, init script or
|
|
system management utility that runs the daemon should provide the
|
|
following:</p>
|
|
<div class="variablelist">
|
|
<dl>
|
|
<dt><span class="term">A non-root user to run as</span></dt>
|
|
<dd>
|
|
<p>It is strongly recommended, though not required, that the daemon
|
|
be run as a non-root user for security purposes.</p>
|
|
<p>The daemon may either be started with root privileges and the
|
|
<span><strong class="command">--user</strong></span> option, or it
|
|
may be run directly as the non-root user.</p>
|
|
</dd>
|
|
<dt><span class="term">Runtime access to
|
|
/var/run/nvidia-persistenced/</span></dt>
|
|
<dd>
|
|
<p>The daemon must be able to create its socket and PID file in
|
|
this directory.</p>
|
|
<p>If the daemon is run as root, it will create this directory
|
|
itself and remove it when it shuts down cleanly.</p>
|
|
<p>If the daemon is run as a non-root user, this directory must
|
|
already exist, and the daemon will not attempt to remove it when it
|
|
shuts down cleanly.</p>
|
|
<p>If the daemon is started as root, but provided a non-root user
|
|
to run as via the <span><strong class=
|
|
"command">--user</strong></span> option, the daemon will create
|
|
this directory itself, <span><strong class=
|
|
"command">chown</strong></span> it to the provided user, and
|
|
<span><strong class="command">setuid</strong></span> to the
|
|
provided user to drop root privileges. The daemon may be unable to
|
|
remove this directory when it shuts down cleanly, depending on the
|
|
privileges of the provided user.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<p></p>
|
|
</div>
|
|
</div>
|
|
<div class="navfooter">
|
|
<hr>
|
|
<table width="100%" summary="Navigation footer">
|
|
<tr>
|
|
<td width="40%" align="left"><a accesskey="p" href=
|
|
"nvidia-debugdump.html">Prev</a> </td>
|
|
<td width="20%" align="center"><a accesskey="u" href=
|
|
"installationandconfiguration.html">Up</a></td>
|
|
<td width="40%" align="right"> <a accesskey="n" href=
|
|
"sli.html">Next</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="40%" align="left" valign="top">
|
|
Chapter 29. Using the nvidia-debugdump Utility </td>
|
|
<td width="20%" align="center"><a accesskey="h" href=
|
|
"index.html">Home</a></td>
|
|
<td width="40%" align="right" valign="top">
|
|
Chapter 31. Configuring SLI and Multi-GPU
|
|
Mosaic</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</body>
|
|
</html>
|