On 11/15/2018 12:55 PM, marcandre.lureau@xxxxxxxxxx wrote: > From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > > Add a new memoryBacking source type "memfd", supported by QEMU (when > the capability is available). > > A memfd is a specialized anonymous memory kind. As such, an anonymous > source type could be automatically using a memfd. However, there are > some complications when migrating from different memory backends in > qemu (mainly due to the internal object naming at this point, but > there could be more). For now, it is simpler and safer to simply > introduce a new source type "memfd". Eventually, the "anonymous" type > could learn to use memfd transparently in a separate change. > > The main benefits are that it doesn't need to create filesystem files, > and it also enforces sealing, providing a bit more safety. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > --- > docs/formatdomain.html.in | 9 +-- > docs/schemas/domaincommon.rng | 1 + > src/conf/domain_conf.c | 3 +- > src/conf/domain_conf.h | 1 + > src/qemu/qemu_command.c | 69 +++++++++++++------ > src/qemu/qemu_domain.c | 12 +++- > .../memfd-memory-numa.x86_64-latest.args | 34 +++++++++ > tests/qemuxml2argvdata/memfd-memory-numa.xml | 36 ++++++++++ > tests/qemuxml2argvtest.c | 2 + > 9 files changed, 140 insertions(+), 27 deletions(-) > create mode 100644 tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args > create mode 100644 tests/qemuxml2argvdata/memfd-memory-numa.xml > > diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in > index 295f9ff93e..e7f4ad4060 100644 > --- a/docs/formatdomain.html.in > +++ b/docs/formatdomain.html.in > @@ -1126,7 +1126,7 @@ > </hugepages> > <nosharepages/> > <locked/> > - <source type="file|anonymous"/> > + <source type="file|anonymous|memfd"/> > <access mode="shared|private"/> > <allocation mode="immediate|ondemand"/> > <discard/> > @@ -1177,9 +1177,10 @@ > suitable for the specific environment at the same time to mitigate > the risks described above. <span class="since">Since 1.0.6</span></dd> > <dt><code>source</code></dt> > - <dd>Using the <code>type</code> attribute, it's possible to provide > - "file" to utilize file memorybacking or keep the default > - "anonymous".</dd> > + <dd>Using the <code>type</code> attribute, it's possible to > + provide "file" to utilize file memorybacking or keep the > + default "anonymous". <span class="since">Since 4.10.0</span>, > + you may choose "memfd" backing. (QEMU/KVM only)</dd> > <dt><code>access</code></dt> > <dd>Using the <code>mode</code> attribute, specify if the memory is > to be "shared" or "private". This can be overridden per numa node by > diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng > index cad189513a..bfa76c4db3 100644 > --- a/docs/schemas/domaincommon.rng > +++ b/docs/schemas/domaincommon.rng > @@ -655,6 +655,7 @@ > <choice> > <value>file</value> > <value>anonymous</value> > + <value>memfd</value> > </choice> > </attribute> > </element> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index 6c15781dc0..bc82dc3504 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -898,7 +898,8 @@ VIR_ENUM_IMPL(virDomainDiskMirrorState, VIR_DOMAIN_DISK_MIRROR_STATE_LAST, > VIR_ENUM_IMPL(virDomainMemorySource, VIR_DOMAIN_MEMORY_SOURCE_LAST, > "none", > "file", > - "anonymous") > + "anonymous", > + "memfd") Ah, we don't use TABs rather spaces. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list