From patchwork Sun Jan 13 23:12:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cole Robinson X-Patchwork-Id: 155381 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp3040438jaa; Sun, 13 Jan 2019 15:13:19 -0800 (PST) X-Google-Smtp-Source: ALg8bN5oQN1txH1egN5xMcUzHgp181UQTq3Arn+qlBnmeIXp3wezUl0fDbwW1stqBk1ACBWmsMrL X-Received: by 2002:a37:4d8e:: with SMTP id a136mr20517408qkb.318.1547421199826; Sun, 13 Jan 2019 15:13:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547421199; cv=none; d=google.com; s=arc-20160816; b=ff1M+7/kH8qAWfMt0TKzWATXZpMCCc8/iO+cPalw6PSQU1mk+IUsOdBwBBqxJRPdBt PNOpsgbasvhTP0tbxHdAOnNLhY3dqMtxAxNCbtjQsJKEr+BIqubHHQdkWNAZH/0ufKaS 3lQEYpT9fgs2zgWgOBFRvDjFZsn7owmEolE37h4Ln+ZpO0iCur65LxVIBtouCV4IbMUp F7GOwm9ykdXYyoBZ/aSY5aYXFMlTr+MrDOx4WOqRAimd6Kh4FAdoEvpewdEY3LUo+1R4 Zryob/JnsbRsg5Lt3o9H5WnliLXhSnM960s8tD6xgcrPRPxM9dU+VscHgbwE/jpezSiV Hjtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:message-id:date:to:from:delivered-to; bh=dwj6Av2gzz6ED2ZYT/yzMGfFTi2KHk0yq24pfzkz3xY=; b=uOox1fRhM8KvLRpZniz2wB26Pu2XFXVQyp2jjMEHg79b2lddjgAyfoPAldFzJvpURE lfmNgfxaRVdtKp1MSArfdbcQHSoT/l0fyMUjcoiXsZmVuMhpTBUT2y/pi434PZu4tmMP wSlqpkJ1KUHubv1qzeGgqlaBpQoZRL6rP71pHnG3NQRNOHyrZ1jRquIWWeU1XgizlXMZ BZMJ5tu8jPDruwZdQG/Q2SgxesEAUCEOkqKxtFi9RDDO772nssicMlA/LqTj6jgQbn4N NYKvwQ6FfnyZdxzA+8iwvnEmknPRgaJ/hXP4pyw9t5CPnuIQk7f7Q7jWY73+XDnMIID+ gVjQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of libvir-list-bounces@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id b2si27049qti.171.2019.01.13.15.13.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 13 Jan 2019 15:13:19 -0800 (PST) Received-SPF: pass (google.com: domain of libvir-list-bounces@redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; Authentication-Results: mx.google.com; spf=pass (google.com: domain of libvir-list-bounces@redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 61992356CD; Sun, 13 Jan 2019 23:13:16 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8DEB48045E; Sun, 13 Jan 2019 23:13:14 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E8D04181B9E3; Sun, 13 Jan 2019 23:13:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0DND7p3028598 for ; Sun, 13 Jan 2019 18:13:07 -0500 Received: by smtp.corp.redhat.com (Postfix) id C12E017AB6; Sun, 13 Jan 2019 23:13:07 +0000 (UTC) Delivered-To: libvirt-list@redhat.com Received: from worklaptop.redhat.com (ovpn-120-202.rdu2.redhat.com [10.10.120.202]) by smtp.corp.redhat.com (Postfix) with ESMTP id EAA9617A6A; Sun, 13 Jan 2019 23:13:03 +0000 (UTC) From: Cole Robinson To: libvirt-list@redhat.com Date: Sun, 13 Jan 2019 18:12:02 -0500 Message-Id: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 0/6] RFC: qemu: virtio-{non-}transitional support X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Sun, 13 Jan 2019 23:13:18 +0000 (UTC) This series adds the beginnings of support for virtio-transitional and virtio-non-transitional qemu devices. qemu patches, queued for qemu 4.0.0: https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg00923.html Previous libvirt discussion around this: https://www.redhat.com/archives/libvir-list/2018-August/msg01073.html Long story short we need to expose these options so apps have a usable way to support rhel6 + virtio + q35. This series only covers exposing the associated device models for disk and rng devices to make sure I'm on the right track. serial, net, scsi, input-host, balloon 9p, vsock, vhost-scsi still need to be implemented. Those should follow the rng example, except vhost-scsi may need to be a different approach. The main RFC bits here are: * The disk approach. danpb and I briefly discussed on IRC adding new bus= values vs a new model= attribute. We decided model= is the lesser of two evils, since bus= handling in apps is tied with target= generation, so adding new virtio-X bus= values will cause more work for apps. These patches add a attribute * The XML and naming. Previous discussions seemed to favor adding new model-style values rather than a 'transitional' attribute or similar. So these patches add model='virtio-transitional' and model='virtio-non-transitional' * The PCI address handling. I just mapped virtio-non-transitional to imply plain PCI addressing. I think that's all we need but I'm not positive so I'd appreciate a review of that approach. Cole Robinson (6): tests: Add capabilities data for QEMU 4.0.0 x86_64 tests: qemuxml2xml: Add basic DO_TEST_CAPS impl conf: Add qemu: Wire up disk model=virtio-{non-}transitional qemu: domcaps: Report disk qemu: Support rng model=virtio-{non-}transitional docs/formatdomain.html.in | 10 + docs/schemas/domaincommon.rng | 14 +- src/conf/domain_capabilities.c | 1 + src/conf/domain_capabilities.h | 1 + src/conf/domain_conf.c | 32 +- src/conf/domain_conf.h | 12 + src/libvirt_private.syms | 2 + src/qemu/qemu_capabilities.c | 17 + src/qemu/qemu_capabilities.h | 6 + src/qemu/qemu_command.c | 43 +- src/qemu/qemu_domain_address.c | 8 +- .../bhyve_basic.x86_64.xml | 1 + .../bhyve_fbuf.x86_64.xml | 1 + .../bhyve_uefi.x86_64.xml | 1 + tests/domaincapsschemadata/full.xml | 5 + .../domaincapsschemadata/libxl-xenfv-usb.xml | 1 + .../domaincapsschemadata/libxl-xenpv-usb.xml | 1 + .../qemu_1.7.0.x86_64.xml | 1 + .../qemu_2.12.0-virt.aarch64.xml | 1 + .../qemu_2.12.0.ppc64.xml | 1 + .../qemu_2.12.0.s390x.xml | 1 + .../qemu_2.12.0.x86_64.xml | 1 + .../qemu_2.6.0-virt.aarch64.xml | 1 + .../qemu_2.6.0.aarch64.xml | 1 + .../domaincapsschemadata/qemu_2.6.0.ppc64.xml | 1 + .../qemu_2.6.0.x86_64.xml | 1 + .../domaincapsschemadata/qemu_2.7.0.s390x.xml | 1 + .../qemu_2.8.0-tcg.x86_64.xml | 1 + .../domaincapsschemadata/qemu_2.8.0.s390x.xml | 1 + .../qemu_2.8.0.x86_64.xml | 1 + .../qemu_2.9.0-q35.x86_64.xml | 1 + .../qemu_2.9.0-tcg.x86_64.xml | 1 + .../qemu_2.9.0.x86_64.xml | 1 + .../domaincapsschemadata/qemu_3.0.0.s390x.xml | 1 + .../qemu_4.0.0.x86_64.xml | 153 + tests/domaincapstest.c | 4 + .../caps_4.0.0.x86_64.replies | 23180 ++++++++++++++++ .../caps_4.0.0.x86_64.xml | 1388 + tests/qemucapabilitiestest.c | 1 + ...virtio-non-transitional.x86_64-latest.args | 37 + .../virtio-non-transitional.xml | 29 + .../virtio-transitional.x86_64-latest.args | 37 + .../qemuxml2argvdata/virtio-transitional.xml | 29 + tests/qemuxml2argvtest.c | 3 + .../virtio-non-transitional.xml | 50 + .../virtio-transitional.xml | 51 + tests/qemuxml2xmltest.c | 60 +- 47 files changed, 25172 insertions(+), 23 deletions(-) create mode 100644 tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml create mode 100644 tests/qemuxml2argvdata/virtio-non-transitional.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/virtio-non-transitional.xml create mode 100644 tests/qemuxml2argvdata/virtio-transitional.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/virtio-transitional.xml create mode 100644 tests/qemuxml2xmloutdata/virtio-non-transitional.xml create mode 100644 tests/qemuxml2xmloutdata/virtio-transitional.xml -- 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list