From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 869AEC5DF62 for ; Wed, 6 Nov 2019 07:07:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 31C44206DF for ; Wed, 6 Nov 2019 07:07:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="O3Je4FWH" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731421AbfKFHHT (ORCPT ); Wed, 6 Nov 2019 02:07:19 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:42042 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731143AbfKFHHS (ORCPT ); Wed, 6 Nov 2019 02:07:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573024037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hZQT3duyyndR+0G+CA+4t+0Dt0ILcfgLE6OucGmmjrQ=; b=O3Je4FWHx3LyynioWJIxAOuCbXIxAF+FLn1tQZxIldAWHudUr5JlHg3l74UC/Ybl3ZhIcJ ayhyjTRUB6cz9XtOCDAFF/aZS06tBNAYzEGM+DAdDuGKIp6GK409V0zCGrLMOJQs1w9s/A TpWMaUkLnNlm6DGe2TDpdbxNMyVD0ZQ= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-230-sS4JHO2DNtCxuysVDg7ijQ-1; Wed, 06 Nov 2019 02:07:13 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 40F08477; Wed, 6 Nov 2019 07:07:09 +0000 (UTC) Received: from jason-ThinkPad-X1-Carbon-6th.redhat.com (ovpn-12-193.pek2.redhat.com [10.72.12.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id 90FEB1001B39; Wed, 6 Nov 2019 07:05:54 +0000 (UTC) From: Jason Wang To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com Cc: virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, cohuck@redhat.com, maxime.coquelin@redhat.com, cunming.liang@intel.com, zhihong.wang@intel.com, rob.miller@broadcom.com, xiao.w.wang@intel.com, haotian.wang@sifive.com, zhenyuw@linux.intel.com, zhi.a.wang@intel.com, jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com, rodrigo.vivi@intel.com, airlied@linux.ie, daniel@ffwll.ch, farman@linux.ibm.com, pasic@linux.ibm.com, sebott@linux.ibm.com, oberpar@linux.ibm.com, heiko.carstens@de.ibm.com, gor@linux.ibm.com, borntraeger@de.ibm.com, akrowiak@linux.ibm.com, freude@linux.ibm.com, lingshan.zhu@intel.com, idos@mellanox.com, eperezma@redhat.com, lulu@redhat.com, parav@mellanox.com, christophe.de.dinechin@gmail.com, kevin.tian@intel.com, stefanha@redhat.com, Jason Wang Subject: [PATCH V9 0/6] mdev based hardware virtio offloading support Date: Wed, 6 Nov 2019 15:05:42 +0800 Message-Id: <20191106070548.18980-1-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: sS4JHO2DNtCxuysVDg7ijQ-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all: There are hardwares that can do virtio datapath offloading while having its own control path. This path tries to implement a mdev based unified API to support using kernel virtio driver to drive those devices. This is done by introducing a new mdev transport for virtio (virtio_mdev) and register itself as a new kind of mdev driver. Then it provides a unified way for kernel virtio driver to talk with mdev device implementation. Though the series only contains kernel driver support, the goal is to make the transport generic enough to support userspace drivers. This means vhost-mdev[1] could be built on top as well by resuing the transport. A sample driver is also implemented which simulate a virito-net loopback ethernet device on top of vringh + workqueue. This could be used as a reference implementation for real hardware driver. Also a real IFC VF driver was also posted here[2] which is a good reference for vendors who is interested in their own virtio datapath offloading product. Consider mdev framework only support VFIO device and driver right now, this series also extend it to support other types. This is done through introducing class id to the device and pairing it with id_talbe claimed by the driver. On top, this seris also decouple device specific parents ops out of the common ones. Pktgen test was done with virito-net + mvnet loop back device. Please review. [1] https://lkml.org/lkml/2019/11/5/424 [2] https://lkml.org/lkml/2019/11/5/227 Changes from V8: - try silent checkpatch, some are still there becuase they were inherited from virtio_config_ops which needs to be resolved in an independent serie= s - tweak on the comment and doc - remove VIRTIO_MDEV_F_VERSION_1 completely - rename CONFIG_VIRTIO_MDEV_DEVICE to CONFIG_VIRTIO_MDEV Changes from V7: - drop {set|get}_mdev_features for virtio - typo and comment style fixes Changes from V6: - rename ops files and compile guard Changes from V5: - use dev_warn() instead of WARN(1) when class id is not set - validate id_table before trying to do matching between device and driver - add wildcard for modpost script - use unique name for id_table - move get_mdev_features() to be the first member of virtio_device_ops and more comments for it - typo fixes for the comments above virtio_mdev_ops Changes from V4: - keep mdev_set_class() for the device that doesn't use device ops - use union for device ops pointer in mdev_device - introduce class specific helper for getting is device ops - use WARN_ON instead of BUG_ON in mdev_set_virtio_ops - explain details of get_mdev_features() and get_vendor_id() - distinguish the optional virito device ops from mandatory ones and make get_generation() optional - rename vfio_mdev.h to vfio_mdev_ops.h, rename virito_mdev.h to virtio_mdev_ops.h - don't abuse version fileds in virtio_mdev structure, use features instead - fix warning during device remove - style & docs tweaks and typo fixes Changes from V3: - document that class id (device ops) must be specified in create() - add WARN() when trying to set class_id when it has already set - add WARN() when class_id is not specified in create() and correctly return an error in this case - correct the prototype of mdev_set_class() in the doc - add documention of mdev_set_class() - remove the unnecessary "class_id_fail" label when class id is not specified in create() - convert id_table in vfio_mdev to const - move mdev_set_class and its friends after mdev_uuid() - suqash the patch of bus uevent into patch of introducing class id - tweak the words in the docs per Cornelia suggestion - tie class_id and device ops through class specific initialization routine like mdev_set_vfio_ops() - typos fixes in the docs of virtio-mdev callbacks - document the usage of virtqueues in struct virtio_mdev_device - remove the useless vqs array in struct virtio_mdev_device - rename MDEV_ID_XXX to MDEV_CLASS_ID_XXX Changes from V2: - fail when class_id is not specified - drop the vringh patch - match the doc to the code - tweak the commit log - move device_ops from parent to mdev device - remove the unused MDEV_ID_VHOST Changes from V1: - move virtio_mdev.c to drivers/virtio - store class_id in mdev_device instead of mdev_parent - store device_ops in mdev_device instead of mdev_parent - reorder the patch, vringh fix comes first - really silent compiling warnings - really switch to use u16 for class_id - uevent and modpost support for mdev class_id - vraious tweaks per comments from Parav Changes from RFC-V2: - silent compile warnings on some specific configuration - use u16 instead u8 for class id - reseve MDEV_ID_VHOST for future vhost-mdev work - introduce "virtio" type for mvnet and make "vhost" type for future work - add entries in MAINTAINER - tweak and typos fixes in commit log Changes from RFC-V1: - rename device id to class id - add docs for class id and device specific ops (device_ops) - split device_ops into seperate headers - drop the mdev_set_dma_ops() - use device_ops to implement the transport API, then it's not a part of UAPI any more - use GFP_ATOMIC in mvnet sample device and other tweaks - set_vring_base/get_vring_base support for mvnet device Jason Wang (6): mdev: class id support modpost: add support for mdev class id mdev: introduce device specific ops mdev: introduce virtio device and its device ops virtio: introduce a mdev based transport docs: sample driver to demonstrate how to implement virtio-mdev framework .../driver-api/vfio-mediated-device.rst | 38 +- MAINTAINERS | 3 + drivers/gpu/drm/i915/gvt/kvmgt.c | 17 +- drivers/s390/cio/vfio_ccw_ops.c | 17 +- drivers/s390/crypto/vfio_ap_ops.c | 13 +- drivers/vfio/mdev/mdev_core.c | 60 ++ drivers/vfio/mdev/mdev_driver.c | 25 + drivers/vfio/mdev/mdev_private.h | 8 + drivers/vfio/mdev/vfio_mdev.c | 45 +- drivers/virtio/Kconfig | 13 + drivers/virtio/Makefile | 1 + drivers/virtio/virtio_mdev.c | 406 +++++++++++ include/linux/mdev.h | 57 +- include/linux/mdev_vfio_ops.h | 52 ++ include/linux/mdev_virtio_ops.h | 147 ++++ include/linux/mod_devicetable.h | 8 + samples/Kconfig | 10 + samples/vfio-mdev/Makefile | 1 + samples/vfio-mdev/mbochs.c | 19 +- samples/vfio-mdev/mdpy.c | 19 +- samples/vfio-mdev/mtty.c | 17 +- samples/vfio-mdev/mvnet.c | 686 ++++++++++++++++++ scripts/mod/devicetable-offsets.c | 3 + scripts/mod/file2alias.c | 11 + 24 files changed, 1585 insertions(+), 91 deletions(-) create mode 100644 drivers/virtio/virtio_mdev.c create mode 100644 include/linux/mdev_vfio_ops.h create mode 100644 include/linux/mdev_virtio_ops.h create mode 100644 samples/vfio-mdev/mvnet.c --=20 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [PATCH V9 0/6] mdev based hardware virtio offloading support Date: Wed, 6 Nov 2019 15:05:42 +0800 Message-ID: <20191106070548.18980-1-jasowang@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Return-path: Sender: linux-kernel-owner@vger.kernel.org To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com Cc: virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, cohuck@redhat.com, maxime.coquelin@redhat.com, cunming.liang@intel.com, zhihong.wang@intel.com, rob.miller@broadcom.com, xiao.w.wang@intel.com, haotian.wang@sifive.com, zhenyuw@linux.intel.com, zhi.a.wang@intel.com, jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com, rodrigo.vivi@intel.com, airlied@linux.ie, daniel@ffwll.ch, farman@linux.ibm.com, pasic@linux.ibm.com, sebott@linux.ibm.com, oberpar@linux.ibm.com, heiko.carstens@de.ibm.com, gor@linux.ibm.com, borntraeger@de.ibm.com, akrowiak@linux.ibm.com, freude@linux.ibm.com, lingshan.zhu@intel.com, idos@mellanox.com, eperezma@redhat.com, lulu@redhat.com, parav@mellanox.com, christophe.de.dinechin@gmail.com, kevin.tian@intel.com, stefanha@redhat.com List-Id: dri-devel@lists.freedesktop.org Hi all: There are hardwares that can do virtio datapath offloading while having its own control path. This path tries to implement a mdev based unified API to support using kernel virtio driver to drive those devices. This is done by introducing a new mdev transport for virtio (virtio_mdev) and register itself as a new kind of mdev driver. Then it provides a unified way for kernel virtio driver to talk with mdev device implementation. Though the series only contains kernel driver support, the goal is to make the transport generic enough to support userspace drivers. This means vhost-mdev[1] could be built on top as well by resuing the transport. A sample driver is also implemented which simulate a virito-net loopback ethernet device on top of vringh + workqueue. This could be used as a reference implementation for real hardware driver. Also a real IFC VF driver was also posted here[2] which is a good reference for vendors who is interested in their own virtio datapath offloading product. Consider mdev framework only support VFIO device and driver right now, this series also extend it to support other types. This is done through introducing class id to the device and pairing it with id_talbe claimed by the driver. On top, this seris also decouple device specific parents ops out of the common ones. Pktgen test was done with virito-net + mvnet loop back device. Please review. [1] https://lkml.org/lkml/2019/11/5/424 [2] https://lkml.org/lkml/2019/11/5/227 Changes from V8: - try silent checkpatch, some are still there becuase they were inherited from virtio_config_ops which needs to be resolved in an independent serie= s - tweak on the comment and doc - remove VIRTIO_MDEV_F_VERSION_1 completely - rename CONFIG_VIRTIO_MDEV_DEVICE to CONFIG_VIRTIO_MDEV Changes from V7: - drop {set|get}_mdev_features for virtio - typo and comment style fixes Changes from V6: - rename ops files and compile guard Changes from V5: - use dev_warn() instead of WARN(1) when class id is not set - validate id_table before trying to do matching between device and driver - add wildcard for modpost script - use unique name for id_table - move get_mdev_features() to be the first member of virtio_device_ops and more comments for it - typo fixes for the comments above virtio_mdev_ops Changes from V4: - keep mdev_set_class() for the device that doesn't use device ops - use union for device ops pointer in mdev_device - introduce class specific helper for getting is device ops - use WARN_ON instead of BUG_ON in mdev_set_virtio_ops - explain details of get_mdev_features() and get_vendor_id() - distinguish the optional virito device ops from mandatory ones and make get_generation() optional - rename vfio_mdev.h to vfio_mdev_ops.h, rename virito_mdev.h to virtio_mdev_ops.h - don't abuse version fileds in virtio_mdev structure, use features instead - fix warning during device remove - style & docs tweaks and typo fixes Changes from V3: - document that class id (device ops) must be specified in create() - add WARN() when trying to set class_id when it has already set - add WARN() when class_id is not specified in create() and correctly return an error in this case - correct the prototype of mdev_set_class() in the doc - add documention of mdev_set_class() - remove the unnecessary "class_id_fail" label when class id is not specified in create() - convert id_table in vfio_mdev to const - move mdev_set_class and its friends after mdev_uuid() - suqash the patch of bus uevent into patch of introducing class id - tweak the words in the docs per Cornelia suggestion - tie class_id and device ops through class specific initialization routine like mdev_set_vfio_ops() - typos fixes in the docs of virtio-mdev callbacks - document the usage of virtqueues in struct virtio_mdev_device - remove the useless vqs array in struct virtio_mdev_device - rename MDEV_ID_XXX to MDEV_CLASS_ID_XXX Changes from V2: - fail when class_id is not specified - drop the vringh patch - match the doc to the code - tweak the commit log - move device_ops from parent to mdev device - remove the unused MDEV_ID_VHOST Changes from V1: - move virtio_mdev.c to drivers/virtio - store class_id in mdev_device instead of mdev_parent - store device_ops in mdev_device instead of mdev_parent - reorder the patch, vringh fix comes first - really silent compiling warnings - really switch to use u16 for class_id - uevent and modpost support for mdev class_id - vraious tweaks per comments from Parav Changes from RFC-V2: - silent compile warnings on some specific configuration - use u16 instead u8 for class id - reseve MDEV_ID_VHOST for future vhost-mdev work - introduce "virtio" type for mvnet and make "vhost" type for future work - add entries in MAINTAINER - tweak and typos fixes in commit log Changes from RFC-V1: - rename device id to class id - add docs for class id and device specific ops (device_ops) - split device_ops into seperate headers - drop the mdev_set_dma_ops() - use device_ops to implement the transport API, then it's not a part of UAPI any more - use GFP_ATOMIC in mvnet sample device and other tweaks - set_vring_base/get_vring_base support for mvnet device Jason Wang (6): mdev: class id support modpost: add support for mdev class id mdev: introduce device specific ops mdev: introduce virtio device and its device ops virtio: introduce a mdev based transport docs: sample driver to demonstrate how to implement virtio-mdev framework .../driver-api/vfio-mediated-device.rst | 38 +- MAINTAINERS | 3 + drivers/gpu/drm/i915/gvt/kvmgt.c | 17 +- drivers/s390/cio/vfio_ccw_ops.c | 17 +- drivers/s390/crypto/vfio_ap_ops.c | 13 +- drivers/vfio/mdev/mdev_core.c | 60 ++ drivers/vfio/mdev/mdev_driver.c | 25 + drivers/vfio/mdev/mdev_private.h | 8 + drivers/vfio/mdev/vfio_mdev.c | 45 +- drivers/virtio/Kconfig | 13 + drivers/virtio/Makefile | 1 + drivers/virtio/virtio_mdev.c | 406 +++++++++++ include/linux/mdev.h | 57 +- include/linux/mdev_vfio_ops.h | 52 ++ include/linux/mdev_virtio_ops.h | 147 ++++ include/linux/mod_devicetable.h | 8 + samples/Kconfig | 10 + samples/vfio-mdev/Makefile | 1 + samples/vfio-mdev/mbochs.c | 19 +- samples/vfio-mdev/mdpy.c | 19 +- samples/vfio-mdev/mtty.c | 17 +- samples/vfio-mdev/mvnet.c | 686 ++++++++++++++++++ scripts/mod/devicetable-offsets.c | 3 + scripts/mod/file2alias.c | 11 + 24 files changed, 1585 insertions(+), 91 deletions(-) create mode 100644 drivers/virtio/virtio_mdev.c create mode 100644 include/linux/mdev_vfio_ops.h create mode 100644 include/linux/mdev_virtio_ops.h create mode 100644 samples/vfio-mdev/mvnet.c --=20 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A3FFC5DF63 for ; Wed, 6 Nov 2019 07:07:22 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DCEC8206DF for ; Wed, 6 Nov 2019 07:07:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DCEC8206DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4FE506EC07; Wed, 6 Nov 2019 07:07:20 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 941916EC07 for ; Wed, 6 Nov 2019 07:07:18 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-230-sS4JHO2DNtCxuysVDg7ijQ-1; Wed, 06 Nov 2019 02:07:13 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 40F08477; Wed, 6 Nov 2019 07:07:09 +0000 (UTC) Received: from jason-ThinkPad-X1-Carbon-6th.redhat.com (ovpn-12-193.pek2.redhat.com [10.72.12.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id 90FEB1001B39; Wed, 6 Nov 2019 07:05:54 +0000 (UTC) From: Jason Wang To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com Subject: [PATCH V9 0/6] mdev based hardware virtio offloading support Date: Wed, 6 Nov 2019 15:05:42 +0800 Message-Id: <20191106070548.18980-1-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: sS4JHO2DNtCxuysVDg7ijQ-1 X-Mimecast-Spam-Score: 0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573024037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hZQT3duyyndR+0G+CA+4t+0Dt0ILcfgLE6OucGmmjrQ=; b=O3Je4FWHx3LyynioWJIxAOuCbXIxAF+FLn1tQZxIldAWHudUr5JlHg3l74UC/Ybl3ZhIcJ ayhyjTRUB6cz9XtOCDAFF/aZS06tBNAYzEGM+DAdDuGKIp6GK409V0zCGrLMOJQs1w9s/A TpWMaUkLnNlm6DGe2TDpdbxNMyVD0ZQ= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, kevin.tian@intel.com, virtualization@lists.linux-foundation.org, rob.miller@broadcom.com, lulu@redhat.com, eperezma@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, haotian.wang@sifive.com, zhi.a.wang@intel.com, farman@linux.ibm.com, idos@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, rodrigo.vivi@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, parav@mellanox.com, zhihong.wang@intel.com, stefanha@redhat.com, akrowiak@linux.ibm.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, lingshan.zhu@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191106070542.vwxGx49h-mOKHP2QoeqNBOdibSNpgXsuamwJtTAkalA@z> SGkgYWxsOgoKVGhlcmUgYXJlIGhhcmR3YXJlcyB0aGF0IGNhbiBkbyB2aXJ0aW8gZGF0YXBhdGgg b2ZmbG9hZGluZyB3aGlsZQpoYXZpbmcgaXRzIG93biBjb250cm9sIHBhdGguIFRoaXMgcGF0aCB0 cmllcyB0byBpbXBsZW1lbnQgYSBtZGV2IGJhc2VkCnVuaWZpZWQgQVBJIHRvIHN1cHBvcnQgdXNp bmcga2VybmVsIHZpcnRpbyBkcml2ZXIgdG8gZHJpdmUgdGhvc2UKZGV2aWNlcy4gVGhpcyBpcyBk b25lIGJ5IGludHJvZHVjaW5nIGEgbmV3IG1kZXYgdHJhbnNwb3J0IGZvciB2aXJ0aW8KKHZpcnRp b19tZGV2KSBhbmQgcmVnaXN0ZXIgaXRzZWxmIGFzIGEgbmV3IGtpbmQgb2YgbWRldiBkcml2ZXIu IFRoZW4KaXQgcHJvdmlkZXMgYSB1bmlmaWVkIHdheSBmb3Iga2VybmVsIHZpcnRpbyBkcml2ZXIg dG8gdGFsayB3aXRoIG1kZXYKZGV2aWNlIGltcGxlbWVudGF0aW9uLgoKVGhvdWdoIHRoZSBzZXJp ZXMgb25seSBjb250YWlucyBrZXJuZWwgZHJpdmVyIHN1cHBvcnQsIHRoZSBnb2FsIGlzIHRvCm1h a2UgdGhlIHRyYW5zcG9ydCBnZW5lcmljIGVub3VnaCB0byBzdXBwb3J0IHVzZXJzcGFjZSBkcml2 ZXJzLiBUaGlzCm1lYW5zIHZob3N0LW1kZXZbMV0gY291bGQgYmUgYnVpbHQgb24gdG9wIGFzIHdl bGwgYnkgcmVzdWluZyB0aGUKdHJhbnNwb3J0LgoKQSBzYW1wbGUgZHJpdmVyIGlzIGFsc28gaW1w bGVtZW50ZWQgd2hpY2ggc2ltdWxhdGUgYSB2aXJpdG8tbmV0Cmxvb3BiYWNrIGV0aGVybmV0IGRl dmljZSBvbiB0b3Agb2YgdnJpbmdoICsgd29ya3F1ZXVlLiBUaGlzIGNvdWxkIGJlCnVzZWQgYXMg YSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gZm9yIHJlYWwgaGFyZHdhcmUgZHJpdmVyLgoKQWxz byBhIHJlYWwgSUZDIFZGIGRyaXZlciB3YXMgYWxzbyBwb3N0ZWQgaGVyZVsyXSB3aGljaCBpcyBh IGdvb2QKcmVmZXJlbmNlIGZvciB2ZW5kb3JzIHdobyBpcyBpbnRlcmVzdGVkIGluIHRoZWlyIG93 biB2aXJ0aW8gZGF0YXBhdGgKb2ZmbG9hZGluZyBwcm9kdWN0LgoKQ29uc2lkZXIgbWRldiBmcmFt ZXdvcmsgb25seSBzdXBwb3J0IFZGSU8gZGV2aWNlIGFuZCBkcml2ZXIgcmlnaHQgbm93LAp0aGlz IHNlcmllcyBhbHNvIGV4dGVuZCBpdCB0byBzdXBwb3J0IG90aGVyIHR5cGVzLiBUaGlzIGlzIGRv bmUKdGhyb3VnaCBpbnRyb2R1Y2luZyBjbGFzcyBpZCB0byB0aGUgZGV2aWNlIGFuZCBwYWlyaW5n IGl0IHdpdGgKaWRfdGFsYmUgY2xhaW1lZCBieSB0aGUgZHJpdmVyLiBPbiB0b3AsIHRoaXMgc2Vy aXMgYWxzbyBkZWNvdXBsZQpkZXZpY2Ugc3BlY2lmaWMgcGFyZW50cyBvcHMgb3V0IG9mIHRoZSBj b21tb24gb25lcy4KClBrdGdlbiB0ZXN0IHdhcyBkb25lIHdpdGggdmlyaXRvLW5ldCArIG12bmV0 IGxvb3AgYmFjayBkZXZpY2UuCgpQbGVhc2UgcmV2aWV3LgoKWzFdIGh0dHBzOi8vbGttbC5vcmcv bGttbC8yMDE5LzExLzUvNDI0ClsyXSBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxOS8xMS81LzIy NwoKQ2hhbmdlcyBmcm9tIFY4OgotIHRyeSBzaWxlbnQgY2hlY2twYXRjaCwgc29tZSBhcmUgc3Rp bGwgdGhlcmUgYmVjdWFzZSB0aGV5IHdlcmUgaW5oZXJpdGVkCiAgZnJvbSB2aXJ0aW9fY29uZmln X29wcyB3aGljaCBuZWVkcyB0byBiZSByZXNvbHZlZCBpbiBhbiBpbmRlcGVuZGVudCBzZXJpZXMK LSB0d2VhayBvbiB0aGUgY29tbWVudCBhbmQgZG9jCi0gcmVtb3ZlIFZJUlRJT19NREVWX0ZfVkVS U0lPTl8xIGNvbXBsZXRlbHkKLSByZW5hbWUgQ09ORklHX1ZJUlRJT19NREVWX0RFVklDRSB0byBD T05GSUdfVklSVElPX01ERVYKCkNoYW5nZXMgZnJvbSBWNzoKLSBkcm9wIHtzZXR8Z2V0fV9tZGV2 X2ZlYXR1cmVzIGZvciB2aXJ0aW8KLSB0eXBvIGFuZCBjb21tZW50IHN0eWxlIGZpeGVzCgpDaGFu Z2VzIGZyb20gVjY6Ci0gcmVuYW1lIG9wcyBmaWxlcyBhbmQgY29tcGlsZSBndWFyZAoKQ2hhbmdl cyBmcm9tIFY1OgotIHVzZSBkZXZfd2FybigpIGluc3RlYWQgb2YgV0FSTigxKSB3aGVuIGNsYXNz IGlkIGlzIG5vdCBzZXQKLSB2YWxpZGF0ZSBpZF90YWJsZSBiZWZvcmUgdHJ5aW5nIHRvIGRvIG1h dGNoaW5nIGJldHdlZW4gZGV2aWNlIGFuZAogIGRyaXZlcgotIGFkZCB3aWxkY2FyZCBmb3IgbW9k cG9zdCBzY3JpcHQKLSB1c2UgdW5pcXVlIG5hbWUgZm9yIGlkX3RhYmxlCi0gbW92ZSBnZXRfbWRl dl9mZWF0dXJlcygpIHRvIGJlIHRoZSBmaXJzdCBtZW1iZXIgb2YgdmlydGlvX2RldmljZV9vcHMK ICBhbmQgbW9yZSBjb21tZW50cyBmb3IgaXQKLSB0eXBvIGZpeGVzIGZvciB0aGUgY29tbWVudHMg YWJvdmUgdmlydGlvX21kZXZfb3BzCgpDaGFuZ2VzIGZyb20gVjQ6Ci0ga2VlcCBtZGV2X3NldF9j bGFzcygpIGZvciB0aGUgZGV2aWNlIHRoYXQgZG9lc24ndCB1c2UgZGV2aWNlIG9wcwotIHVzZSB1 bmlvbiBmb3IgZGV2aWNlIG9wcyBwb2ludGVyIGluIG1kZXZfZGV2aWNlCi0gaW50cm9kdWNlIGNs YXNzIHNwZWNpZmljIGhlbHBlciBmb3IgZ2V0dGluZyBpcyBkZXZpY2Ugb3BzCi0gdXNlIFdBUk5f T04gaW5zdGVhZCBvZiBCVUdfT04gaW4gbWRldl9zZXRfdmlydGlvX29wcwotIGV4cGxhaW4gZGV0 YWlscyBvZiBnZXRfbWRldl9mZWF0dXJlcygpIGFuZCBnZXRfdmVuZG9yX2lkKCkKLSBkaXN0aW5n dWlzaCB0aGUgb3B0aW9uYWwgdmlyaXRvIGRldmljZSBvcHMgZnJvbSBtYW5kYXRvcnkgb25lcyBh bmQKICBtYWtlIGdldF9nZW5lcmF0aW9uKCkgb3B0aW9uYWwKLSByZW5hbWUgdmZpb19tZGV2Lmgg dG8gdmZpb19tZGV2X29wcy5oLCByZW5hbWUgdmlyaXRvX21kZXYuaCB0bwogIHZpcnRpb19tZGV2 X29wcy5oCi0gZG9uJ3QgYWJ1c2UgdmVyc2lvbiBmaWxlZHMgaW4gdmlydGlvX21kZXYgc3RydWN0 dXJlLCB1c2UgZmVhdHVyZXMKICBpbnN0ZWFkCi0gZml4IHdhcm5pbmcgZHVyaW5nIGRldmljZSBy ZW1vdmUKLSBzdHlsZSAmIGRvY3MgdHdlYWtzIGFuZCB0eXBvIGZpeGVzCgpDaGFuZ2VzIGZyb20g VjM6Ci0gZG9jdW1lbnQgdGhhdCBjbGFzcyBpZCAoZGV2aWNlIG9wcykgbXVzdCBiZSBzcGVjaWZp ZWQgaW4gY3JlYXRlKCkKLSBhZGQgV0FSTigpIHdoZW4gdHJ5aW5nIHRvIHNldCBjbGFzc19pZCB3 aGVuIGl0IGhhcyBhbHJlYWR5IHNldAotIGFkZCBXQVJOKCkgd2hlbiBjbGFzc19pZCBpcyBub3Qg c3BlY2lmaWVkIGluIGNyZWF0ZSgpIGFuZCBjb3JyZWN0bHkKICByZXR1cm4gYW4gZXJyb3IgaW4g dGhpcyBjYXNlCi0gY29ycmVjdCB0aGUgcHJvdG90eXBlIG9mIG1kZXZfc2V0X2NsYXNzKCkgaW4g dGhlIGRvYwotIGFkZCBkb2N1bWVudGlvbiBvZiBtZGV2X3NldF9jbGFzcygpCi0gcmVtb3ZlIHRo ZSB1bm5lY2Vzc2FyeSAiY2xhc3NfaWRfZmFpbCIgbGFiZWwgd2hlbiBjbGFzcyBpZCBpcyBub3QK ICBzcGVjaWZpZWQgaW4gY3JlYXRlKCkKLSBjb252ZXJ0IGlkX3RhYmxlIGluIHZmaW9fbWRldiB0 byBjb25zdAotIG1vdmUgbWRldl9zZXRfY2xhc3MgYW5kIGl0cyBmcmllbmRzIGFmdGVyIG1kZXZf dXVpZCgpCi0gc3VxYXNoIHRoZSBwYXRjaCBvZiBidXMgdWV2ZW50IGludG8gcGF0Y2ggb2YgaW50 cm9kdWNpbmcgY2xhc3MgaWQKLSB0d2VhayB0aGUgd29yZHMgaW4gdGhlIGRvY3MgcGVyIENvcm5l bGlhIHN1Z2dlc3Rpb24KLSB0aWUgY2xhc3NfaWQgYW5kIGRldmljZSBvcHMgdGhyb3VnaCBjbGFz cyBzcGVjaWZpYyBpbml0aWFsaXphdGlvbgogIHJvdXRpbmUgbGlrZSBtZGV2X3NldF92ZmlvX29w cygpCi0gdHlwb3MgZml4ZXMgaW4gdGhlIGRvY3Mgb2YgdmlydGlvLW1kZXYgY2FsbGJhY2tzCi0g ZG9jdW1lbnQgdGhlIHVzYWdlIG9mIHZpcnRxdWV1ZXMgaW4gc3RydWN0IHZpcnRpb19tZGV2X2Rl dmljZQotIHJlbW92ZSB0aGUgdXNlbGVzcyB2cXMgYXJyYXkgaW4gc3RydWN0IHZpcnRpb19tZGV2 X2RldmljZQotIHJlbmFtZSBNREVWX0lEX1hYWCB0byBNREVWX0NMQVNTX0lEX1hYWAoKQ2hhbmdl cyBmcm9tIFYyOgotIGZhaWwgd2hlbiBjbGFzc19pZCBpcyBub3Qgc3BlY2lmaWVkCi0gZHJvcCB0 aGUgdnJpbmdoIHBhdGNoCi0gbWF0Y2ggdGhlIGRvYyB0byB0aGUgY29kZQotIHR3ZWFrIHRoZSBj b21taXQgbG9nCi0gbW92ZSBkZXZpY2Vfb3BzIGZyb20gcGFyZW50IHRvIG1kZXYgZGV2aWNlCi0g cmVtb3ZlIHRoZSB1bnVzZWQgTURFVl9JRF9WSE9TVAoKQ2hhbmdlcyBmcm9tIFYxOgotIG1vdmUg dmlydGlvX21kZXYuYyB0byBkcml2ZXJzL3ZpcnRpbwotIHN0b3JlIGNsYXNzX2lkIGluIG1kZXZf ZGV2aWNlIGluc3RlYWQgb2YgbWRldl9wYXJlbnQKLSBzdG9yZSBkZXZpY2Vfb3BzIGluIG1kZXZf ZGV2aWNlIGluc3RlYWQgb2YgbWRldl9wYXJlbnQKLSByZW9yZGVyIHRoZSBwYXRjaCwgdnJpbmdo IGZpeCBjb21lcyBmaXJzdAotIHJlYWxseSBzaWxlbnQgY29tcGlsaW5nIHdhcm5pbmdzCi0gcmVh bGx5IHN3aXRjaCB0byB1c2UgdTE2IGZvciBjbGFzc19pZAotIHVldmVudCBhbmQgbW9kcG9zdCBz dXBwb3J0IGZvciBtZGV2IGNsYXNzX2lkCi0gdnJhaW91cyB0d2Vha3MgcGVyIGNvbW1lbnRzIGZy b20gUGFyYXYKCkNoYW5nZXMgZnJvbSBSRkMtVjI6Ci0gc2lsZW50IGNvbXBpbGUgd2FybmluZ3Mg b24gc29tZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uCi0gdXNlIHUxNiBpbnN0ZWFkIHU4IGZvciBj bGFzcyBpZAotIHJlc2V2ZSBNREVWX0lEX1ZIT1NUIGZvciBmdXR1cmUgdmhvc3QtbWRldiB3b3Jr Ci0gaW50cm9kdWNlICJ2aXJ0aW8iIHR5cGUgZm9yIG12bmV0IGFuZCBtYWtlICJ2aG9zdCIgdHlw ZSBmb3IgZnV0dXJlCiAgd29yawotIGFkZCBlbnRyaWVzIGluIE1BSU5UQUlORVIKLSB0d2VhayBh bmQgdHlwb3MgZml4ZXMgaW4gY29tbWl0IGxvZwoKQ2hhbmdlcyBmcm9tIFJGQy1WMToKLSByZW5h bWUgZGV2aWNlIGlkIHRvIGNsYXNzIGlkCi0gYWRkIGRvY3MgZm9yIGNsYXNzIGlkIGFuZCBkZXZp Y2Ugc3BlY2lmaWMgb3BzIChkZXZpY2Vfb3BzKQotIHNwbGl0IGRldmljZV9vcHMgaW50byBzZXBl cmF0ZSBoZWFkZXJzCi0gZHJvcCB0aGUgbWRldl9zZXRfZG1hX29wcygpCi0gdXNlIGRldmljZV9v cHMgdG8gaW1wbGVtZW50IHRoZSB0cmFuc3BvcnQgQVBJLCB0aGVuIGl0J3Mgbm90IGEgcGFydAog IG9mIFVBUEkgYW55IG1vcmUKLSB1c2UgR0ZQX0FUT01JQyBpbiBtdm5ldCBzYW1wbGUgZGV2aWNl IGFuZCBvdGhlciB0d2Vha3MKLSBzZXRfdnJpbmdfYmFzZS9nZXRfdnJpbmdfYmFzZSBzdXBwb3J0 IGZvciBtdm5ldCBkZXZpY2UKCkphc29uIFdhbmcgKDYpOgogIG1kZXY6IGNsYXNzIGlkIHN1cHBv cnQKICBtb2Rwb3N0OiBhZGQgc3VwcG9ydCBmb3IgbWRldiBjbGFzcyBpZAogIG1kZXY6IGludHJv ZHVjZSBkZXZpY2Ugc3BlY2lmaWMgb3BzCiAgbWRldjogaW50cm9kdWNlIHZpcnRpbyBkZXZpY2Ug YW5kIGl0cyBkZXZpY2Ugb3BzCiAgdmlydGlvOiBpbnRyb2R1Y2UgYSBtZGV2IGJhc2VkIHRyYW5z cG9ydAogIGRvY3M6IHNhbXBsZSBkcml2ZXIgdG8gZGVtb25zdHJhdGUgaG93IHRvIGltcGxlbWVu dCB2aXJ0aW8tbWRldgogICAgZnJhbWV3b3JrCgogLi4uL2RyaXZlci1hcGkvdmZpby1tZWRpYXRl ZC1kZXZpY2UucnN0ICAgICAgIHwgIDM4ICstCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0 LmMgICAgICAgICAgICAgIHwgIDE3ICstCiBkcml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5j ICAgICAgICAgICAgICAgfCAgMTcgKy0KIGRyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMu YyAgICAgICAgICAgICB8ICAxMyArLQogZHJpdmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMgICAg ICAgICAgICAgICAgIHwgIDYwICsrCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X2RyaXZlci5jICAg ICAgICAgICAgICAgfCAgMjUgKwogZHJpdmVycy92ZmlvL21kZXYvbWRldl9wcml2YXRlLmggICAg ICAgICAgICAgIHwgICA4ICsKIGRyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jICAgICAgICAg ICAgICAgICB8ICA0NSArLQogZHJpdmVycy92aXJ0aW8vS2NvbmZpZyAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEzICsKIGRyaXZlcnMvdmlydGlvL01ha2VmaWxlICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fbWRldi5jICAgICAgICAgICAgICAg ICAgfCA0MDYgKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvbWRldi5oICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA1NyArLQogaW5jbHVkZS9saW51eC9tZGV2X3ZmaW9fb3BzLmggICAgICAg ICAgICAgICAgIHwgIDUyICsrCiBpbmNsdWRlL2xpbnV4L21kZXZfdmlydGlvX29wcy5oICAgICAg ICAgICAgICAgfCAxNDcgKysrKwogaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaCAgICAg ICAgICAgICAgIHwgICA4ICsKIHNhbXBsZXMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMCArCiBzYW1wbGVzL3ZmaW8tbWRldi9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hzLmMgICAgICAgICAgICAgICAg ICAgIHwgIDE5ICstCiBzYW1wbGVzL3ZmaW8tbWRldi9tZHB5LmMgICAgICAgICAgICAgICAgICAg ICAgfCAgMTkgKy0KIHNhbXBsZXMvdmZpby1tZGV2L210dHkuYyAgICAgICAgICAgICAgICAgICAg ICB8ICAxNyArLQogc2FtcGxlcy92ZmlvLW1kZXYvbXZuZXQuYyAgICAgICAgICAgICAgICAgICAg IHwgNjg2ICsrKysrKysrKysrKysrKysrKwogc2NyaXB0cy9tb2QvZGV2aWNldGFibGUtb2Zmc2V0 cy5jICAgICAgICAgICAgIHwgICAzICsKIHNjcmlwdHMvbW9kL2ZpbGUyYWxpYXMuYyAgICAgICAg ICAgICAgICAgICAgICB8ICAxMSArCiAyNCBmaWxlcyBjaGFuZ2VkLCAxNTg1IGluc2VydGlvbnMo KyksIDkxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmlydGlvL3Zp cnRpb19tZGV2LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L21kZXZfdmZpb19v cHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbWRldl92aXJ0aW9fb3BzLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzYW1wbGVzL3ZmaW8tbWRldi9tdm5ldC5jCgotLSAKMi4xOS4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9C55C5DF63 for ; Wed, 6 Nov 2019 07:07:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 85B98206DF for ; Wed, 6 Nov 2019 07:07:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 85B98206DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E8FE66EC03; Wed, 6 Nov 2019 07:07:19 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7EF356EBFE for ; Wed, 6 Nov 2019 07:07:18 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-230-sS4JHO2DNtCxuysVDg7ijQ-1; Wed, 06 Nov 2019 02:07:13 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 40F08477; Wed, 6 Nov 2019 07:07:09 +0000 (UTC) Received: from jason-ThinkPad-X1-Carbon-6th.redhat.com (ovpn-12-193.pek2.redhat.com [10.72.12.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id 90FEB1001B39; Wed, 6 Nov 2019 07:05:54 +0000 (UTC) From: Jason Wang To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com Date: Wed, 6 Nov 2019 15:05:42 +0800 Message-Id: <20191106070548.18980-1-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: sS4JHO2DNtCxuysVDg7ijQ-1 X-Mimecast-Spam-Score: 0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573024037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hZQT3duyyndR+0G+CA+4t+0Dt0ILcfgLE6OucGmmjrQ=; b=O3Je4FWHx3LyynioWJIxAOuCbXIxAF+FLn1tQZxIldAWHudUr5JlHg3l74UC/Ybl3ZhIcJ ayhyjTRUB6cz9XtOCDAFF/aZS06tBNAYzEGM+DAdDuGKIp6GK409V0zCGrLMOJQs1w9s/A TpWMaUkLnNlm6DGe2TDpdbxNMyVD0ZQ= Subject: [Intel-gfx] [PATCH V9 0/6] mdev based hardware virtio offloading support X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, virtualization@lists.linux-foundation.org, rob.miller@broadcom.com, lulu@redhat.com, eperezma@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, haotian.wang@sifive.com, farman@linux.ibm.com, idos@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, parav@mellanox.com, zhihong.wang@intel.com, stefanha@redhat.com, akrowiak@linux.ibm.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, lingshan.zhu@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191106070542.wgQD_V5Su2rYVczOUxWc741igJRZB97wmr4nmMK_aa0@z> SGkgYWxsOgoKVGhlcmUgYXJlIGhhcmR3YXJlcyB0aGF0IGNhbiBkbyB2aXJ0aW8gZGF0YXBhdGgg b2ZmbG9hZGluZyB3aGlsZQpoYXZpbmcgaXRzIG93biBjb250cm9sIHBhdGguIFRoaXMgcGF0aCB0 cmllcyB0byBpbXBsZW1lbnQgYSBtZGV2IGJhc2VkCnVuaWZpZWQgQVBJIHRvIHN1cHBvcnQgdXNp bmcga2VybmVsIHZpcnRpbyBkcml2ZXIgdG8gZHJpdmUgdGhvc2UKZGV2aWNlcy4gVGhpcyBpcyBk b25lIGJ5IGludHJvZHVjaW5nIGEgbmV3IG1kZXYgdHJhbnNwb3J0IGZvciB2aXJ0aW8KKHZpcnRp b19tZGV2KSBhbmQgcmVnaXN0ZXIgaXRzZWxmIGFzIGEgbmV3IGtpbmQgb2YgbWRldiBkcml2ZXIu IFRoZW4KaXQgcHJvdmlkZXMgYSB1bmlmaWVkIHdheSBmb3Iga2VybmVsIHZpcnRpbyBkcml2ZXIg dG8gdGFsayB3aXRoIG1kZXYKZGV2aWNlIGltcGxlbWVudGF0aW9uLgoKVGhvdWdoIHRoZSBzZXJp ZXMgb25seSBjb250YWlucyBrZXJuZWwgZHJpdmVyIHN1cHBvcnQsIHRoZSBnb2FsIGlzIHRvCm1h a2UgdGhlIHRyYW5zcG9ydCBnZW5lcmljIGVub3VnaCB0byBzdXBwb3J0IHVzZXJzcGFjZSBkcml2 ZXJzLiBUaGlzCm1lYW5zIHZob3N0LW1kZXZbMV0gY291bGQgYmUgYnVpbHQgb24gdG9wIGFzIHdl bGwgYnkgcmVzdWluZyB0aGUKdHJhbnNwb3J0LgoKQSBzYW1wbGUgZHJpdmVyIGlzIGFsc28gaW1w bGVtZW50ZWQgd2hpY2ggc2ltdWxhdGUgYSB2aXJpdG8tbmV0Cmxvb3BiYWNrIGV0aGVybmV0IGRl dmljZSBvbiB0b3Agb2YgdnJpbmdoICsgd29ya3F1ZXVlLiBUaGlzIGNvdWxkIGJlCnVzZWQgYXMg YSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gZm9yIHJlYWwgaGFyZHdhcmUgZHJpdmVyLgoKQWxz byBhIHJlYWwgSUZDIFZGIGRyaXZlciB3YXMgYWxzbyBwb3N0ZWQgaGVyZVsyXSB3aGljaCBpcyBh IGdvb2QKcmVmZXJlbmNlIGZvciB2ZW5kb3JzIHdobyBpcyBpbnRlcmVzdGVkIGluIHRoZWlyIG93 biB2aXJ0aW8gZGF0YXBhdGgKb2ZmbG9hZGluZyBwcm9kdWN0LgoKQ29uc2lkZXIgbWRldiBmcmFt ZXdvcmsgb25seSBzdXBwb3J0IFZGSU8gZGV2aWNlIGFuZCBkcml2ZXIgcmlnaHQgbm93LAp0aGlz IHNlcmllcyBhbHNvIGV4dGVuZCBpdCB0byBzdXBwb3J0IG90aGVyIHR5cGVzLiBUaGlzIGlzIGRv bmUKdGhyb3VnaCBpbnRyb2R1Y2luZyBjbGFzcyBpZCB0byB0aGUgZGV2aWNlIGFuZCBwYWlyaW5n IGl0IHdpdGgKaWRfdGFsYmUgY2xhaW1lZCBieSB0aGUgZHJpdmVyLiBPbiB0b3AsIHRoaXMgc2Vy aXMgYWxzbyBkZWNvdXBsZQpkZXZpY2Ugc3BlY2lmaWMgcGFyZW50cyBvcHMgb3V0IG9mIHRoZSBj b21tb24gb25lcy4KClBrdGdlbiB0ZXN0IHdhcyBkb25lIHdpdGggdmlyaXRvLW5ldCArIG12bmV0 IGxvb3AgYmFjayBkZXZpY2UuCgpQbGVhc2UgcmV2aWV3LgoKWzFdIGh0dHBzOi8vbGttbC5vcmcv bGttbC8yMDE5LzExLzUvNDI0ClsyXSBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxOS8xMS81LzIy NwoKQ2hhbmdlcyBmcm9tIFY4OgotIHRyeSBzaWxlbnQgY2hlY2twYXRjaCwgc29tZSBhcmUgc3Rp bGwgdGhlcmUgYmVjdWFzZSB0aGV5IHdlcmUgaW5oZXJpdGVkCiAgZnJvbSB2aXJ0aW9fY29uZmln X29wcyB3aGljaCBuZWVkcyB0byBiZSByZXNvbHZlZCBpbiBhbiBpbmRlcGVuZGVudCBzZXJpZXMK LSB0d2VhayBvbiB0aGUgY29tbWVudCBhbmQgZG9jCi0gcmVtb3ZlIFZJUlRJT19NREVWX0ZfVkVS U0lPTl8xIGNvbXBsZXRlbHkKLSByZW5hbWUgQ09ORklHX1ZJUlRJT19NREVWX0RFVklDRSB0byBD T05GSUdfVklSVElPX01ERVYKCkNoYW5nZXMgZnJvbSBWNzoKLSBkcm9wIHtzZXR8Z2V0fV9tZGV2 X2ZlYXR1cmVzIGZvciB2aXJ0aW8KLSB0eXBvIGFuZCBjb21tZW50IHN0eWxlIGZpeGVzCgpDaGFu Z2VzIGZyb20gVjY6Ci0gcmVuYW1lIG9wcyBmaWxlcyBhbmQgY29tcGlsZSBndWFyZAoKQ2hhbmdl cyBmcm9tIFY1OgotIHVzZSBkZXZfd2FybigpIGluc3RlYWQgb2YgV0FSTigxKSB3aGVuIGNsYXNz IGlkIGlzIG5vdCBzZXQKLSB2YWxpZGF0ZSBpZF90YWJsZSBiZWZvcmUgdHJ5aW5nIHRvIGRvIG1h dGNoaW5nIGJldHdlZW4gZGV2aWNlIGFuZAogIGRyaXZlcgotIGFkZCB3aWxkY2FyZCBmb3IgbW9k cG9zdCBzY3JpcHQKLSB1c2UgdW5pcXVlIG5hbWUgZm9yIGlkX3RhYmxlCi0gbW92ZSBnZXRfbWRl dl9mZWF0dXJlcygpIHRvIGJlIHRoZSBmaXJzdCBtZW1iZXIgb2YgdmlydGlvX2RldmljZV9vcHMK ICBhbmQgbW9yZSBjb21tZW50cyBmb3IgaXQKLSB0eXBvIGZpeGVzIGZvciB0aGUgY29tbWVudHMg YWJvdmUgdmlydGlvX21kZXZfb3BzCgpDaGFuZ2VzIGZyb20gVjQ6Ci0ga2VlcCBtZGV2X3NldF9j bGFzcygpIGZvciB0aGUgZGV2aWNlIHRoYXQgZG9lc24ndCB1c2UgZGV2aWNlIG9wcwotIHVzZSB1 bmlvbiBmb3IgZGV2aWNlIG9wcyBwb2ludGVyIGluIG1kZXZfZGV2aWNlCi0gaW50cm9kdWNlIGNs YXNzIHNwZWNpZmljIGhlbHBlciBmb3IgZ2V0dGluZyBpcyBkZXZpY2Ugb3BzCi0gdXNlIFdBUk5f T04gaW5zdGVhZCBvZiBCVUdfT04gaW4gbWRldl9zZXRfdmlydGlvX29wcwotIGV4cGxhaW4gZGV0 YWlscyBvZiBnZXRfbWRldl9mZWF0dXJlcygpIGFuZCBnZXRfdmVuZG9yX2lkKCkKLSBkaXN0aW5n dWlzaCB0aGUgb3B0aW9uYWwgdmlyaXRvIGRldmljZSBvcHMgZnJvbSBtYW5kYXRvcnkgb25lcyBh bmQKICBtYWtlIGdldF9nZW5lcmF0aW9uKCkgb3B0aW9uYWwKLSByZW5hbWUgdmZpb19tZGV2Lmgg dG8gdmZpb19tZGV2X29wcy5oLCByZW5hbWUgdmlyaXRvX21kZXYuaCB0bwogIHZpcnRpb19tZGV2 X29wcy5oCi0gZG9uJ3QgYWJ1c2UgdmVyc2lvbiBmaWxlZHMgaW4gdmlydGlvX21kZXYgc3RydWN0 dXJlLCB1c2UgZmVhdHVyZXMKICBpbnN0ZWFkCi0gZml4IHdhcm5pbmcgZHVyaW5nIGRldmljZSBy ZW1vdmUKLSBzdHlsZSAmIGRvY3MgdHdlYWtzIGFuZCB0eXBvIGZpeGVzCgpDaGFuZ2VzIGZyb20g VjM6Ci0gZG9jdW1lbnQgdGhhdCBjbGFzcyBpZCAoZGV2aWNlIG9wcykgbXVzdCBiZSBzcGVjaWZp ZWQgaW4gY3JlYXRlKCkKLSBhZGQgV0FSTigpIHdoZW4gdHJ5aW5nIHRvIHNldCBjbGFzc19pZCB3 aGVuIGl0IGhhcyBhbHJlYWR5IHNldAotIGFkZCBXQVJOKCkgd2hlbiBjbGFzc19pZCBpcyBub3Qg c3BlY2lmaWVkIGluIGNyZWF0ZSgpIGFuZCBjb3JyZWN0bHkKICByZXR1cm4gYW4gZXJyb3IgaW4g dGhpcyBjYXNlCi0gY29ycmVjdCB0aGUgcHJvdG90eXBlIG9mIG1kZXZfc2V0X2NsYXNzKCkgaW4g dGhlIGRvYwotIGFkZCBkb2N1bWVudGlvbiBvZiBtZGV2X3NldF9jbGFzcygpCi0gcmVtb3ZlIHRo ZSB1bm5lY2Vzc2FyeSAiY2xhc3NfaWRfZmFpbCIgbGFiZWwgd2hlbiBjbGFzcyBpZCBpcyBub3QK ICBzcGVjaWZpZWQgaW4gY3JlYXRlKCkKLSBjb252ZXJ0IGlkX3RhYmxlIGluIHZmaW9fbWRldiB0 byBjb25zdAotIG1vdmUgbWRldl9zZXRfY2xhc3MgYW5kIGl0cyBmcmllbmRzIGFmdGVyIG1kZXZf dXVpZCgpCi0gc3VxYXNoIHRoZSBwYXRjaCBvZiBidXMgdWV2ZW50IGludG8gcGF0Y2ggb2YgaW50 cm9kdWNpbmcgY2xhc3MgaWQKLSB0d2VhayB0aGUgd29yZHMgaW4gdGhlIGRvY3MgcGVyIENvcm5l bGlhIHN1Z2dlc3Rpb24KLSB0aWUgY2xhc3NfaWQgYW5kIGRldmljZSBvcHMgdGhyb3VnaCBjbGFz cyBzcGVjaWZpYyBpbml0aWFsaXphdGlvbgogIHJvdXRpbmUgbGlrZSBtZGV2X3NldF92ZmlvX29w cygpCi0gdHlwb3MgZml4ZXMgaW4gdGhlIGRvY3Mgb2YgdmlydGlvLW1kZXYgY2FsbGJhY2tzCi0g ZG9jdW1lbnQgdGhlIHVzYWdlIG9mIHZpcnRxdWV1ZXMgaW4gc3RydWN0IHZpcnRpb19tZGV2X2Rl dmljZQotIHJlbW92ZSB0aGUgdXNlbGVzcyB2cXMgYXJyYXkgaW4gc3RydWN0IHZpcnRpb19tZGV2 X2RldmljZQotIHJlbmFtZSBNREVWX0lEX1hYWCB0byBNREVWX0NMQVNTX0lEX1hYWAoKQ2hhbmdl cyBmcm9tIFYyOgotIGZhaWwgd2hlbiBjbGFzc19pZCBpcyBub3Qgc3BlY2lmaWVkCi0gZHJvcCB0 aGUgdnJpbmdoIHBhdGNoCi0gbWF0Y2ggdGhlIGRvYyB0byB0aGUgY29kZQotIHR3ZWFrIHRoZSBj b21taXQgbG9nCi0gbW92ZSBkZXZpY2Vfb3BzIGZyb20gcGFyZW50IHRvIG1kZXYgZGV2aWNlCi0g cmVtb3ZlIHRoZSB1bnVzZWQgTURFVl9JRF9WSE9TVAoKQ2hhbmdlcyBmcm9tIFYxOgotIG1vdmUg dmlydGlvX21kZXYuYyB0byBkcml2ZXJzL3ZpcnRpbwotIHN0b3JlIGNsYXNzX2lkIGluIG1kZXZf ZGV2aWNlIGluc3RlYWQgb2YgbWRldl9wYXJlbnQKLSBzdG9yZSBkZXZpY2Vfb3BzIGluIG1kZXZf ZGV2aWNlIGluc3RlYWQgb2YgbWRldl9wYXJlbnQKLSByZW9yZGVyIHRoZSBwYXRjaCwgdnJpbmdo IGZpeCBjb21lcyBmaXJzdAotIHJlYWxseSBzaWxlbnQgY29tcGlsaW5nIHdhcm5pbmdzCi0gcmVh bGx5IHN3aXRjaCB0byB1c2UgdTE2IGZvciBjbGFzc19pZAotIHVldmVudCBhbmQgbW9kcG9zdCBz dXBwb3J0IGZvciBtZGV2IGNsYXNzX2lkCi0gdnJhaW91cyB0d2Vha3MgcGVyIGNvbW1lbnRzIGZy b20gUGFyYXYKCkNoYW5nZXMgZnJvbSBSRkMtVjI6Ci0gc2lsZW50IGNvbXBpbGUgd2FybmluZ3Mg b24gc29tZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uCi0gdXNlIHUxNiBpbnN0ZWFkIHU4IGZvciBj bGFzcyBpZAotIHJlc2V2ZSBNREVWX0lEX1ZIT1NUIGZvciBmdXR1cmUgdmhvc3QtbWRldiB3b3Jr Ci0gaW50cm9kdWNlICJ2aXJ0aW8iIHR5cGUgZm9yIG12bmV0IGFuZCBtYWtlICJ2aG9zdCIgdHlw ZSBmb3IgZnV0dXJlCiAgd29yawotIGFkZCBlbnRyaWVzIGluIE1BSU5UQUlORVIKLSB0d2VhayBh bmQgdHlwb3MgZml4ZXMgaW4gY29tbWl0IGxvZwoKQ2hhbmdlcyBmcm9tIFJGQy1WMToKLSByZW5h bWUgZGV2aWNlIGlkIHRvIGNsYXNzIGlkCi0gYWRkIGRvY3MgZm9yIGNsYXNzIGlkIGFuZCBkZXZp Y2Ugc3BlY2lmaWMgb3BzIChkZXZpY2Vfb3BzKQotIHNwbGl0IGRldmljZV9vcHMgaW50byBzZXBl cmF0ZSBoZWFkZXJzCi0gZHJvcCB0aGUgbWRldl9zZXRfZG1hX29wcygpCi0gdXNlIGRldmljZV9v cHMgdG8gaW1wbGVtZW50IHRoZSB0cmFuc3BvcnQgQVBJLCB0aGVuIGl0J3Mgbm90IGEgcGFydAog IG9mIFVBUEkgYW55IG1vcmUKLSB1c2UgR0ZQX0FUT01JQyBpbiBtdm5ldCBzYW1wbGUgZGV2aWNl IGFuZCBvdGhlciB0d2Vha3MKLSBzZXRfdnJpbmdfYmFzZS9nZXRfdnJpbmdfYmFzZSBzdXBwb3J0 IGZvciBtdm5ldCBkZXZpY2UKCkphc29uIFdhbmcgKDYpOgogIG1kZXY6IGNsYXNzIGlkIHN1cHBv cnQKICBtb2Rwb3N0OiBhZGQgc3VwcG9ydCBmb3IgbWRldiBjbGFzcyBpZAogIG1kZXY6IGludHJv ZHVjZSBkZXZpY2Ugc3BlY2lmaWMgb3BzCiAgbWRldjogaW50cm9kdWNlIHZpcnRpbyBkZXZpY2Ug YW5kIGl0cyBkZXZpY2Ugb3BzCiAgdmlydGlvOiBpbnRyb2R1Y2UgYSBtZGV2IGJhc2VkIHRyYW5z cG9ydAogIGRvY3M6IHNhbXBsZSBkcml2ZXIgdG8gZGVtb25zdHJhdGUgaG93IHRvIGltcGxlbWVu dCB2aXJ0aW8tbWRldgogICAgZnJhbWV3b3JrCgogLi4uL2RyaXZlci1hcGkvdmZpby1tZWRpYXRl ZC1kZXZpY2UucnN0ICAgICAgIHwgIDM4ICstCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0 LmMgICAgICAgICAgICAgIHwgIDE3ICstCiBkcml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5j ICAgICAgICAgICAgICAgfCAgMTcgKy0KIGRyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMu YyAgICAgICAgICAgICB8ICAxMyArLQogZHJpdmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMgICAg ICAgICAgICAgICAgIHwgIDYwICsrCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X2RyaXZlci5jICAg ICAgICAgICAgICAgfCAgMjUgKwogZHJpdmVycy92ZmlvL21kZXYvbWRldl9wcml2YXRlLmggICAg ICAgICAgICAgIHwgICA4ICsKIGRyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jICAgICAgICAg ICAgICAgICB8ICA0NSArLQogZHJpdmVycy92aXJ0aW8vS2NvbmZpZyAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEzICsKIGRyaXZlcnMvdmlydGlvL01ha2VmaWxlICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fbWRldi5jICAgICAgICAgICAgICAg ICAgfCA0MDYgKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvbWRldi5oICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA1NyArLQogaW5jbHVkZS9saW51eC9tZGV2X3ZmaW9fb3BzLmggICAgICAg ICAgICAgICAgIHwgIDUyICsrCiBpbmNsdWRlL2xpbnV4L21kZXZfdmlydGlvX29wcy5oICAgICAg ICAgICAgICAgfCAxNDcgKysrKwogaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaCAgICAg ICAgICAgICAgIHwgICA4ICsKIHNhbXBsZXMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMCArCiBzYW1wbGVzL3ZmaW8tbWRldi9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hzLmMgICAgICAgICAgICAgICAg ICAgIHwgIDE5ICstCiBzYW1wbGVzL3ZmaW8tbWRldi9tZHB5LmMgICAgICAgICAgICAgICAgICAg ICAgfCAgMTkgKy0KIHNhbXBsZXMvdmZpby1tZGV2L210dHkuYyAgICAgICAgICAgICAgICAgICAg ICB8ICAxNyArLQogc2FtcGxlcy92ZmlvLW1kZXYvbXZuZXQuYyAgICAgICAgICAgICAgICAgICAg IHwgNjg2ICsrKysrKysrKysrKysrKysrKwogc2NyaXB0cy9tb2QvZGV2aWNldGFibGUtb2Zmc2V0 cy5jICAgICAgICAgICAgIHwgICAzICsKIHNjcmlwdHMvbW9kL2ZpbGUyYWxpYXMuYyAgICAgICAg ICAgICAgICAgICAgICB8ICAxMSArCiAyNCBmaWxlcyBjaGFuZ2VkLCAxNTg1IGluc2VydGlvbnMo KyksIDkxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmlydGlvL3Zp cnRpb19tZGV2LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L21kZXZfdmZpb19v cHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbWRldl92aXJ0aW9fb3BzLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzYW1wbGVzL3ZmaW8tbWRldi9tdm5ldC5jCgotLSAKMi4xOS4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=