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=-18.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham 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 12B02C47093 for ; Mon, 31 May 2021 03:16:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DD03161003 for ; Mon, 31 May 2021 03:16:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230057AbhEaDSA (ORCPT ); Sun, 30 May 2021 23:18:00 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:46399 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229952AbhEaDR5 (ORCPT ); Sun, 30 May 2021 23:17:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1622430978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WlnkplLGKdTZPp/VxRLMxh6IdOdAbj7F4RzngDnIXlU=; b=C2RI9A1SRfLAlLSMCWvoJ/gscXlNMG4VQyseOCxdPAxsudl6W40YRznr/8qnwR3o3v7GD0 OrkQcH8x8m3NkwS/Wz9RYYeOfzVBXvwp5/uyiimVHuS72ASERRqJ4T9Wt3wKp7G56jivRz avplI3RD6D4Vd8pY7T7f7VOPCohKQFU= Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-6-hStONiqgNsWhWalc-w9lpA-1; Sun, 30 May 2021 23:16:16 -0400 X-MC-Unique: hStONiqgNsWhWalc-w9lpA-1 Received: by mail-pf1-f198.google.com with SMTP id d14-20020a056a00198eb029028eb1d4a555so5208637pfl.7 for ; Sun, 30 May 2021 20:16:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=WlnkplLGKdTZPp/VxRLMxh6IdOdAbj7F4RzngDnIXlU=; b=X/1Ws2/hVYXBRu8ZAtvPDbC8ZCW1r27wDWEcfnuz+xl2VIzXnvqK33NCEVfrmhd+ko /0bAmWCBFczV8FMF43HtTdRkOz6Q1nqlEWtiGXpZxCWtfNkVsZB46GeFqHRcpNaaaZWq sip+NJGSnj+WkdHMBFsHmqms6CDdHJH0xsarz7z5ESbDMYnRr61Si+pR6o9NswxW1P/H +iZP2UURUzSkbKtfQStGPWn8Dn/uXsBaCyUyp148oZJcDVQBayiRPqhjhVwNrgdTbpBL aL85TRGOHkjVKWm2DDDHfUYly1ZFenHskRV/q+0abU1ukoCnn2jFV9Y/4VsmgvsoPYEJ I2pg== X-Gm-Message-State: AOAM530BUML8uxbiSCLWQv5XXxvcmaE6WqQn9GoLI42sT9nqMG2UnCcs kSQICrsatSpNCF4AtFmPOIjyDxzoOIBMrVVqYwxz1fjHytfI0Lc7fkEtw4rJS7mqkDQz6ZMlecC /otP3FUlaw8aLvn2KiGmq6H0AJ7w0KmILHOamGqZi7mUI8cXDn8uQJTIPk9b3BYnS9rmmKydn1q yp X-Received: by 2002:a17:90a:8d82:: with SMTP id d2mr4001304pjo.106.1622430975490; Sun, 30 May 2021 20:16:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcQGymN00drocCuO9d28dlpp4Cw6xoqayu3tYciVxzHFAw9GIW1EXVlE6OeD2MmJifDzryMA== X-Received: by 2002:a17:90a:8d82:: with SMTP id d2mr4001271pjo.106.1622430975118; Sun, 30 May 2021 20:16:15 -0700 (PDT) Received: from wangxiaodeMacBook-Air.local ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id g19sm2256576pjl.24.2021.05.30.20.16.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 30 May 2021 20:16:14 -0700 (PDT) Subject: Re: [PATCH 2/2] vdpa/mlx5: Add support for running with virtio_vdpa To: Eli Cohen , mst@redhat.com, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org References: <20210530075415.4644-1-elic@nvidia.com> <20210530075415.4644-3-elic@nvidia.com> From: Jason Wang Message-ID: <9b130015-d116-7fb0-1b86-2604353a2283@redhat.com> Date: Mon, 31 May 2021 11:16:11 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: <20210530075415.4644-3-elic@nvidia.com> Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ÔÚ 2021/5/30 ÏÂÎç3:54, Eli Cohen дµÀ: > In order to support running vdpa using vritio_vdpa driver, we need to > create a different kind of MR, one that has 1:1 mapping, since the > addresses referring to virtqueues are dma addresses. > > We create the 1:1 MR in mlx5_vdpa_dev_add() only in case firmware > supports the general capability umem_uid_0. The reason for that is that > 1:1 MRs must be created with uid == 0 while virtqueue objects can be > created with uid == 0 only when the firmware capability is on. > > If the set_map() callback is called with new translations provided > through iotlb, the driver will destroy the 1:1 MR and create a regular > one. > > Signed-off-by: Eli Cohen > --- > drivers/vdpa/mlx5/core/mlx5_vdpa.h | 1 + > drivers/vdpa/mlx5/core/mr.c | 81 ++++++++++++++++++++++++------ > drivers/vdpa/mlx5/net/mlx5_vnet.c | 13 ++++- > 3 files changed, 80 insertions(+), 15 deletions(-) > > diff --git a/drivers/vdpa/mlx5/core/mlx5_vdpa.h b/drivers/vdpa/mlx5/core/mlx5_vdpa.h > index b6cc53ba980c..09a16a3d1b2a 100644 > --- a/drivers/vdpa/mlx5/core/mlx5_vdpa.h > +++ b/drivers/vdpa/mlx5/core/mlx5_vdpa.h > @@ -35,6 +35,7 @@ struct mlx5_vdpa_mr { > > /* serialize mkey creation and destruction */ > struct mutex mkey_mtx; > + bool user_mr; > }; > > struct mlx5_vdpa_resources { > diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c > index 800cfd1967ad..020c0ce4d203 100644 > --- a/drivers/vdpa/mlx5/core/mr.c > +++ b/drivers/vdpa/mlx5/core/mr.c > @@ -360,7 +360,7 @@ static int add_direct_chain(struct mlx5_vdpa_dev *mvdev, u64 start, u64 size, u8 > * indirect memory key that provides access to the enitre address space given > * by iotlb. > */ > -static int _mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb) > +static int create_user_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb) > { > struct mlx5_vdpa_mr *mr = &mvdev->mr; > struct mlx5_vdpa_direct_mr *dmr; > @@ -374,9 +374,6 @@ static int _mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb > int err = 0; > int nnuls; > > - if (mr->initialized) > - return 0; > - > INIT_LIST_HEAD(&mr->head); > for (map = vhost_iotlb_itree_first(iotlb, start, last); map; > map = vhost_iotlb_itree_next(map, start, last)) { > @@ -414,7 +411,7 @@ static int _mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb > if (err) > goto err_chain; > > - mr->initialized = true; > + mr->user_mr = true; > return 0; > > err_chain: > @@ -426,33 +423,89 @@ static int _mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb > return err; > } > > -int mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb) > +static int create_dma_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr) > +{ > + int inlen = MLX5_ST_SZ_BYTES(create_mkey_in); > + void *mkc; > + u32 *in; > + int err; > + > + in = kzalloc(inlen, GFP_KERNEL); > + if (!in) > + return -ENOMEM; > + > + mkc = MLX5_ADDR_OF(create_mkey_in, in, memory_key_mkey_entry); > + > + MLX5_SET(mkc, mkc, access_mode_1_0, MLX5_MKC_ACCESS_MODE_PA); > + MLX5_SET(mkc, mkc, length64, 1); > + MLX5_SET(mkc, mkc, lw, 1); > + MLX5_SET(mkc, mkc, lr, 1); > + MLX5_SET(mkc, mkc, pd, mvdev->res.pdn); > + MLX5_SET(mkc, mkc, qpn, 0xffffff); > + > + err = mlx5_vdpa_create_mkey(mvdev, &mr->mkey, in, inlen); > + kfree(in); > + return err; > +} > + > +static void destroy_dma_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr) > +{ > + mlx5_vdpa_destroy_mkey(mvdev, &mr->mkey); > +} > + > +static int _mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb) > { > struct mlx5_vdpa_mr *mr = &mvdev->mr; > int err; > > - mutex_lock(&mr->mkey_mtx); > + if (mr->initialized) > + return 0; > + > + if (iotlb) > + err = create_user_mr(mvdev, iotlb); > + else > + err = create_dma_mr(mvdev, mr); Do we need to set user_mr to false here? > + > + mr->initialized = true; > + return err; > +} > + > +int mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb) > +{ > + int err; > + > + mutex_lock(&mvdev->mr.mkey_mtx); > err = _mlx5_vdpa_create_mr(mvdev, iotlb); > - mutex_unlock(&mr->mkey_mtx); > + mutex_unlock(&mvdev->mr.mkey_mtx); > return err; > } > > -void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev) > +static void destroy_user_mr(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *mr) > { > - struct mlx5_vdpa_mr *mr = &mvdev->mr; > struct mlx5_vdpa_direct_mr *dmr; > struct mlx5_vdpa_direct_mr *n; > > - mutex_lock(&mr->mkey_mtx); > - if (!mr->initialized) > - goto out; > - > destroy_indirect_key(mvdev, mr); > list_for_each_entry_safe_reverse(dmr, n, &mr->head, list) { > list_del_init(&dmr->list); > unmap_direct_mr(mvdev, dmr); > kfree(dmr); > } > +} > + > +void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev) > +{ > + struct mlx5_vdpa_mr *mr = &mvdev->mr; > + > + mutex_lock(&mr->mkey_mtx); > + if (!mr->initialized) > + goto out; > + > + if (mr->user_mr) > + destroy_user_mr(mvdev, mr); > + else > + destroy_dma_mr(mvdev, mr); > + > memset(mr, 0, sizeof(*mr)); > mr->initialized = false; > out: > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c > index fdf3e74bffbd..f16756661c19 100644 > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > @@ -1780,6 +1780,8 @@ static void mlx5_vdpa_set_status(struct vdpa_device *vdev, u8 status) > ndev->mvdev.status = 0; > ndev->mvdev.mlx_features = 0; > ++mvdev->generation; > + if (MLX5_CAP_GEN(mvdev->mdev, umem_uid_0)) > + mlx5_vdpa_create_mr(mvdev, NULL); I wonder if it's possible/worth to avoid the destroy and re-create of dma MR here. (In the case of it has been used by us). Thanks > return; > } > > @@ -1859,6 +1861,7 @@ static void mlx5_vdpa_free(struct vdpa_device *vdev) > ndev = to_mlx5_vdpa_ndev(mvdev); > > free_resources(ndev); > + mlx5_vdpa_destroy_mr(mvdev); > mlx5_vdpa_free_resources(&ndev->mvdev); > mutex_destroy(&ndev->reslock); > } > @@ -2023,9 +2026,15 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name) > if (err) > goto err_mtu; > > + if (MLX5_CAP_GEN(mvdev->mdev, umem_uid_0)) { > + err = mlx5_vdpa_create_mr(mvdev, NULL); > + if (err) > + goto err_res; > + } > + > err = alloc_resources(ndev); > if (err) > - goto err_res; > + goto err_mr; > > mvdev->vdev.mdev = &mgtdev->mgtdev; > err = _vdpa_register_device(&mvdev->vdev, 2 * mlx5_vdpa_max_qps(max_vqs)); > @@ -2037,6 +2046,8 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name) > > err_reg: > free_resources(ndev); > +err_mr: > + mlx5_vdpa_destroy_mr(mvdev); > err_res: > mlx5_vdpa_free_resources(&ndev->mvdev); > err_mtu: 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=-15.7 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham 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 ADA2FC47092 for ; Mon, 31 May 2021 03:16:23 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 4077961003 for ; Mon, 31 May 2021 03:16:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4077961003 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=virtualization-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id EBD5983B6C; Mon, 31 May 2021 03:16:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id plWIeb_m-n1q; Mon, 31 May 2021 03:16:21 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTP id 3887B831EF; Mon, 31 May 2021 03:16:21 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0F99BC000E; Mon, 31 May 2021 03:16:21 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id AC4E1C0001 for ; Mon, 31 May 2021 03:16:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 8D446831EF for ; Mon, 31 May 2021 03:16:20 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pP7_ilfz5PcS for ; Mon, 31 May 2021 03:16:19 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by smtp1.osuosl.org (Postfix) with ESMTPS id 7F82A825E6 for ; Mon, 31 May 2021 03:16:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1622430978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WlnkplLGKdTZPp/VxRLMxh6IdOdAbj7F4RzngDnIXlU=; b=C2RI9A1SRfLAlLSMCWvoJ/gscXlNMG4VQyseOCxdPAxsudl6W40YRznr/8qnwR3o3v7GD0 OrkQcH8x8m3NkwS/Wz9RYYeOfzVBXvwp5/uyiimVHuS72ASERRqJ4T9Wt3wKp7G56jivRz avplI3RD6D4Vd8pY7T7f7VOPCohKQFU= Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-493-mcE8tUAOMlqY1rhl87g0XQ-1; Sun, 30 May 2021 23:16:16 -0400 X-MC-Unique: mcE8tUAOMlqY1rhl87g0XQ-1 Received: by mail-pf1-f197.google.com with SMTP id b15-20020aa7870f0000b02902e9ae9d8c10so1921827pfo.20 for ; Sun, 30 May 2021 20:16:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=WlnkplLGKdTZPp/VxRLMxh6IdOdAbj7F4RzngDnIXlU=; b=n8TClKzdpXllEzVjJIZ6TfUeBT5sFwqb0enOQT7/KsdZ44okhDnhMAFakqvVZOkFxP VOcJ184Y5Pkc4vDOIO9zJMsU/iR9QIQstbDLWyP9PbRGXyZYP3ny1c+drrQJLtABqBj/ 3NXYL4yAABPzaRvWlfT/25f5vB8O+QHkKfZ6wm+NQh6X78k7C47/ttewRFYdY/QTqw/o +fcvpTTnRdEB9R22o3sm+reyu6HeZwBMD5Q7Qei2t8S0ysN6sf2PDIJQtKML8FmHhExU ui86Z2vWWS5k+QJztXCal5DDHlsb0hRfHSU8LB42rOer8UBgrc12Lql3kivkrAlsTTp/ X1yw== X-Gm-Message-State: AOAM531qJgDKmPeZN2sEFUOAMXcQBVUM2GaTUikse9s7r2T657tH6KfI Ni4z3cQ9si4Jzx0wI5FXhgtTQKQQ77hUOc7xXGM3g7J7WJI1eJGJJEpN9ag7i90oP2bb1HYQHIH V10o6ukDImjAZclyiSrtJCHB5iy3TRjHfGwsEflcTaQ== X-Received: by 2002:a17:90a:8d82:: with SMTP id d2mr4001299pjo.106.1622430975404; Sun, 30 May 2021 20:16:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcQGymN00drocCuO9d28dlpp4Cw6xoqayu3tYciVxzHFAw9GIW1EXVlE6OeD2MmJifDzryMA== X-Received: by 2002:a17:90a:8d82:: with SMTP id d2mr4001271pjo.106.1622430975118; Sun, 30 May 2021 20:16:15 -0700 (PDT) Received: from wangxiaodeMacBook-Air.local ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id g19sm2256576pjl.24.2021.05.30.20.16.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 30 May 2021 20:16:14 -0700 (PDT) Subject: Re: [PATCH 2/2] vdpa/mlx5: Add support for running with virtio_vdpa To: Eli Cohen , mst@redhat.com, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org References: <20210530075415.4644-1-elic@nvidia.com> <20210530075415.4644-3-elic@nvidia.com> From: Jason Wang Message-ID: <9b130015-d116-7fb0-1b86-2604353a2283@redhat.com> Date: Mon, 31 May 2021 11:16:11 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: <20210530075415.4644-3-elic@nvidia.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="gbk"; Format="flowed" Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" CtTaIDIwMjEvNS8zMCDPws7nMzo1NCwgRWxpIENvaGVuINC0tcA6Cj4gSW4gb3JkZXIgdG8gc3Vw cG9ydCBydW5uaW5nIHZkcGEgdXNpbmcgdnJpdGlvX3ZkcGEgZHJpdmVyLCB3ZSBuZWVkICB0bwo+ IGNyZWF0ZSBhIGRpZmZlcmVudCBraW5kIG9mIE1SLCBvbmUgdGhhdCBoYXMgMToxIG1hcHBpbmcs IHNpbmNlIHRoZQo+IGFkZHJlc3NlcyByZWZlcnJpbmcgdG8gdmlydHF1ZXVlcyBhcmUgZG1hIGFk ZHJlc3Nlcy4KPgo+IFdlIGNyZWF0ZSB0aGUgMToxIE1SIGluIG1seDVfdmRwYV9kZXZfYWRkKCkg b25seSBpbiBjYXNlIGZpcm13YXJlCj4gc3VwcG9ydHMgdGhlIGdlbmVyYWwgY2FwYWJpbGl0eSB1 bWVtX3VpZF8wLiBUaGUgcmVhc29uIGZvciB0aGF0IGlzIHRoYXQKPiAxOjEgTVJzIG11c3QgYmUg Y3JlYXRlZCB3aXRoIHVpZCA9PSAwIHdoaWxlIHZpcnRxdWV1ZSBvYmplY3RzIGNhbiBiZQo+IGNy ZWF0ZWQgd2l0aCB1aWQgPT0gMCBvbmx5IHdoZW4gdGhlIGZpcm13YXJlIGNhcGFiaWxpdHkgaXMg b24uCj4KPiBJZiB0aGUgc2V0X21hcCgpIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG5ldyB0cmFu c2xhdGlvbnMgcHJvdmlkZWQKPiB0aHJvdWdoIGlvdGxiLCB0aGUgZHJpdmVyIHdpbGwgZGVzdHJv eSB0aGUgMToxIE1SIGFuZCBjcmVhdGUgYSByZWd1bGFyCj4gb25lLgo+Cj4gU2lnbmVkLW9mZi1i eTogRWxpIENvaGVuIDxlbGljQG52aWRpYS5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL3ZkcGEvbWx4 NS9jb3JlL21seDVfdmRwYS5oIHwgIDEgKwo+ICAgZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5j ICAgICAgICB8IDgxICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+ICAgZHJpdmVycy92 ZHBhL21seDUvbmV0L21seDVfdm5ldC5jICB8IDEzICsrKystCj4gICAzIGZpbGVzIGNoYW5nZWQs IDgwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmggYi9kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21s eDVfdmRwYS5oCj4gaW5kZXggYjZjYzUzYmE5ODBjLi4wOWExNmEzZDFiMmEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaAo+ICsrKyBiL2RyaXZlcnMvdmRw YS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgKPiBAQCAtMzUsNiArMzUsNyBAQCBzdHJ1Y3QgbWx4NV92 ZHBhX21yIHsKPiAgIAo+ICAgCS8qIHNlcmlhbGl6ZSBta2V5IGNyZWF0aW9uIGFuZCBkZXN0cnVj dGlvbiAqLwo+ICAgCXN0cnVjdCBtdXRleCBta2V5X210eDsKPiArCWJvb2wgdXNlcl9tcjsKPiAg IH07Cj4gICAKPiAgIHN0cnVjdCBtbHg1X3ZkcGFfcmVzb3VyY2VzIHsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jIGIvZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5j Cj4gaW5kZXggODAwY2ZkMTk2N2FkLi4wMjBjMGNlNGQyMDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy92ZHBhL21seDUvY29yZS9tci5jCj4gKysrIGIvZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5j Cj4gQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgaW50IGFkZF9kaXJlY3RfY2hhaW4oc3RydWN0 IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1NjQgc3RhcnQsIHU2NCBzaXplLCB1OAo+ICAgICogaW5k aXJlY3QgbWVtb3J5IGtleSB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgZW5pdHJlIGFkZHJl c3Mgc3BhY2UgZ2l2ZW4KPiAgICAqIGJ5IGlvdGxiLgo+ICAgICovCj4gLXN0YXRpYyBpbnQgX21s eDVfdmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3Qgdmhv c3RfaW90bGIgKmlvdGxiKQo+ICtzdGF0aWMgaW50IGNyZWF0ZV91c2VyX21yKHN0cnVjdCBtbHg1 X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IHZob3N0X2lvdGxiICppb3RsYikKPiAgIHsKPiAgIAlz dHJ1Y3QgbWx4NV92ZHBhX21yICptciA9ICZtdmRldi0+bXI7Cj4gICAJc3RydWN0IG1seDVfdmRw YV9kaXJlY3RfbXIgKmRtcjsKPiBAQCAtMzc0LDkgKzM3NCw2IEBAIHN0YXRpYyBpbnQgX21seDVf dmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3Qgdmhvc3Rf aW90bGIKPiAgIAlpbnQgZXJyID0gMDsKPiAgIAlpbnQgbm51bHM7Cj4gICAKPiAtCWlmIChtci0+ aW5pdGlhbGl6ZWQpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+ICAgCUlOSVRfTElTVF9IRUFEKCZtci0+ aGVhZCk7Cj4gICAJZm9yIChtYXAgPSB2aG9zdF9pb3RsYl9pdHJlZV9maXJzdChpb3RsYiwgc3Rh cnQsIGxhc3QpOyBtYXA7Cj4gICAJICAgICBtYXAgPSB2aG9zdF9pb3RsYl9pdHJlZV9uZXh0KG1h cCwgc3RhcnQsIGxhc3QpKSB7Cj4gQEAgLTQxNCw3ICs0MTEsNyBAQCBzdGF0aWMgaW50IF9tbHg1 X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IHZob3N0 X2lvdGxiCj4gICAJaWYgKGVycikKPiAgIAkJZ290byBlcnJfY2hhaW47Cj4gICAKPiAtCW1yLT5p bml0aWFsaXplZCA9IHRydWU7Cj4gKwltci0+dXNlcl9tciA9IHRydWU7Cj4gICAJcmV0dXJuIDA7 Cj4gICAKPiAgIGVycl9jaGFpbjoKPiBAQCAtNDI2LDMzICs0MjMsODkgQEAgc3RhdGljIGludCBf bWx4NV92ZHBhX2NyZWF0ZV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCB2 aG9zdF9pb3RsYgo+ICAgCXJldHVybiBlcnI7Cj4gICB9Cj4gICAKPiAtaW50IG1seDVfdmRwYV9j cmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3Qgdmhvc3RfaW90bGIg KmlvdGxiKQo+ICtzdGF0aWMgaW50IGNyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYg Km12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcikKPiArewo+ICsJaW50IGlubGVuID0gTUxY NV9TVF9TWl9CWVRFUyhjcmVhdGVfbWtleV9pbik7Cj4gKwl2b2lkICpta2M7Cj4gKwl1MzIgKmlu Owo+ICsJaW50IGVycjsKPiArCj4gKwlpbiA9IGt6YWxsb2MoaW5sZW4sIEdGUF9LRVJORUwpOwo+ ICsJaWYgKCFpbikKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlta2MgPSBNTFg1X0FERFJf T0YoY3JlYXRlX21rZXlfaW4sIGluLCBtZW1vcnlfa2V5X21rZXlfZW50cnkpOwo+ICsKPiArCU1M WDVfU0VUKG1rYywgbWtjLCBhY2Nlc3NfbW9kZV8xXzAsIE1MWDVfTUtDX0FDQ0VTU19NT0RFX1BB KTsKPiArCU1MWDVfU0VUKG1rYywgbWtjLCBsZW5ndGg2NCwgMSk7Cj4gKwlNTFg1X1NFVChta2Ms IG1rYywgbHcsIDEpOwo+ICsJTUxYNV9TRVQobWtjLCBta2MsIGxyLCAxKTsKPiArCU1MWDVfU0VU KG1rYywgbWtjLCBwZCwgbXZkZXYtPnJlcy5wZG4pOwo+ICsJTUxYNV9TRVQobWtjLCBta2MsIHFw biwgMHhmZmZmZmYpOwo+ICsKPiArCWVyciA9IG1seDVfdmRwYV9jcmVhdGVfbWtleShtdmRldiwg Jm1yLT5ta2V5LCBpbiwgaW5sZW4pOwo+ICsJa2ZyZWUoaW4pOwo+ICsJcmV0dXJuIGVycjsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgZGVzdHJveV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYg Km12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcikKPiArewo+ICsJbWx4NV92ZHBhX2Rlc3Ry b3lfbWtleShtdmRldiwgJm1yLT5ta2V5KTsKPiArfQo+ICsKPiArc3RhdGljIGludCBfbWx4NV92 ZHBhX2NyZWF0ZV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCB2aG9zdF9p b3RsYiAqaW90bGIpCj4gICB7Cj4gICAJc3RydWN0IG1seDVfdmRwYV9tciAqbXIgPSAmbXZkZXYt Pm1yOwo+ICAgCWludCBlcnI7Cj4gICAKPiAtCW11dGV4X2xvY2soJm1yLT5ta2V5X210eCk7Cj4g KwlpZiAobXItPmluaXRpYWxpemVkKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWlmIChpb3RsYikK PiArCQllcnIgPSBjcmVhdGVfdXNlcl9tcihtdmRldiwgaW90bGIpOwo+ICsJZWxzZQo+ICsJCWVy ciA9IGNyZWF0ZV9kbWFfbXIobXZkZXYsIG1yKTsKCgpEbyB3ZSBuZWVkIHRvIHNldCB1c2VyX21y IHRvIGZhbHNlIGhlcmU/CgoKPiArCj4gKwltci0+aW5pdGlhbGl6ZWQgPSB0cnVlOwo+ICsJcmV0 dXJuIGVycjsKPiArfQo+ICsKPiAraW50IG1seDVfdmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVf dmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKQo+ICt7Cj4gKwlpbnQg ZXJyOwo+ICsKPiArCW11dGV4X2xvY2soJm12ZGV2LT5tci5ta2V5X210eCk7Cj4gICAJZXJyID0g X21seDVfdmRwYV9jcmVhdGVfbXIobXZkZXYsIGlvdGxiKTsKPiAtCW11dGV4X3VubG9jaygmbXIt Pm1rZXlfbXR4KTsKPiArCW11dGV4X3VubG9jaygmbXZkZXYtPm1yLm1rZXlfbXR4KTsKPiAgIAly ZXR1cm4gZXJyOwo+ICAgfQo+ICAgCj4gLXZvaWQgbWx4NV92ZHBhX2Rlc3Ryb3lfbXIoc3RydWN0 IG1seDVfdmRwYV9kZXYgKm12ZGV2KQo+ICtzdGF0aWMgdm9pZCBkZXN0cm95X3VzZXJfbXIoc3Ry dWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcikKPiAgIHsK PiAtCXN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yID0gJm12ZGV2LT5tcjsKPiAgIAlzdHJ1Y3QgbWx4 NV92ZHBhX2RpcmVjdF9tciAqZG1yOwo+ICAgCXN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpu Owo+ICAgCj4gLQltdXRleF9sb2NrKCZtci0+bWtleV9tdHgpOwo+IC0JaWYgKCFtci0+aW5pdGlh bGl6ZWQpCj4gLQkJZ290byBvdXQ7Cj4gLQo+ICAgCWRlc3Ryb3lfaW5kaXJlY3Rfa2V5KG12ZGV2 LCBtcik7Cj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UoZG1yLCBuLCAmbXIt PmhlYWQsIGxpc3QpIHsKPiAgIAkJbGlzdF9kZWxfaW5pdCgmZG1yLT5saXN0KTsKPiAgIAkJdW5t YXBfZGlyZWN0X21yKG12ZGV2LCBkbXIpOwo+ICAgCQlrZnJlZShkbXIpOwo+ICAgCX0KPiArfQo+ ICsKPiArdm9pZCBtbHg1X3ZkcGFfZGVzdHJveV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZk ZXYpCj4gK3sKPiArCXN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yID0gJm12ZGV2LT5tcjsKPiArCj4g KwltdXRleF9sb2NrKCZtci0+bWtleV9tdHgpOwo+ICsJaWYgKCFtci0+aW5pdGlhbGl6ZWQpCj4g KwkJZ290byBvdXQ7Cj4gKwo+ICsJaWYgKG1yLT51c2VyX21yKQo+ICsJCWRlc3Ryb3lfdXNlcl9t cihtdmRldiwgbXIpOwo+ICsJZWxzZQo+ICsJCWRlc3Ryb3lfZG1hX21yKG12ZGV2LCBtcik7Cj4g Kwo+ICAgCW1lbXNldChtciwgMCwgc2l6ZW9mKCptcikpOwo+ICAgCW1yLT5pbml0aWFsaXplZCA9 IGZhbHNlOwo+ICAgb3V0Ogo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4 NV92bmV0LmMgYi9kcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMKPiBpbmRleCBmZGYz ZTc0YmZmYmQuLmYxNjc1NjY2MWMxOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3ZkcGEvbWx4NS9u ZXQvbWx4NV92bmV0LmMKPiArKysgYi9kcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMK PiBAQCAtMTc4MCw2ICsxNzgwLDggQEAgc3RhdGljIHZvaWQgbWx4NV92ZHBhX3NldF9zdGF0dXMo c3RydWN0IHZkcGFfZGV2aWNlICp2ZGV2LCB1OCBzdGF0dXMpCj4gICAJCW5kZXYtPm12ZGV2LnN0 YXR1cyA9IDA7Cj4gICAJCW5kZXYtPm12ZGV2Lm1seF9mZWF0dXJlcyA9IDA7Cj4gICAJCSsrbXZk ZXYtPmdlbmVyYXRpb247Cj4gKwkJaWYgKE1MWDVfQ0FQX0dFTihtdmRldi0+bWRldiwgdW1lbV91 aWRfMCkpCj4gKwkJCW1seDVfdmRwYV9jcmVhdGVfbXIobXZkZXYsIE5VTEwpOwoKCkkgd29uZGVy IGlmIGl0J3MgcG9zc2libGUvd29ydGggdG8gYXZvaWQgdGhlIGRlc3Ryb3kgYW5kIHJlLWNyZWF0 ZSBvZiAKZG1hIE1SIGhlcmUuIChJbiB0aGUgY2FzZSBvZiBpdCBoYXMgYmVlbiB1c2VkIGJ5IHVz KS4KClRoYW5rcwoKCj4gICAJCXJldHVybjsKPiAgIAl9Cj4gICAKPiBAQCAtMTg1OSw2ICsxODYx LDcgQEAgc3RhdGljIHZvaWQgbWx4NV92ZHBhX2ZyZWUoc3RydWN0IHZkcGFfZGV2aWNlICp2ZGV2 KQo+ICAgCW5kZXYgPSB0b19tbHg1X3ZkcGFfbmRldihtdmRldik7Cj4gICAKPiAgIAlmcmVlX3Jl c291cmNlcyhuZGV2KTsKPiArCW1seDVfdmRwYV9kZXN0cm95X21yKG12ZGV2KTsKPiAgIAltbHg1 X3ZkcGFfZnJlZV9yZXNvdXJjZXMoJm5kZXYtPm12ZGV2KTsKPiAgIAltdXRleF9kZXN0cm95KCZu ZGV2LT5yZXNsb2NrKTsKPiAgIH0KPiBAQCAtMjAyMyw5ICsyMDI2LDE1IEBAIHN0YXRpYyBpbnQg bWx4NV92ZHBhX2Rldl9hZGQoc3RydWN0IHZkcGFfbWdtdF9kZXYgKnZfbWRldiwgY29uc3QgY2hh ciAqbmFtZSkKPiAgIAlpZiAoZXJyKQo+ICAgCQlnb3RvIGVycl9tdHU7Cj4gICAKPiArCWlmIChN TFg1X0NBUF9HRU4obXZkZXYtPm1kZXYsIHVtZW1fdWlkXzApKSB7Cj4gKwkJZXJyID0gbWx4NV92 ZHBhX2NyZWF0ZV9tcihtdmRldiwgTlVMTCk7Cj4gKwkJaWYgKGVycikKPiArCQkJZ290byBlcnJf cmVzOwo+ICsJfQo+ICsKPiAgIAllcnIgPSBhbGxvY19yZXNvdXJjZXMobmRldik7Cj4gICAJaWYg KGVycikKPiAtCQlnb3RvIGVycl9yZXM7Cj4gKwkJZ290byBlcnJfbXI7Cj4gICAKPiAgIAltdmRl di0+dmRldi5tZGV2ID0gJm1ndGRldi0+bWd0ZGV2Owo+ICAgCWVyciA9IF92ZHBhX3JlZ2lzdGVy X2RldmljZSgmbXZkZXYtPnZkZXYsIDIgKiBtbHg1X3ZkcGFfbWF4X3FwcyhtYXhfdnFzKSk7Cj4g QEAgLTIwMzcsNiArMjA0Niw4IEBAIHN0YXRpYyBpbnQgbWx4NV92ZHBhX2Rldl9hZGQoc3RydWN0 IHZkcGFfbWdtdF9kZXYgKnZfbWRldiwgY29uc3QgY2hhciAqbmFtZSkKPiAgIAo+ICAgZXJyX3Jl ZzoKPiAgIAlmcmVlX3Jlc291cmNlcyhuZGV2KTsKPiArZXJyX21yOgo+ICsJbWx4NV92ZHBhX2Rl c3Ryb3lfbXIobXZkZXYpOwo+ICAgZXJyX3JlczoKPiAgIAltbHg1X3ZkcGFfZnJlZV9yZXNvdXJj ZXMoJm5kZXYtPm12ZGV2KTsKPiAgIGVycl9tdHU6CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QKVmlydHVh bGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZv dW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24=