One Hat Cyber Team
Your IP :
216.73.216.115
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
qemu-kvm
/
system
/
devices
/
View File Name :
ivshmem.html
<!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Inter-VM Shared Memory device — QEMU qemu-kvm-6.2.0-53.module+el8.10.0+2055+8eb7870b.4 documentation</title> <link rel="shortcut icon" href="../../_static/qemu_32x32.png"/> <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> <link rel="next" title="Network emulation" href="net.html" /> <link rel="prev" title="Device Emulation" href="../device-emulation.html" /> <script src="../../_static/js/modernizr.min.js"></script> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search"> <a href="../../index.html" class="icon icon-home"> QEMU <img src="../../_static/qemu_128x128.png" class="logo" alt="Logo"/> </a> <div class="version"> 6.2.0 </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> <p class="caption"><span class="caption-text">Contents:</span></p> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../../about/index.html">About QEMU</a></li> <li class="toctree-l1 current"><a class="reference internal" href="../index.html">System Emulation</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="../quickstart.html">Quick Start</a></li> <li class="toctree-l2"><a class="reference internal" href="../invocation.html">Invocation</a></li> <li class="toctree-l2 current"><a class="reference internal" href="../device-emulation.html">Device Emulation</a><ul class="current"> <li class="toctree-l3"><a class="reference internal" href="../device-emulation.html#common-terms">Common Terms</a></li> <li class="toctree-l3 current"><a class="reference internal" href="../device-emulation.html#emulated-devices">Emulated Devices</a><ul class="current"> <li class="toctree-l4 current"><a class="current reference internal" href="#">Inter-VM Shared Memory device</a></li> <li class="toctree-l4"><a class="reference internal" href="net.html">Network emulation</a></li> <li class="toctree-l4"><a class="reference internal" href="nvme.html">NVMe Emulation</a></li> <li class="toctree-l4"><a class="reference internal" href="usb.html">USB emulation</a></li> <li class="toctree-l4"><a class="reference internal" href="vhost-user.html">vhost-user back ends</a></li> <li class="toctree-l4"><a class="reference internal" href="virtio-pmem.html">virtio pmem</a></li> <li class="toctree-l4"><a class="reference internal" href="vhost-user-rng.html">QEMU vhost-user-rng - RNG emulation</a></li> </ul> </li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../keys.html">Keys in the graphical frontends</a></li> <li class="toctree-l2"><a class="reference internal" href="../mux-chardev.html">Keys in the character backend multiplexer</a></li> <li class="toctree-l2"><a class="reference internal" href="../monitor.html">QEMU Monitor</a></li> <li class="toctree-l2"><a class="reference internal" href="../images.html">Disk Images</a></li> <li class="toctree-l2"><a class="reference internal" href="../virtio-net-failover.html">QEMU virtio-net standby (net_failover)</a></li> <li class="toctree-l2"><a class="reference internal" href="../linuxboot.html">Direct Linux Boot</a></li> <li class="toctree-l2"><a class="reference internal" href="../generic-loader.html">Generic Loader</a></li> <li class="toctree-l2"><a class="reference internal" href="../guest-loader.html">Guest Loader</a></li> <li class="toctree-l2"><a class="reference internal" href="../barrier.html">QEMU Barrier Client</a></li> <li class="toctree-l2"><a class="reference internal" href="../vnc-security.html">VNC security</a></li> <li class="toctree-l2"><a class="reference internal" href="../tls.html">TLS setup for network services</a></li> <li class="toctree-l2"><a class="reference internal" href="../secrets.html">Providing secret data to QEMU</a></li> <li class="toctree-l2"><a class="reference internal" href="../authz.html">Client authorization</a></li> <li class="toctree-l2"><a class="reference internal" href="../gdb.html">GDB usage</a></li> <li class="toctree-l2"><a class="reference internal" href="../managed-startup.html">Managed start up options</a></li> <li class="toctree-l2"><a class="reference internal" href="../bootindex.html">Managing device boot order with bootindex properties</a></li> <li class="toctree-l2"><a class="reference internal" href="../cpu-hotplug.html">Virtual CPU hotplug</a></li> <li class="toctree-l2"><a class="reference internal" href="../pr-manager.html">Persistent reservation managers</a></li> <li class="toctree-l2"><a class="reference internal" href="../targets.html">QEMU System Emulator Targets</a></li> <li class="toctree-l2"><a class="reference internal" href="../security.html">Security</a></li> <li class="toctree-l2"><a class="reference internal" href="../multi-process.html">Multi-process QEMU</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../user/index.html">User Mode Emulation</a></li> <li class="toctree-l1"><a class="reference internal" href="../../tools/index.html">Tools</a></li> <li class="toctree-l1"><a class="reference internal" href="../../interop/index.html">System Emulation Management and Interoperability</a></li> <li class="toctree-l1"><a class="reference internal" href="../../specs/index.html">System Emulation Guest Hardware Specifications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../devel/index.html">Developer Information</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <nav class="wy-nav-top" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../../index.html">QEMU</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="breadcrumbs navigation"> <ul class="wy-breadcrumbs"> <li><a href="../../index.html">Docs</a> »</li> <li><a href="../index.html">System Emulation</a> »</li> <li><a href="../device-emulation.html">Device Emulation</a> »</li> <li>Inter-VM Shared Memory device</li> <li class="wy-breadcrumbs-aside"> <a href="https://gitlab.com/qemu-project/qemu/blob/master/docs/system/devices/ivshmem.rst" class="fa fa-gitlab"> Edit on GitLab</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <div class="section" id="inter-vm-shared-memory-device"> <span id="pcsys-005fivshmem"></span><h1>Inter-VM Shared Memory device<a class="headerlink" href="#inter-vm-shared-memory-device" title="Permalink to this headline">¶</a></h1> <p>On Linux hosts, a shared memory device is available. The basic syntax is:</p> <pre class="literal-block"> qemu-kvm -device ivshmem-plain,memdev=hostmem </pre> <p>where hostmem names a host memory backend. For a POSIX shared memory backend, use something like</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="nb">object</span> <span class="n">memory</span><span class="o">-</span><span class="n">backend</span><span class="o">-</span><span class="n">file</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="mi">1</span><span class="n">M</span><span class="p">,</span><span class="n">share</span><span class="p">,</span><span class="n">mem</span><span class="o">-</span><span class="n">path</span><span class="o">=/</span><span class="n">dev</span><span class="o">/</span><span class="n">shm</span><span class="o">/</span><span class="n">ivshmem</span><span class="p">,</span><span class="nb">id</span><span class="o">=</span><span class="n">hostmem</span> </pre></div> </div> <p>If desired, interrupts can be sent between guest VMs accessing the same shared memory region. Interrupt support requires using a shared memory server and using a chardev socket to connect to it. The code for the shared memory server is qemu.git/contrib/ivshmem-server. An example syntax when using the shared memory server is:</p> <pre class="literal-block"> # First start the ivshmem server once and for all ivshmem-server -p pidfile -S path -m shm-name -l shm-size -n vectors # Then start your qemu instances with matching arguments qemu-kvm -device ivshmem-doorbell,vectors=vectors,chardev=id -chardev socket,path=path,id=id </pre> <p>When using the server, the guest will be assigned a VM ID (>=0) that allows guests using the same server to communicate via interrupts. Guests can read their VM ID from a device register (see ivshmem-spec.txt).</p> <div class="section" id="migration-with-ivshmem"> <h2>Migration with ivshmem<a class="headerlink" href="#migration-with-ivshmem" title="Permalink to this headline">¶</a></h2> <p>With device property <code class="docutils literal notranslate"><span class="pre">master=on</span></code>, the guest will copy the shared memory on migration to the destination host. With <code class="docutils literal notranslate"><span class="pre">master=off</span></code>, the guest will not be able to migrate with the device attached. In the latter case, the device should be detached and then reattached after migration using the PCI hotplug support.</p> <p>At most one of the devices sharing the same memory can be master. The master must complete migration before you plug back the other devices.</p> </div> <div class="section" id="ivshmem-and-hugepages"> <h2>ivshmem and hugepages<a class="headerlink" href="#ivshmem-and-hugepages" title="Permalink to this headline">¶</a></h2> <p>Instead of specifying the <shm size> using POSIX shm, you may specify a memory backend that has hugepage support:</p> <pre class="literal-block"> qemu-kvm -object memory-backend-file,size=1G,mem-path=/dev/hugepages/my-shmem-file,share,id=mb1 -device ivshmem-plain,memdev=mb1 </pre> <p>ivshmem-server also supports hugepages mount points with the <code class="docutils literal notranslate"><span class="pre">-m</span></code> memory path argument.</p> </div> </div> </div> </div> <footer> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <a href="net.html" class="btn btn-neutral float-right" title="Network emulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="../device-emulation.html" class="btn btn-neutral" title="Device Emulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> <hr/> <div role="contentinfo"> <p> © Copyright 2021, The QEMU Project Developers. </p> </div> Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. <!-- Empty para to force a blank line after "Built with Sphinx ..." --> <p></p> <p>This documentation is for QEMU version 6.2.0.</p> <p><a href="../../about/license.html">QEMU and this manual are released under the GNU General Public License, version 2.</a></p> </footer> </div> </div> </section> </div> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'../../', VERSION:'qemu-kvm-6.2.0-53.module+el8.10.0+2055+8eb7870b.4', LANGUAGE:'None', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: false, SOURCELINK_SUFFIX: '.txt' }; </script> <script type="text/javascript" src="../../_static/jquery.js"></script> <script type="text/javascript" src="../../_static/underscore.js"></script> <script type="text/javascript" src="../../_static/doctools.js"></script> <script type="text/javascript" src="../../_static/js/theme.js"></script> <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>