<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f9737344972ce73ea8fd29b8ce7dce6ea1e2aed9 - Modify the communication layer between the kernel NVMM driver and libnvmm:</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/netbsd-src/lib/libnvmm/Makefile#f9737344972ce73ea8fd29b8ce7dce6ea1e2aed9</link>
        <description>Modify the communication layer between the kernel NVMM driver and libnvmm:introduce a bidirectionnal &quot;comm page&quot;, a page of memory shared betweenthe kernel and userland, and used to transfer data in and out in a moreperformant manner than ioctls.The comm page contains the VCPU state, plus three flags: - &quot;wanted&quot;: the states the kernel must get/set when requested via ioctls - &quot;cached&quot;: the states that are in the comm page - &quot;commit&quot;: the states the kernel must set in vcpu_runThe idea is to avoid performing expensive syscalls, by using the VCPUstate cached, either explicitly or speculatively, in the comm page. Forexample, if the state is cached we do a direct 1-&gt;5 with no syscall:          +---------------------------------------------+          |                    Qemu                     |          +---------------------------------------------+               |                                   ^               | (0) nvmm_vcpu_getstate            | (6) Done               |                                   |               V                                   |             +---------------------------------------+             |                libnvmm                |             +---------------------------------------+                  |   ^          |               ^        (1) State |   | (2) No   | (3) Ioctl:    | (5) Ok, state        cached?   |   |          | &quot;please cache | fetched                  |   |          |  the state&quot;   |                  V   |          |               |              +-----------+      |               |              | Comm Page |------+---------------+              +-----------+      |                       ^         |          (4) &quot;Alright |         V               babe&quot;   |     +--------+                       +-----| Kernel |                             +--------+The main changes in behavior are: - nvmm_vcpu_getstate(): won&apos;t emit a syscall if the state is already   cached in the comm page, will just fetch from the comm page directly - nvmm_vcpu_setstate(): won&apos;t emit a syscall at all, will just cache   the wanted state in the comm page - nvmm_vcpu_run(): will commit the to-be-set state in the comm page,   as previously requested by nvmm_vcpu_setstate()In addition to this, the kernel NVMM driver is changed to speculativelycache certain states known to be of interest, so that the futurenvmm_vcpu_getstate() calls libnvmm or the emulator will perform will usethe comm page rather than expensive syscalls. For example, if an I/OVMEXIT occurs, the I/O Assist in libnvmm will want GPRS+SEGS+CRS+MSRS,and now the kernel caches all of that in the comm page before returningto userland.Overall, in a normal run of Windows 10, this saves several millions ofsyscalls. Eg on a 4CPU Intel with 4VCPUs, booting the Win10 install ISOgoes from taking 1min35 to taking 1min16.The libnvmm API is not changed, but the ABI is. If we changed the API itwould be possible to save expensive memcpys on libnvmm&apos;s side. This willbe avoided in a future version. The comm page can also be extended toimplement future services.

            List of files:
            /netbsd-src/lib/libnvmm/Makefile</description>
        <pubDate>Sun, 28 Apr 2019 14:22:13 +0000</pubDate>
        <dc:creator>maxv &lt;maxv@NetBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>53fe79071f686cf90dd95fbf5d24fb6836db2347 - Too much magic involved - revert previous.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/netbsd-src/lib/libnvmm/Makefile#53fe79071f686cf90dd95fbf5d24fb6836db2347</link>
        <description>Too much magic involved - revert previous.

            List of files:
            /netbsd-src/lib/libnvmm/Makefile</description>
        <pubDate>Tue, 13 Nov 2018 09:24:37 +0000</pubDate>
        <dc:creator>martin &lt;martin@NetBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>94c721a4e0d5730a04c60dba883b4670aad07d76 - Need some minimalistic support for additional things that ../Makefile</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/netbsd-src/lib/libnvmm/Makefile#94c721a4e0d5730a04c60dba883b4670aad07d76</link>
        <description>Need some minimalistic support for additional things that ../Makefilerequires, even if we do nothing here

            List of files:
            /netbsd-src/lib/libnvmm/Makefile</description>
        <pubDate>Tue, 13 Nov 2018 09:14:14 +0000</pubDate>
        <dc:creator>martin &lt;martin@NetBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>9b49821e7c4416655ed9fcc06d7bd528c2e07e74 - Move conditionals for libnvmm to subdir makefile, requested boy mrg.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/netbsd-src/lib/libnvmm/Makefile#9b49821e7c4416655ed9fcc06d7bd528c2e07e74</link>
        <description>Move conditionals for libnvmm to subdir makefile, requested boy mrg.

            List of files:
            /netbsd-src/lib/libnvmm/Makefile</description>
        <pubDate>Tue, 13 Nov 2018 09:00:08 +0000</pubDate>
        <dc:creator>martin &lt;martin@NetBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>996407034c78c583dea35816026e8f7a0304a1e2 - No need to install shared libraries to /lib.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/netbsd-src/lib/libnvmm/Makefile#996407034c78c583dea35816026e8f7a0304a1e2</link>
        <description>No need to install shared libraries to /lib.

            List of files:
            /netbsd-src/lib/libnvmm/Makefile</description>
        <pubDate>Mon, 12 Nov 2018 17:46:53 +0000</pubDate>
        <dc:creator>nakayama &lt;nakayama@NetBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>2760ca24b538ef943b3e603f28f122f4e1e4379b - Add libnvmm, NetBSD&apos;s new virtualization API. It provides a way for VMM</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/netbsd-src/lib/libnvmm/Makefile#2760ca24b538ef943b3e603f28f122f4e1e4379b</link>
        <description>Add libnvmm, NetBSD&apos;s new virtualization API. It provides a way for VMMsoftware to effortlessly create and manage virtual machines via NVMM.It is mostly complete, only nvmm_assist_mem needs to be filled -- I havea draft for that, but it needs some more care. This Mem Assist shouldnot be needed when emulating a system in x2apic mode, so theoreticallythe current form of libnvmm is sufficient to emulate a whole class ofsystems.Generally speaking, there are so many modes in x86 that it is difficultto handle each corner case without introducing a ton of checks that justslow down the common-case execution. Currently we check a limited numberof things; we may add more checks in the future if they turn out to beneeded, but that&apos;s rather low priority.Libnvmm is compiled and installed only on amd64. A man page (reviewed bywiz@) is provided.

            List of files:
            /netbsd-src/lib/libnvmm/Makefile</description>
        <pubDate>Sat, 10 Nov 2018 09:28:56 +0000</pubDate>
        <dc:creator>maxv &lt;maxv@NetBSD.org&gt;</dc:creator>
    </item>
</channel>
</rss>
