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 Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 10D69FA373D for ; Thu, 27 Oct 2022 06:31:27 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 8392E40914; Thu, 27 Oct 2022 06:31:27 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 8392E40914 Authentication-Results: smtp4.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256 header.s=corp-2022-7-12 header.b=WiyTr2mU; dkim=fail reason="signature verification failed" (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com header.b=rcUurkYR X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jk0I5980-eMq; Thu, 27 Oct 2022 06:31:25 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp4.osuosl.org (Postfix) with ESMTPS id A706040904; Thu, 27 Oct 2022 06:31:24 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org A706040904 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7AB2AC0032; Thu, 27 Oct 2022 06:31:24 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id C5ABFC002D for ; Thu, 27 Oct 2022 06:31:22 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 986F340328 for ; Thu, 27 Oct 2022 06:31:22 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 986F340328 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256 header.s=corp-2022-7-12 header.b=WiyTr2mU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com header.b=rcUurkYR X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fopQhz1zXRzQ for ; Thu, 27 Oct 2022 06:31:19 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org C65BA400B8 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by smtp2.osuosl.org (Postfix) with ESMTPS id C65BA400B8 for ; Thu, 27 Oct 2022 06:31:18 +0000 (UTC) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29R4tvLM032715; Thu, 27 Oct 2022 06:31:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=QHQvHiN8bK2iIZXZ024B86ANrnhfWv0QPxO+D1daW4w=; b=WiyTr2mUWB6yLW8t/CRK6gn29MOR4hUPwT+QWcbqhDTkyW/cQdtPhKLy94MdeliImOm7 PalQ/hE+sAeYaBjn9VB320fH1ES0SeXWUJRe+yv9ZwIN9/hOdNF89zIjlOO+D/7N1Pma SBFsDN/0LM/CI3GEkmpvKyYR7OpMeZnCSssL8duC66z8uS8F6HvD9R8tCJzZ9+OVMula zTreAG0nEVldBRTTqU/DKTrIwTH3/s12wG8QzZKHMhGLVZj/ys0AIQnejM8e0REI0z0D WrRGr3OHw13lPfixZaqZTtufvTRHF/ikPDNedRi41wHTxIb63tAWWZi/KeWx45KImL/E AQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3kfagv14qe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Oct 2022 06:31:17 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29R3qLk6017521; Thu, 27 Oct 2022 06:31:16 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3kfagg5ce7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Oct 2022 06:31:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MqLcz62NPZr9StM+Bh4Pz0Xs77P949f8RfgtHWngQTxV2+CqYosSx5phfmalyt3jj6bledkE4qhtHBi9xRZqAx2ZixZgECmAnzcvOs0T/MTHHKYlqpE0QZ4Tn6Mp0eys2jXEtQMSD3357xydUQMzUSEmvj8OdWrVKBz5hBBAfq7/pws2EcltA3xB6CvOOO+b+L8L28k7MuS4LpAbw81R0W8yaGy+jd9KyqnmIE0gvHPgNv3eRku7MbNQ4mnv3VUPd2NbHsrSto5EaPE7Kcn9j5r8EzZCKe5OMS67B6sDDiXarlWLv6uHWi8YV6amafD1SbyUDdVpe+c457Q8cvNAtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QHQvHiN8bK2iIZXZ024B86ANrnhfWv0QPxO+D1daW4w=; b=jjZLgNXDqtv6Xxmg9mgU+AAmzo2jxOOrNn8+WcX05XYQ8OGmnGa6drMS2AFKLfVALRMln4Xkg4TTG1nFEyS08S7RWnC7+QKfSZMVWXQgoU/3aCCxdwJn5VQpZZ85P9zOSMJYU4bQ/i5V+/uFiANU8ye7HzvdNWFDp6ZuMuXyHfAuGuwBtDRgaMjoxxyW7R2VWcveaTkbund4ujQXUgJeMAtOra+cWYmaz2/MPkF7r75d0O+G+LZT8jLZVx551gctIJfmzhP2YzSIKYK7S/KVcIlkAzgrK92MGLm2n05LEp4M77Dsyyj0PIGfYERx1TIXI1G5yXK6GnROvipZZKmOOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QHQvHiN8bK2iIZXZ024B86ANrnhfWv0QPxO+D1daW4w=; b=rcUurkYR2OizDjuqV43MZdcLZj+xo2qHnn4fDXgHExXaDyP0N8rRiHtfEsJroEr9DcEFP04sUh1DnmUMtvQOkkgAbVOG/GGzczhGo90frjo5ZHSig6cuHMT+e+1CLDJBy9mRIZvDG0KxrxiTUrHrTfMKj8b2MX3FfCr/9bdObG4= Received: from MW4PR10MB6535.namprd10.prod.outlook.com (2603:10b6:303:225::12) by BLAPR10MB5090.namprd10.prod.outlook.com (2603:10b6:208:322::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.14; Thu, 27 Oct 2022 06:31:14 +0000 Received: from MW4PR10MB6535.namprd10.prod.outlook.com ([fe80::9830:ae4d:f10c:c30a]) by MW4PR10MB6535.namprd10.prod.outlook.com ([fe80::9830:ae4d:f10c:c30a%5]) with mapi id 15.20.5723.032; Thu, 27 Oct 2022 06:31:13 +0000 Message-ID: Date: Wed, 26 Oct 2022 23:31:11 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: Re: [PATCH v3 3/4] vdpa: show dev config as-is in "vdpa dev show" output Content-Language: en-US To: Jason Wang References: <1666392237-4042-1-git-send-email-si-wei.liu@oracle.com> <1666392237-4042-4-git-send-email-si-wei.liu@oracle.com> <5b9efa3a-8a82-4bd1-a5b4-b9ca5b15b51a@oracle.com> <25a18d7a-ebae-3647-32f0-14ad733118be@oracle.com> <38b9648b-8795-5b41-b06c-d13a1a6d5d3f@redhat.com> From: Si-Wei Liu Organization: Oracle Corporation In-Reply-To: <38b9648b-8795-5b41-b06c-d13a1a6d5d3f@redhat.com> X-ClientProxiedBy: SJ0PR03CA0128.namprd03.prod.outlook.com (2603:10b6:a03:33c::13) To MW4PR10MB6535.namprd10.prod.outlook.com (2603:10b6:303:225::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW4PR10MB6535:EE_|BLAPR10MB5090:EE_ X-MS-Office365-Filtering-Correlation-Id: 386a6642-df98-49f8-d296-08dab7e4d853 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2vsY/0rqjPuTBesQEjF6rYEOR71bcxqsF1yOWAsZjW21bQHJyTIHgcKd6wAAV9hYvzmDxOZ9kVok4NCUcNYc64UB2GeqEiE0BwPwpddvYyIAAr+oVnwcB2K346e42fJInNzk0HEE8qE/LbgV3YejIpCNHhOSt3KTIZapi7fqomOhEf755s9E+RWNkSuSOR0R1aRBw8EPBt4Am8T6OaVdifnagnklox2HP8XvKnJKgfv+tnW7azAcGbG4AnL28rpAC/nEaRpiXC2h3Xq2+x7WwlLfTKdcIvpNq7UPfkVein/c1+J1pBmgJters10OKtTnNYhzr0fztHpRzjRBF+VOEqMRmd56pkU9cPNwBC2ZD7QYF5Rq7OW88fhmrGh1TrUsB6ZICo1FjS3zbjJiiOO/e15ufrv7XRZTU2iuuhDZ57JTBpsjRUJkEbG6ymSzcEA1UJztXdcAUWbgPt6PHrQ+9R1yjOtxWWUxoKr1Oe6ynKgat5aS9eGkC/9l83fiH0pQ1Nf5CnqwcyXPSzUXWM3Uxlg1vWiqGD8L/XYy0t8LpOBAHQxBSf19Yp/oXE4VIQAaWf17mLmCKHudPFqvBGIwuloG2jlH7DIw/osO6adeofVi+YfeGZnApmJy6Nf/x/Hz7qsyMHqxkcGPGL/zTrL3SaDenctsmFZYJvzsOf1ow6u8nEkLUc3KX1KAXDkZJLWDrzbqCYiTm9DEypmDMEmkFijmAgmlk3qgzNnCxFT9AarzrqTZLtTyJa5fF/ykt7m4Cv/0T3jH6HSVTR0/NQ2rH0gbOBO9ccFRNzaXG3TN24E= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW4PR10MB6535.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(136003)(346002)(366004)(39860400002)(376002)(451199015)(478600001)(6506007)(6486002)(53546011)(36916002)(38100700002)(30864003)(316002)(6512007)(36756003)(6916009)(26005)(186003)(83380400001)(86362001)(2906002)(2616005)(31696002)(8936002)(66946007)(66476007)(41300700001)(4326008)(31686004)(5660300002)(66556008)(66899015)(8676002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWNZc1VEQkRDMzhxZW1jbUZNWVBXMDBaRWsvc3ZMVjIvSUdaQ3F2MU84MWFI?= =?utf-8?B?M2lmSE9hdVFqbFVqUnFtQUNsTjgwYk8xSlM4ZmJWdFZEU2JvV3ZQWkZzM0hE?= =?utf-8?B?OHdLWnBwaWNkUldDcnQ4S1YwcmlDNVQ3eXRMTVpYVFNnMFFmUXJkYXVkUHFW?= =?utf-8?B?TUxUYXdKZjY1eFFPeTd5Y01aSU9iRnBMcTA4b0JVYTJoSXRwVGpicFBIQm5Y?= =?utf-8?B?a0JKN3VhdXpIRk1NbUhhT0hMaWZtOWdGdDBjSGZIbDc3bVE4RWw0MGtPN0M5?= =?utf-8?B?ZFJBOVVCNElUMzk0UXdYNHY2TW5tVDhXc05rU21zOEJYOThnSVZScFhRNVBH?= =?utf-8?B?d01wS3g1aFFWREp6SEdOSWpTa3BDZjU3Z3p3MDFZbnR0TkJOZUVwT25jSlRw?= =?utf-8?B?Q3Bxd3dHZjI2ZWlQcjJVWFJKTEtWdzlJV1dFQTVIeDZCKzJBNm5QZkFqVWh5?= =?utf-8?B?VEx2eHdnelNTNGpWZlVhSTBGUDBwVStxN1J2a2thaXFBelc0TWdVTGRYWVFs?= =?utf-8?B?eHNrWkFxTnNHOVg1YUNDV1BEUkxMam9Yakh4YVpuK1U2bTdCVDVGMVJzdm9X?= =?utf-8?B?VHFhN3dqTWo5Qnc4TEVRbk9jZUJnb3FGMzk0WmFjbjNDTlRMNFlnQVN1eExM?= =?utf-8?B?Wk41ay9pNnBwNG9wQTlTMHFRbVN1NElGL1gwZlc1OUF1dzRrcXB3NGdSZXRC?= =?utf-8?B?YlRtM04rZDJhRVZwbzhKWEZ0MzhXZlc4VTVQTERrMXFObGNNRWZ5bXl5UEVt?= =?utf-8?B?WkpkakxpbjFQa1QxSVpuM2x0bGZuV0h6alNWY0R2Qi8zUjFRWWRsSXVOUWlq?= =?utf-8?B?eVVFeTUvdmpOc2ZoeW5LWE9rUUhPYzVkdmtWY0NjcGg0R2RqWk1FNFF1TCtH?= =?utf-8?B?WE9VZmRubnlnTzF1MURLeHVNWFFLZHFJOC9QTzBQVXp1M2dGbEFrZzRyMEUv?= =?utf-8?B?UVhGVVFFbms1Q2FVcW1IZ0ttenlPYmlNMDY5ZzYvVG1yTlNPajRON0VYVldI?= =?utf-8?B?QnJBbnZlMGJCV3pVc1Q2SE53MU1obFZuWWpCNU1iSm43NjZmenRFamJ5Ykx3?= =?utf-8?B?WXphbk1JR1NjUC9QVUtLUU5WbWpQTW1acmFUVEtoc09iQ0ZrOWhmV2JVckRm?= =?utf-8?B?RmdMQlBDVXZReFB4dWhVNGkzamdJSTVBWlJPTkFaN2RPZERkSDRyeFcrb1Z3?= =?utf-8?B?NndHaDFhYzY3V1R3OUZYU0JiV3NLOFc5c2hrRHJENFYxNk1WOTVlRVdmWmVr?= =?utf-8?B?ckFmT2toNXpONGxWNlMyc1U0WHpIanEweTl2dUtBMmVyMWZEaGpKOFdoRk9h?= =?utf-8?B?QzhtOWZNRm5tM2R6c3VXd001bGU1ZVI2THFUbkM0SHduSGV6bVlVdll6dHpa?= =?utf-8?B?eXpqYjlhRlAwY2JmUkZIYmhWZkJobC9WVTNDWWxuL2hpUllUUGdoNXN6S0sr?= =?utf-8?B?SzQ3a0JqbzYrajBIbWVETmw1SlJoUTkyTXJPZnIxQ0w1Z29GVmVqZ3pCbmVv?= =?utf-8?B?L0JZbUFkTWg4SjZkL3hXcWRyWVhsbFVUZEhQMjdMb1BFbUdId3JscGdKQjI5?= =?utf-8?B?TmRTUS9ITzBpSnFnamFsSXlMMm9nakx2OWZzelVFNjBaUmRBdjBMN1hZZWJX?= =?utf-8?B?Zm90a0lIbmtYQ3h2N0JabUMvOXJvekU4Y1dXNjMyZ3VoRG9zNWk0V29SWkd6?= =?utf-8?B?VmpLcVBOUklFcStSbUwzVnEyMnpHRTM1dS8zRnA3R1gyaUJrczFUV3VHVERr?= =?utf-8?B?d3dGVUwxMW9ObzB5RXNvUUFDZEkwY1pJSDljdWozb05acmtXN2x0c3ZScmVk?= =?utf-8?B?a3ByejdFdW54UkZURThqbGNBY1k5NjVZVDB1SnViSC9kWWpQYUcvU3RUdUYz?= =?utf-8?B?ODBuOC9vd2h1Y2RyVkdlVFJwaG55V2REc2trVEphT0YzcW9GS1p5bm9uaHBl?= =?utf-8?B?TGRuRDcwRVdybzUzREhkM2ZWUTNKaWtlQks0aDl1WVRISWE5SnJSazR4bmZx?= =?utf-8?B?bCsxZU8xaDRWbU5aMUdSMldqdnRRZEl2TnVyYmthM0NXdzFGVHhiRVltSTlY?= =?utf-8?B?NGRlWTN6ajNPb0JjUS96ME1XSzJqZGxLY1NVS281NWZ2cWJmbjdlVDFrRE5q?= =?utf-8?Q?Av++pDhOtLswB9DaEYguuix/s?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 386a6642-df98-49f8-d296-08dab7e4d853 X-MS-Exchange-CrossTenant-AuthSource: MW4PR10MB6535.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2022 06:31:13.7863 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Gx9DemwSafBwM04FqNCfL34yl3JH+y1k7cwb/cFHbFBZdIrUomI8QNbefj2lIkZYvd3FLxM3Q7bNzOu6vrs+ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5090 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-27_02,2022-10-26_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2210270036 X-Proofpoint-ORIG-GUID: wmLoQ8O2REDqXEtUYWwxNvPQHJAuzvLP X-Proofpoint-GUID: wmLoQ8O2REDqXEtUYWwxNvPQHJAuzvLP Cc: virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Cindy Lu , mst@redhat.com 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="utf-8"; Format="flowed" Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" CgpPbiAxMC8yNS8yMDIyIDk6NDQgUE0sIEphc29uIFdhbmcgd3JvdGU6Cj4KPiDlnKggMjAyMi8x MC8yNiAwOToxMCwgU2ktV2VpIExpdSDlhpnpgZM6Cj4+Cj4+Cj4+IE9uIDEwLzI0LzIwMjIgNzoy NCBQTSwgSmFzb24gV2FuZyB3cm90ZToKPj4+IE9uIFR1ZSwgT2N0IDI1LCAyMDIyIGF0IDM6MTQg QU0gU2ktV2VpIExpdTxzaS13ZWkubGl1QG9yYWNsZS5jb20+wqAgCj4+PiB3cm90ZToKPj4+PiBP biAxMC8yNC8yMDIyIDE6NDAgQU0sIEphc29uIFdhbmcgd3JvdGU6Cj4+Pj4+IE9uIFNhdCwgT2N0 IDIyLCAyMDIyIGF0IDc6NDkgQU0gU2ktV2VpIExpdTxzaS13ZWkubGl1QG9yYWNsZS5jb20+wqAg Cj4+Pj4+IHdyb3RlOgo+Pj4+Pj4gTGl2ZSBtaWdyYXRpb24gb2YgdmRwYSB3b3VsZCB0eXBpY2Fs bHkgcmVxdWlyZSByZS1pbnN0YXRlIHZkcGEKPj4+Pj4+IGRldmljZSB3aXRoIGFuIGlkZW50aWFs IHNldCBvZiBjb25maWdzIG9uIHRoZSBkZXN0aW5hdGlvbiBub2RlLAo+Pj4+Pj4gc2FtZSB3YXkg YXMgaG93IHNvdXJjZSBub2RlIGNyZWF0ZWQgdGhlIGRldmljZSBpbiB0aGUgZmlyc3QKPj4+Pj4+ IHBsYWNlLiBJbiBvcmRlciB0byBzYXZlIG9yY2hlc3RyYXRpb24gc29mdHdhcmUgZnJvbSBtZW1v cml6aW5nCj4+Pj4+PiBhbmQga2VlcGluZyB0cmFjayBvZiB2ZHBhIGNvbmZpZywgaXQgd2lsbCBi ZSBoZWxwZnVsIGlmIHRoZSB2ZHBhCj4+Pj4+PiB0b29sIHByb3ZpZGVzIHRoZSBhaWRzIGZvciBl eHBvcnRpbmcgdGhlIGluaXRpYWwgY29uZmlncyBhcy1pcywKPj4+Pj4+IHRoZSB3YXkgaG93IHZk cGEgZGV2aWNlIHdhcyBjcmVhdGVkLiBUaGUgInZkcGEgZGV2IHNob3ciIGNvbW1hbmQKPj4+Pj4+ IHNlZW1zIHRvIGJlIHRoZSByaWdodCB2ZWhpY2xlIGZvciB0aGF0LiBJdCBpcyB1bmxpa2UgdGhl ICJ2ZHBhIGRldgo+Pj4+Pj4gY29uZmlnIHNob3ciIGNvbW1hbmQgb3V0cHV0IHdoaWNoIHVzdWFs bHkgZ29lcyB3aXRoIHRoZSBsaXZlIHZhbHVlCj4+Pj4+PiBpbiB0aGUgZGV2aWNlIGNvbmZpZyBz cGFjZSwgYW5kIGlzIG5vdCBxdWl0ZSByZWxpYWJsZSBzdWJqZWN0IHRvCj4+Pj4+PiB0aGUgZHlu YW1pY3Mgb2YgZmVhdHVyZSBuZWdvdGlhdGlvbiBvciBwb3NzaWJsZSBjaGFuZ2UgYnkgdGhlCj4+ Pj4+PiBkcml2ZXIgdG8gdGhlIGNvbmZpZyBzcGFjZS4KPj4+Pj4+Cj4+Pj4+PiBFeGFtcGxlczoK Pj4+Pj4+Cj4+Pj4+PiAxKSBDcmVhdGUgdkRQQSBieSBkZWZhdWx0IHdpdGhvdXQgYW55IGNvbmZp ZyBhdHRyaWJ1dGUKPj4+Pj4+Cj4+Pj4+PiAkIHZkcGEgZGV2IGFkZCBtZ210ZGV2IHBjaS8wMDAw OjQxOjA0LjIgbmFtZSB2ZHBhMAo+Pj4+Pj4gJCB2ZHBhIGRldiBzaG93IHZkcGEwCj4+Pj4+PiB2 ZHBhMDogdHlwZSBuZXR3b3JrIG1nbXRkZXYgcGNpLzAwMDA6NDE6MDQuMiB2ZW5kb3JfaWQgNTU1 NSAKPj4+Pj4+IG1heF92cXMgOSBtYXhfdnFfc2l6ZSAyNTYKPj4+Pj4+ICQgdmRwYSBkZXYgLWpw IHNob3cgdmRwYTAKPj4+Pj4+IHsKPj4+Pj4+IMKgwqDCoMKgwqAgImRldiI6IHsKPj4+Pj4+IMKg wqDCoMKgwqDCoMKgwqDCoCAidmRwYTAiOiB7Cj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAidHlwZSI6ICJuZXR3b3JrIiwKPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICJtZ210ZGV2IjogInBjaS8wMDAwOjQxOjA0LjIiLAo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgInZlbmRvcl9pZCI6IDU1NTUsCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAibWF4X3ZxcyI6IDksCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAibWF4 X3ZxX3NpemUiOiAyNTYsCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4gwqDCoMKg wqDCoCB9Cj4+Pj4+PiB9Cj4+Pj4+Pgo+Pj4+Pj4gMikgQ3JlYXRlIHZEUEEgd2l0aCBjb25maWcg YXR0cmlidXRlKHMpIHNwZWNpZmllZAo+Pj4+Pj4KPj4+Pj4+ICQgdmRwYSBkZXYgYWRkIG1nbXRk ZXYgcGNpLzAwMDA6NDE6MDQuMiBuYW1lIHZkcGEwIFwKPj4+Pj4+IMKgwqDCoMKgwqAgbWFjIGU0 OjExOmM2OmQzOjQ1OmYwIG1heF92cV9wYWlycyA0Cj4+Pj4+PiAkIHZkcGEgZGV2IHNob3cKPj4+ Pj4+IHZkcGEwOiB0eXBlIG5ldHdvcmsgbWdtdGRldiBwY2kvMDAwMDo0MTowNC4yIHZlbmRvcl9p ZCA1NTU1IAo+Pj4+Pj4gbWF4X3ZxcyA5IG1heF92cV9zaXplIDI1Ngo+Pj4+Pj4gwqDCoMKgIGlu aXRpYWxfY29uZmlnOiBtYWMgZTQ6MTE6YzY6ZDM6NDU6ZjAgbWF4X3ZxX3BhaXJzIDQKPj4+Pj4+ ICQgdmRwYSBkZXYgLWpwIHNob3cKPj4+Pj4+IHsKPj4+Pj4+IMKgwqDCoMKgwqAgImRldiI6IHsK Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAidmRwYTAiOiB7Cj4+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAidHlwZSI6ICJuZXR3b3JrIiwKPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICJtZ210ZGV2IjogInBjaS8wMDAwOjQxOjA0LjIiLAo+Pj4+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgInZlbmRvcl9pZCI6IDU1NTUsCj4+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAibWF4X3ZxcyI6IDksCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAibWF4X3ZxX3NpemUiOiAyNTYsCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAiaW5pdGlhbF9jb25maWciOiB7Cj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICJtYWMiOiAiZTQ6MTE6YzY6ZDM6NDU6ZjAiLAo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAibWF4X3ZxX3BhaXJzIjogNAo+Pj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4+IMKgwqDC oMKgwqAgfQo+Pj4+Pj4gfQo+Pj4+Pj4KPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNpLVdlaSBMaXU8 c2ktd2VpLmxpdUBvcmFjbGUuY29tPgo+Pj4+Pj4gLS0tCj4+Pj4+PiDCoMKgIGRyaXZlcnMvdmRw YS92ZHBhLmMgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+ Pj4+IMKgwqAgMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKykKPj4+Pj4+Cj4+Pj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL3ZkcGEuYyBiL2RyaXZlcnMvdmRwYS92ZHBhLmMKPj4+ Pj4+IGluZGV4IGJlYmRlZDYuLmJmYjhmNTQgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL3Zk cGEvdmRwYS5jCj4+Pj4+PiArKysgYi9kcml2ZXJzL3ZkcGEvdmRwYS5jCj4+Pj4+PiBAQCAtNjc3 LDYgKzY3Nyw0MSBAQCBzdGF0aWMgaW50IAo+Pj4+Pj4gdmRwYV9ubF9jbWRfZGV2X2RlbF9zZXRf ZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgCj4+Pj4+PiBnZW5sX2luZm8gKmkKPj4+ Pj4+IMKgwqAgfQo+Pj4+Pj4KPj4+Pj4+IMKgwqAgc3RhdGljIGludAo+Pj4+Pj4gK3ZkcGFfZGV2 X2luaXRjZmdfZmlsbChzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkZXYsIHN0cnVjdCBza19idWZmIAo+ Pj4+Pj4gKm1zZywgdTMyIGRldmljZV9pZCkKPj4+Pj4+ICt7Cj4+Pj4+PiArwqDCoMKgwqDCoMKg IHN0cnVjdCB2ZHBhX2Rldl9zZXRfY29uZmlnICpjZmcgPSAmdmRldi0+aW5pdF9jZmc7Cj4+Pj4+ PiArwqDCoMKgwqDCoMKgIGludCBlcnIgPSAtRU1TR1NJWkU7Cj4+Pj4+PiArCj4+Pj4+PiArwqDC oMKgwqDCoMKgIGlmICghY2ZnLT5tYXNrKQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIDA7Cj4+Pj4+PiArCj4+Pj4+PiArwqDCoMKgwqDCoMKgIHN3aXRjaCAoZGV2 aWNlX2lkKSB7Cj4+Pj4+PiArwqDCoMKgwqDCoMKgIGNhc2UgVklSVElPX0lEX05FVDoKPj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgoY2ZnLT5tYXNrICYgCj4+Pj4+PiBC SVRfVUxMKFZEUEFfQVRUUl9ERVZfTkVUX0NGR19NQUNBRERSKSkgIT0gMCAmJgo+Pj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBubGFfcHV0KG1zZywgVkRQQV9BVFRS X0RFVl9ORVRfQ0ZHX01BQ0FERFIsCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplb2YoY2ZnLT5uZXQubWFjKSwgY2ZnLT5uZXQu bWFjKSkKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCByZXR1cm4gZXJyOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKChj ZmctPm1hc2sgJiAKPj4+Pj4+IEJJVF9VTEwoVkRQQV9BVFRSX0RFVl9ORVRfQ0ZHX01UVSkpICE9 IDAgJiYKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmxhX3B1 dF91MTYobXNnLCBWRFBBX0FUVFJfREVWX05FVF9DRkdfTVRVLCAKPj4+Pj4+IGNmZy0+bmV0Lm10 dSkpCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIGVycjsKPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgoY2Zn LT5tYXNrICYgCj4+Pj4+PiBCSVRfVUxMKFZEUEFfQVRUUl9ERVZfTkVUX0NGR19NQVhfVlFQKSkg IT0gMCAmJgo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBubGFf cHV0X3UxNihtc2csIFZEUEFfQVRUUl9ERVZfTkVUX0NGR19NQVhfVlFQLAo+Pj4+Pj4gKyBjZmct Pm5ldC5tYXhfdnFfcGFpcnMpKQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBicmVhazsKPj4+Pj4+ICvCoMKgwqDCoMKgwqAgZGVmYXVsdDoKPj4+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+Pj4gK8KgwqDCoMKgwqDCoCB9Cj4+ Pj4+PiArCj4+Pj4+PiArwqDCoMKgwqDCoMKgIGlmICgoY2ZnLT5tYXNrICYgQklUX1VMTChWRFBB X0FUVFJfREVWX0ZFQVRVUkVTKSkgIT0gMCAmJgo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg IG5sYV9wdXRfdTY0XzY0Yml0KG1zZywgVkRQQV9BVFRSX0RFVl9GRUFUVVJFUywKPj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj ZmctPmRldmljZV9mZWF0dXJlcywgVkRQQV9BVFRSX1BBRCkpCj4+Pj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZXJyOwo+Pj4+PiBBIHF1ZXN0aW9uOiBJZiBhbnkgb2Yg dGhvc2UgYWJvdmUgYXR0cmlidXRlcyB3ZXJlIG5vdCBwcm92aXNpb25lZCwKPj4+Pj4gc2hvdWxk IHdlIHNob3cgdGhlIG9uZXMgdGhhdCBhcmUgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudD8KPj4+ PiBBIHNpbXBsZSBhbnN3ZXIgd291bGQgYmUgeWVzLCBidXQgdGhlIGxvbmcgYW5zd2VyIGlzIHRo YXQgSSBhbSBub3QgCj4+Pj4gc3VyZQo+Pj4+IGlmIHRoZXJlJ3MgYW55IGZvciB0aGUgbW9tZW50 IC0gdGhlcmUncyBub8KgIGRlZmF1bHQgdmFsdWUgZm9yIG10dSwgCj4+Pj4gbWFjLAo+Pj4+IGFu ZCBtYXhfdnFwIHRoYXQgY2FuIGJlIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgKG1heF92cXAg YnkgZGVmYXVsdAo+Pj4+IGJlaW5nIDEgaXMgc3BlYyBkZWZpbmVkLCBub3Qgc29tZXRoaW5nIGlu aGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQpLgo+Pj4gTm90ZSB0aGF0IGl0IGlzIGJ5IGRlZmF1bHQg ZnJvbSBkcml2ZXIgbGV2ZWwgdGhhdCBpZiBfRl9NUSBpcyBub3QKPj4+IG5lZ290aWF0ZWQuIEJ1 dCBJIHRoaW5rIHdlIGFyZSB0YWxraW5nIGFib3V0IHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhdAo+ Pj4gaXMgb3V0IG9mIHRoZSBzcGVjIGhlcmUsIHdoYXQgaWY6Cj4+Pgo+Pj4gdkRQQSBpbmhlcml0 IF9GX01RIGJ1dCBtcXhfdnFwIGlzIG5vdCBwcm92aXNpb25lZCB2aWEgbmV0bGluay4KPj4+Cj4+ PiBPciBpcyBpdCBub3QgYWxsb3dlZD8KPj4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHRoaXMg aXMgbm90IGFsbG93ZWQgYW55IG1vcmUgc2luY2UgdGhlIAo+PiBpbnRyb2R1Y3Rpb24gb2YgbWF4 X3ZxcCBhdHRyaWJ1dGUuIE5vdGVkLCBjdXJyZW50bHkgd2UgZG9uJ3QgaGF2ZSBhIAo+PiB3YXkg Zm9yIHZlbmRvciBkcml2ZXIgdG8gcmVwb3J0IHRoZSBkZWZhdWx0IHZhbHVlIGZvciBtcXhfdnFw LCAKPgo+Cj4gSSB0aGluayBpdCBjYW4gYmUgcmVwb3J0ZWQgaW4gdGhpcyBwYXRjaD8KWWVzLCB3 ZSBjYW4gYWRkLCBidXQgSSBhbSBub3Qgc3VyZSB3aGV0aGVyIG9yIG5vdCB0aGlzIHdpbGwgYmUg CnByYWN0aWNhbGx5IHVzZWZ1bCwgZm9yIGUuZy4gdGhlIHNhbWUgY29tbWFuZCB3aXRob3V0IG1h eF92cXAgc3BlY2lmaWVkIAptYXkgcmVuZGVyIGRpZmZlcmVudCBudW1iZXIgb2YgcXVldWVzIGFj cm9zcyBkaWZmZXJlbnQgZGV2aWNlcywgb3IgCmRpZmZlcmVudCByZXZpc2lvbnMgb2YgdGhlIHNh bWUgdmVuZG9yJ3MgZGV2aWNlcy4gRG9lcyBpdCBjb21wbGljYXRlIHRoZSAKbWdtdCBzb2Z0d2Fy ZSBldmVuIG1vcmUsIEknbSBub3Qgc3VyZS4uLi4gQ291bGQgd2UgaW5zdGVhZCBtYW5kYXRlIApt YXhfdnFwIHRvIGJlIDEgZnJvbSB2ZHBhIGNvcmUgbGV2ZWwgaWYgdXNlciBkb2Vzbid0IGV4cGxp Y2l0bHkgc3BlY2lmeSAKdGhlIHZhbHVlPyBUaGF0IHdheSBpdCBpcyBtb3JlIGNvbnNpc3RlbnQg aW4gdGVybXMgb2YgdGhlIHJlc3VsdGluZyAKbnVtYmVyIG9mIHF1ZXVlIHBhaXJzICg9MSkgd2l0 aCB0aGUgY2FzZSB3aGVyZSBwYXJlbnQgZGV2aWNlIGRvZXMgbm90IApvZmZlciB0aGUgX0ZfTVEg ZmVhdHVyZS4KCj4KPgo+PiBpZiBub3Qgb3RoZXJ3aXNlIHNwZWNpZmllZCBpbiB0aGUgQ0xJLiBX aXRob3V0IGdldHRpbmcgdGhlIGRlZmF1bHQgCj4+IHZhbHVlIHJlcG9ydGVkIGluICd2ZHBhIG1n bXRkZXYgc2hvdycgbGV2ZWwsIGl0J2QganVzdCBjb25mdXNlIG1nbXQgCj4+IHNvZnR3YXJlIGV2 ZW4gbW9yZS4KPgo+Cj4gWWVzLCB0aGlzIGlzIHNvbWV0aGluZyB0aGF0IHdlIG5lZWQgdG8gZml4 LiBBbmQgd2hhdCdzIG1vcmUgaW4gb3JkZXIgCj4gdG8gc3VwcG9ydCBkeW5hbWljIHByb3Zpc2lv bmluZywgd2UgbmVlZCBhIHdheSB0byByZXBvcnQgdGhlIG51bWJlciBvZiAKPiBhdmFpbGFibGUg aW5zdGFuY2VzIHRoYXQgY291bGQgYmUgdXNlZCBmb3IgdkRQQSBkZXZpY2UgcHJvdmlzaW9uaW5n LgpXb3VsZG4ndCBpdCBiZSBwb3NzaWJsZSB0byBhY2hpZXZlIHRoYXQgYnkgc2ltcGx5IGNoZWNr aW5nIGhvdyBtYW55IApwYXJlbnQgbWdtdGRldiBpbnN0YW5jZXMgZG9uJ3QgaGF2ZSB2ZHBhIGRl dmljZSBwcm92aXNpb25lZCB5ZXQ/IGUuZy4KCmludXNlPSQodmRwYSBkZXYgc2hvdyB8IGdyZXAg bWdtdGRldiB8IHdjIC1sKQp0b3RhbD0kKHZkcGEgbWdtdGRldiBzaG93wqAgfCBncmVwICJzdXBw b3J0ZWRfY2xhc3NlcyIgfCB3YyAtbCApCmVjaG8gJCgodG90YWwgLSBpbnVzZSkpCgo+Cj4KPj4K Pj4+IMKgwqAgQXQgbGVhc3Qgc29tZSB0aW1lIGluIHRoZSBwYXN0LCBtbHg1IHdlcmUKPj4+IGVu YWJsZWQgd2l0aCBNUSB3aXRoIDggcXVldWUgcGFpcnMgYnkgZGVmYXVsdC4KPj4gVGhhdCB3YXMg dGhlIHNpdHVhdGlvbiB3aGVuIHRoZXJlJ3Mgbm8gbWF4X3ZxcCBhdHRyaWJ1dGUgc3VwcG9ydCBm cm9tIAo+PiB2ZHBhIG5ldGxpbmsgQVBJIGxldmVsLiBJIHRoaW5rIG5vdyBldmVyeSBkcml2ZXIg aG9ub3JzIHRoZSB2ZHBhIGNvcmUgCj4+IGRpc3Bvc2l0aW9uIHRvIGdldCBhIHNpbmdsZSBxdWV1 ZSBwYWlyIGlmIG1heF92cXAgY29uZmlnIGlzIG1pc3NpbmcuCj4KPiBTbyB3ZSBoYXZlOgo+Cj4g aW50IHZkcGFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCB2ZHBhX2RldmljZSAqdmRldiwgaW50IG52 cXMpCj4KPiBUaGlzIG1lYW5zIHRlY2huaWNhbGx5LCBwYXJlbnQgY2FuIGFsbG9jYXRlIGEgbXVs dGlxdWV1ZSBkZXZpY2VzIHdpdGggCj4gX0ZfTVEgZmVhdHVyZXMgaWYgbWF4X3ZxcCBhbmQgZGV2 aWNlX2ZlYXR1cmVzIGlzIG5vdCBwcm92aXNpb25lZC4gQW5kIAo+IHdoYXQncyBtb3JlLCB3aGF0 IGhhcHBlbnMgaWYgX0ZfTVEgaXMgcHJvdmlzaW9uZWQgYnkgbWF4X3ZxcCBpcyBub3QgCj4gc3Bl Y2lmaWVkPwo+Cj4gVGhlIHF1ZXN0aW9uIGlzOgo+Cj4gV2hlbiBhIGF0dHJpYnV0ZSBpcyBub3Qg c3BlY2lmaWNlZC9wcm92aXNpb25lZCB2aWEgbmV0IGxpbmssIHdoYXQncyAKPiB0aGUgZGVmYXVs dCB2YWx1ZT8gVGhlIGFuc3dlciBzaG91bGQgYmUgY29uc2lzdGVudDogaWYgZGV2aWNlX2ZlYXR1 cmVzIAo+IGlzIGRldGVybWluZWQgYnkgdGhlIHBhcmVudCwgd2Ugc2hvdWxkIGRvIHRoZSBzYW1l IGZvciBtcXhfdnFwLiAKT0sgSSBnb3QgeW91ciBwb2ludC4KCj4gQW5kIGl0IGxvb2tzIHRvIG1l IGFsbCBvZiB0aG9zZSBiZWxvbmdzIHRvIHRoZSBpbml0aWFsIGNvbmZpZyAKPiAoc2VsZi1jb250 YWluZWQpClJpZ2h0LiBJIHdvbmRlciBpZiB3ZSBjYW4gaGF2ZSB2ZHBhIGNvcmUgZGVmaW5lIHRo ZSBkZWZhdWx0IHZhbHVlIChmb3IgCmUuZy4gbWF4X3ZxcD0xKSBmb3IgdGhvc2UgdW5zcGVjaWZp ZWQgYXR0cmlidXRlIChlc3AuIHdoZW4gdGhlIApjb3JyZXNwb25kaW5nIGRldmljZSBmZWF0dXJl IGlzIG9mZmVyZWQgYW5kIHByb3Zpc2lvbmVkKSB3aGVuZXZlciAKcG9zc2libGUuIFdoaWNoIEkg dGhpbmsgaXQnbGwgYmUgbW9yZSBjb25zaXN0ZW50IGZvciB0aGUgc2FtZSBjb21tYW5kIHRvIApn ZXQgdG8gdGhlIHNhbWUgcmVzdWx0IGJldHdlZW4gZGlmZmVyZW50IHZlbmRvciBkcml2ZXJzLiBX aGlsZSB3ZSBzdGlsbCAKa2VlcCB0aGUgcG9zc2liaWxpdHkgZm9yIGZ1dHVyZSBleHRlbnNpb24g dG8gYWxsb3cgZHJpdmVyIG92ZXJyaWRlIHRoZSAKdmRwYSBjb3JlIGRpc3Bvc2l0aW9uIGlmIHRo ZSByZWFsIHVzZSBjYXNlIGVtZXJnZXMuIFdoYXQgZG8geW91IHRoaW5rPwoKPgo+Cj4+IEFuZCB0 aGUgbWx4NV92ZHBhIGRyaXZlciB3aXRoIDggcXVldWUgcGFpcnMgaW4gdGhlIHdpbGQgZGF5cyBp cyBqdXN0IAo+PiBpcnJlbGV2YW50IHRvIGJlIG1hbmFnZWFibGUgYnkgbWdtdCBzb2Z0d2FyZSwg cmVnYXJkbGVzcyBvZiBsaXZlIAo+PiBtaWdyYXRpb24uCj4+Pj4gQW5kCj4+Pj4gdGhlIGRldmlj ZV9mZWF0dXJlcyBpZiBpbmhlcml0ZWQgaXMgZGlzcGxheWVkIGF0ICd2ZHBhIGRldiBjb25maWcg Cj4+Pj4gc2hvdycKPj4+PiBvdXRwdXQuIENhbiB5b3UgcmVtaW5kIG1lIG9mIGEgZ29vZCBleGFt cGxlIGZvciBpbmhlcml0ZWQgdmFsdWUgCj4+Pj4gdGhhdCB3ZQo+Pj4+IG1heSB3YW50IHRvIHNo b3cgaGVyZT8KPj4+IFNvbWUgb3RoZXIgY2FzZXM6Cj4+Pgo+Pj4gMSkgTVRVOiB0aGVyZSBzaG91 bGQgYmUgc29tZXRoaW5nIHRoYXQgdGhlIGRldmljZSBuZWVkcyB0byByZXBvcnQgaWYKPj4+IF9G X01UVSBpcyBuZWdvdGlhdGVkIGV2ZW4gaWYgaXQgaXMgbm90IHByb3Zpc2lvbmVkIGZyb20gbmV0 bGluay4KPj4gSSBhbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGFzayBoZXJlLiBOb3RlZCB0 aGUgUUVNVSBhcmd1bWVudCBoYXMgCj4+IHRvIG9mZmVyIGhvc3RfbXR1PVggd2l0aCB0aGUgbWF4 aW11bSBNVFUgdmFsdWUgZm9yIGd1ZXN0IHRvIHVzZSAoYW5kIAo+PiBhcHBsaWVkIGFzIHRoZSBp bml0aWFsIE1UVSBjb25maWcgZHVyaW5nIHZpcnRpby1uZXQgcHJvYmluZyBmb3IgTGludXggCj4+ IGRyaXZlciksIAo+Cj4KPiBBZGRpbmcgQ2luZHkuCj4KPiBJIHRoaW5rIGl0J3MgYSBrbm93biBp c3N1ZSB0aGF0IHdlIG5lZWQgdG8gZG8gc2FuaXR5IGNoZWNrIHRvIG1ha2UgCj4gc3VyZSBjbGkg cGFyYW1ldGVycyBtYXRjaGVzIHdoYXQgaXMgcHJvdmlzaW9uZWQgZnJvbSBuZXRsaW5rLgpSaWdo dC4gSG93J3MgdGhlIHBsYW4gZm9yIFFFTVUgdG8gZ2V0IHRvIHRoZSBtdHUgcHJvdmlzaW9uZWQg YnkgbmV0bGluaywgCnZpYSBhIG5ldyB2aG9zdC12ZHBhIGlvY3RsIGNhbGw/IElmIHNvLCB3aWxs wqAgUUVNVSBiZSBhYmxlIHRvIHJlYWQgaXQgCmRpcmVjdGx5IGZyb20ga2VybmVsIHdoZW4gaXQg Y29tZXMgdG8gdGhlIHZob3N0LXZkcGEgYmFja2VuZCwgd2l0aG91dCAKaGF2aW5nIHVzZXIgdG8g c3BlY2lmeSBob3N0X210dSBmcm9tIENMST8KPgo+Cj4+IGFuZCB0aGUgd2F5IHRvIGdldCB0aGUg cGFyZW50IGRldmljZSBNVFUgYW5kIHdoZXRoZXIgdGhhdCdzIHJlbGV2YW50IAo+PiB0byB2ZHBh IGRldmljZSdzIE1UVSBpcyB2ZXJ5IHZlbmRvciBzcGVjaWZpYy4KPgo+Cj4gU28gSSB0aGluayB0 aGUgbWF4IE1UVSBvZiBwYXJlbnQgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBtYXggTVRVIG9mIHRo ZSAKPiB2RFBBLgpOb3RlZCBoZXJlIHRoZSBwYXJlbnQgbWlnaHQgbm90IGJlIG5lY2Vzc2FyaWx5 IHRoZSBtZ210ZGV2IHdoZXJlIHZkcGEgCmdldHMgY3JlYXRlZCBvdmVyLiBJdCBtYXkgd2VsbCBl bmQgdXAgd2l0aCB0aGUgTVRVIG9uIHRoZSBQRiAodXBsaW5rIApwb3J0KSB3aGljaCB0aGUgbWdt dCBzb2Z0d2FyZSBoYXMgdG8gY29uY2VybiB3aXRoLiBNeSBwb2ludCBpcyB0aGUgCnV0aWxpdHkg YW5kIHRvb2wgY2hhaW4gYWJsZSB0byBkZXJpdmUgdGhlIG1heGltYWwgTVRVIGVmZmVjdGl2ZWx5 IAphbGxvd2VkIGZvciB2RFBBIGRldmljZSBtYXkgbGl2ZSBvdXQgb2YgdkRQQSdzIHJlYWxtLiBJ dCdzIGEgcmFyZSBvciAKZXZlbiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gdG8gaGF2ZSB2RFBBIGNv bmZpZ3VyZWQgd2l0aCBhIGJpZ2dlciB2YWx1ZSAKdGhhbiB0aGUgTVRVIG9uIHRoZSB1cGxpbmsg cG9ydCBvciBwYXJlbnQgZGV2aWNlLiBJdCdzIG1vcmUgY29tbW9uIHdoZW4gCk1UVSBjb25maWcg aXMgaW52b2x2ZWQsIGl0IGhhcyB0byBiZSBjb25zaXN0ZW50bHkgY29uZmlndXJlZCBhY3Jvc3Mg YWxsIAp0aGUgbmV0d29yayBsaW5rcyBhbG9uZywgZnJvbSBwYXJlbnQgZGV2aWNlICh1cGxpbmsg cG9ydCkgZG93biB0byB0aGUgCnN3aXRjaGRldiByZXByZXNlbnRvciBwb3J0LCB2ZHBhIGRldmlj ZSwgYW5kIFFFTVUgdmlydGlvLW5ldCBvYmplY3QuCgo+Cj4KPj4gSSB0aGluayB3ZSB3b3VsZCBu ZWVkIG5ldyBhdHRyaWJ1dGUocykgaW4gdGhlIG1nbXRkZXYgbGV2ZWwgdG8gCj4+IHN1cHBvcnQg d2hhdCB5b3Ugd2FudCBoZXJlPwo+Cj4KPiBOb3Qgc3VyZSwgYnV0IHdoYXQgSSB3YW50IHRvIGFz ayBpcyBjb25zaWRlciB3ZSBwcm92aXNpb24gTVRVIGZlYXR1cmUgCj4gYnV0IHdpdGhvdXQgbWF4 IE1UVSB2YWx1ZSwgZG8gd2UgbmVlZCB0byByZXBvcnQgdGhlIGluaXRpYWwgbWF4IE1UVSBoZXJl PwpZZXAsIG1heWJlLiBJJ20gbm90IHZlcnkgc3VyZSBpZiB0aGlzIHdpbGwgYmUgdmVyeSB1c2Vm dWwgdG8gYmUgaG9uZXN0LCAKY29uc2lkZXIgaXQncyBraW5kYSBhIHJhcmUgY2FzZSB0byBtZSB3 ZXJlIHRvIHByb3Zpc2lvbiBNVFUgZmVhdHVyZSAKd2l0aG91dCBhIHNwZWNpZmljIE1UVSB2YWx1 ZS4gSWYgb25lIGNhcmVzIGFib3V0IE1UVSwgbWdtdCBzb2Z0d2FyZSAKc2hvdWxkIGNvbmZpZ3Vy ZSBzb21lIG10dSB0aHJvdWdoICJ2ZHBhIGRldiBhZGQgLi4uIG10dSAuLi4iLCBubz8KCk9uIHRo ZSBvdGhlciBoYW5kLCBubyBtdHUgdmFsdWUgc3BlY2lmaWVkIG1heSBtZWFuICJnbyB3aXRoIHdo YXQgdGhlIAp1cGxpbmsgcG9ydCBvciBwYXJlbnQgZGV2aWNlIGhhcyIuIEkgdGhpbmsgdGhpcyBp cyBhIHByZXR0eSB1c2VmdWwgY2FzZSAKaWYgdGhlIHZlbmRvcidzIE5JQyBzdXBwb3J0cyB1cGRh dGluZyBNVFUgb24gdGhlIGZseSB3aXRob3V0IGhhdmluZyB0byAKdGVhciBkb3duIFFFTVUgYW5k IHJlY29uZmlndXJlIHZkcGEuIEknbSBub3Qgc3VyZSBpZiB3ZSBlbmQgdXAgd2l0aCAKa2lsbGlu ZyB0aGlzIHVzZSBjYXNlIGJ5IGxpbWl0aW5nIGluaXRpYWwgbWF4IE1UVSB0byBhIGZpeGVkIHZh bHVlLgoKPgo+Cj4+Cj4+PiAyKSBkZXZpY2VfZmVhdHVyZXM6IGlmIGRldmljZV9mZWF0dXJlcyBp cyBub3QgcHJvdmlzaW9uZWQsIHdlIHNob3VsZAo+Pj4gc3RpbGwgcmVwb3J0IGl0IHZpYSBuZXRs aW5rIGhlcmUKPj4gTm90IHRoZSB3YXkgSSBleHBlY3RlZCBpdCwgYnV0IHdpdGggTGluZ3NoYW4n cyBzZXJpZXMgdG8gZXhwb3NlIAo+PiBmaWVsZHMgb3V0IG9mIEZFQVRVUkVTX09LLCB0aGUgZGV2 aWNlX2ZlYXR1cmVzIGlzIG5vdyByZXBvcnRlZCAKPj4gdGhyb3VnaCAndmRwYSBkZXYgY29uZmln IHNob3cnIHJlZ2FyZGxlc3MgYmVpbmcgc3BlY2lmaWVkIG9yIG5vdCwgaWYgCj4+IEkgYW0gbm90 IG1pc3Rha2VuPwo+Cj4KPiBZZXMuCkRvIHlvdSB3YW50IG1lIHRvIHJlbG9jYXRlIHRvICd2ZHBh IGRldiBzaG93Jywgb3IgaXQncyBva2F5IHRvIGxlYXZlIGl0IApiZWhpbmQgdGhlcmU/Cgo+Cj4K Pj4KPj4gQ3VycmVudGx5IHdlIGV4cG9ydCB0aGUgY29uZmlnIGF0dHJpYnV0ZXMgdXBvbiB2ZHBh IGNyZWF0aW9uIHVuZGVyIAo+PiB0aGUgImluaXRpYWxfY29uZmlnIiBrZXkuIElmIHdlIHdhbnQg dG8gZXhwb3NlIG1vcmUgZGVmYXVsdCB2YWx1ZXMgCj4+IGluaGVyaXRlZCBmcm9tIG1nbXRkZXYs IEkgdGhpbmsgd2UgY2FuIHdyYXAgdXAgdGhlc2UgZGVmYXVsdCB2YWx1ZXMgCj4+IHVuZGVyIGFu b3RoZXIga2V5ICJpbmhlcml0ZWRfY29uZmlnIiB0byBkaXNwbGF5IGluICd2ZHBhIGRldiBzaG93 JyAKPj4gb3V0cHV0LiBEb2VzIGl0IGZpdCB3aGF0IHlvdSBoYXZlIGluIG1pbmQ/Cj4KPgo+IEkg d29uZGVyIGlmIGl0J3MgYmV0dGVyIHRvIG1lcmdlIHRob3NlIHR3bywgb3IgaXMgdGhlcmUgYW55 IGFkdmFudGFnZXMgCj4gb2Ygc3BsaXR0aW5nIHRoZW0/CkkgdGhpbmsgZm9yIHRoZSBtb3N0IHBh cnQgImluaXRpYWxfY29uZmlnIiB3aWxsIGJlIHN1ZmZpY2llbnQgZm9yIHRob3NlIApjb25maWcg YXR0cmlidXRlcyB3aXRoICJ2ZHBhIGRldiBhZGQiIGVxdWl2YWxlbnRzLCBiZSBpdCB1c2VyIHNw ZWNpZmllZCwgCnZkcGEgZW5mb3JjZWQgZGVmYXVsdCBpZiBtaXNzaW5nIHVzZXIgaW5wdXQsIG9y IGRlZmF1bHQgb3ZlcnJpZGRlbiBieSAKdGhlIHBhcmVudCBkZXZpY2UuICJpbmhlcml0ZWRfY29u ZmlnIiB3aWxsIGJlIHVzZWZ1bCBmb3IgdGhlIGNvbmZpZ3MgCndpdGggbm8gInZkcGEgZGV2IGFk ZCIgZXF1aXZhbGVudCBvciBsaXZlIG91dCBzaWRlIG9mIHZkcGEgdG9vbCwgYnV0IApzdGlsbCBp bXBvcnRhbnQgZm9yIG1nbXQgc29mdHdhcmUgdG8gcmVwbGljYXRlIGlkZW50aWNhbCB2ZHBhIHNl dHVwLiAKTGlrZSBtYXgtc3VwcG9ydGVkLW10dSAoZm9yIHRoZSB1cGxpbmsgcG9ydCBvciBwYXJl bnQgZGV2aWNlKSwgCmVmZmVjdGl2ZS1saW5rLXNwZWVkLCBlZmZlY3RpdmUtbGluay1zdGF0dXMg ZXQgYWwuIExldCdzIHNlZSBpZiB0aGVyZSdzIAptb3JlIHdoZW4gd2UgZ2V0IHRoZXJlLgoKVGhh bmtzLAotU2l3ZWkKCj4KPgo+Pgo+Pj4gb3IgZG8geW91IG1lYW4gdGhlIG1nbXQgY2FuIGFzc3Vt ZSBpdAo+Pj4gc2hvdWxkIGJlIHRoZSBzYW1lIGFzIG1nbXRkZXYuIEFueWhvdyBpZiB3ZSBkb24n dCBzaG93IGRldmljZV9mZWF0dXJlcwo+Pj4gaWYgaXQgaXMgbm90IHByb3Zpc2lvbmVkLCBpdCB3 aWxsIGNvbXBsaWNhdGUgdGhlIG1nbXQgc29mdHdhcmUuCj4+IFllcywgYXMgSSBzYWlkIGVhcmxp ZXIsIHNpbmNlIHRoZSBkZXZpY2VfZmVhdHVyZXMgYXR0ciBnZXR0aW5nIGFkZGVkIAo+PiB0byB0 aGUgJ3ZkcGEgZGV2IGNvbmZpZyBzaG93JyBjb21tYW5kLCB0aGlzIGRpdmVyZ2VuY2Ugc3RhcnRl ZCB0byAKPj4gY29tcGxpY2F0ZSBtZ210IHNvZnR3YXJlIGFscmVhZHkuCj4+Cj4+IFRoYW5rcywK Pgo+Cj4gVGhhbmtzCj4KPgo+PiAtU2l3ZWkKPj4+IFRoYW5rcwo+Pj4KPj4+PiBUaGFua3MsCj4+ Pj4gLVNpd2VpCj4+Pj4KPj4+Pgo+Pj4+PiBUaGFua3MKPj4+Pj4KPj4+Pj4+ICsKPj4+Pj4+ICvC oMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4+PiArfQo+Pj4+Pj4gKwo+Pj4+Pj4gK3N0YXRpYyBp bnQKPj4+Pj4+IMKgwqAgdmRwYV9kZXZfZmlsbChzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkZXYsIHN0 cnVjdCBza19idWZmICptc2csIAo+Pj4+Pj4gdTMyIHBvcnRpZCwgdTMyIHNlcSwKPj4+Pj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgZmxhZ3MsIHN0cnVjdCBuZXRsaW5rX2V4 dF9hY2sgKmV4dGFjaykKPj4+Pj4+IMKgwqAgewo+Pj4+Pj4gQEAgLTcxNSw2ICs3NTAsMTAgQEAg c3RhdGljIGludCAKPj4+Pj4+IHZkcGFfbmxfY21kX2Rldl9kZWxfc2V0X2RvaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IAo+Pj4+Pj4gZ2VubF9pbmZvICppCj4+Pj4+PiDCoMKgwqDCoMKg wqDCoMKgwqAgaWYgKG5sYV9wdXRfdTE2KG1zZywgVkRQQV9BVFRSX0RFVl9NSU5fVlFfU0laRSwg Cj4+Pj4+PiBtaW5fdnFfc2l6ZSkpCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGdvdG8gbXNnX2VycjsKPj4+Pj4+Cj4+Pj4+PiArwqDCoMKgwqDCoMKgIGVyciA9IHZk cGFfZGV2X2luaXRjZmdfZmlsbCh2ZGV2LCBtc2csIGRldmljZV9pZCk7Cj4+Pj4+PiArwqDCoMKg wqDCoMKgIGlmIChlcnIpCj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3Rv IG1zZ19lcnI7Cj4+Pj4+PiArCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ2VubG1zZ19lbmQo bXNnLCBoZHIpOwo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+Pj4+Pj4KPj4+ Pj4+IC0tIAo+Pj4+Pj4gMS44LjMuMQo+Pj4+Pj4KPj4KPgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZp cnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGlu dXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8801C38A2D for ; Thu, 27 Oct 2022 06:32:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234665AbiJ0GcH (ORCPT ); Thu, 27 Oct 2022 02:32:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229456AbiJ0Gbf (ORCPT ); Thu, 27 Oct 2022 02:31:35 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E2758163398 for ; Wed, 26 Oct 2022 23:31:23 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29R4tvLM032715; Thu, 27 Oct 2022 06:31:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=QHQvHiN8bK2iIZXZ024B86ANrnhfWv0QPxO+D1daW4w=; b=WiyTr2mUWB6yLW8t/CRK6gn29MOR4hUPwT+QWcbqhDTkyW/cQdtPhKLy94MdeliImOm7 PalQ/hE+sAeYaBjn9VB320fH1ES0SeXWUJRe+yv9ZwIN9/hOdNF89zIjlOO+D/7N1Pma SBFsDN/0LM/CI3GEkmpvKyYR7OpMeZnCSssL8duC66z8uS8F6HvD9R8tCJzZ9+OVMula zTreAG0nEVldBRTTqU/DKTrIwTH3/s12wG8QzZKHMhGLVZj/ys0AIQnejM8e0REI0z0D WrRGr3OHw13lPfixZaqZTtufvTRHF/ikPDNedRi41wHTxIb63tAWWZi/KeWx45KImL/E AQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3kfagv14qe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Oct 2022 06:31:17 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29R3qLk6017521; Thu, 27 Oct 2022 06:31:16 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3kfagg5ce7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Oct 2022 06:31:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MqLcz62NPZr9StM+Bh4Pz0Xs77P949f8RfgtHWngQTxV2+CqYosSx5phfmalyt3jj6bledkE4qhtHBi9xRZqAx2ZixZgECmAnzcvOs0T/MTHHKYlqpE0QZ4Tn6Mp0eys2jXEtQMSD3357xydUQMzUSEmvj8OdWrVKBz5hBBAfq7/pws2EcltA3xB6CvOOO+b+L8L28k7MuS4LpAbw81R0W8yaGy+jd9KyqnmIE0gvHPgNv3eRku7MbNQ4mnv3VUPd2NbHsrSto5EaPE7Kcn9j5r8EzZCKe5OMS67B6sDDiXarlWLv6uHWi8YV6amafD1SbyUDdVpe+c457Q8cvNAtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QHQvHiN8bK2iIZXZ024B86ANrnhfWv0QPxO+D1daW4w=; b=jjZLgNXDqtv6Xxmg9mgU+AAmzo2jxOOrNn8+WcX05XYQ8OGmnGa6drMS2AFKLfVALRMln4Xkg4TTG1nFEyS08S7RWnC7+QKfSZMVWXQgoU/3aCCxdwJn5VQpZZ85P9zOSMJYU4bQ/i5V+/uFiANU8ye7HzvdNWFDp6ZuMuXyHfAuGuwBtDRgaMjoxxyW7R2VWcveaTkbund4ujQXUgJeMAtOra+cWYmaz2/MPkF7r75d0O+G+LZT8jLZVx551gctIJfmzhP2YzSIKYK7S/KVcIlkAzgrK92MGLm2n05LEp4M77Dsyyj0PIGfYERx1TIXI1G5yXK6GnROvipZZKmOOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QHQvHiN8bK2iIZXZ024B86ANrnhfWv0QPxO+D1daW4w=; b=rcUurkYR2OizDjuqV43MZdcLZj+xo2qHnn4fDXgHExXaDyP0N8rRiHtfEsJroEr9DcEFP04sUh1DnmUMtvQOkkgAbVOG/GGzczhGo90frjo5ZHSig6cuHMT+e+1CLDJBy9mRIZvDG0KxrxiTUrHrTfMKj8b2MX3FfCr/9bdObG4= Received: from MW4PR10MB6535.namprd10.prod.outlook.com (2603:10b6:303:225::12) by BLAPR10MB5090.namprd10.prod.outlook.com (2603:10b6:208:322::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.14; Thu, 27 Oct 2022 06:31:14 +0000 Received: from MW4PR10MB6535.namprd10.prod.outlook.com ([fe80::9830:ae4d:f10c:c30a]) by MW4PR10MB6535.namprd10.prod.outlook.com ([fe80::9830:ae4d:f10c:c30a%5]) with mapi id 15.20.5723.032; Thu, 27 Oct 2022 06:31:13 +0000 Message-ID: Date: Wed, 26 Oct 2022 23:31:11 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: Re: [PATCH v3 3/4] vdpa: show dev config as-is in "vdpa dev show" output Content-Language: en-US To: Jason Wang Cc: mst@redhat.com, parav@nvidia.com, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Cindy Lu References: <1666392237-4042-1-git-send-email-si-wei.liu@oracle.com> <1666392237-4042-4-git-send-email-si-wei.liu@oracle.com> <5b9efa3a-8a82-4bd1-a5b4-b9ca5b15b51a@oracle.com> <25a18d7a-ebae-3647-32f0-14ad733118be@oracle.com> <38b9648b-8795-5b41-b06c-d13a1a6d5d3f@redhat.com> From: Si-Wei Liu Organization: Oracle Corporation In-Reply-To: <38b9648b-8795-5b41-b06c-d13a1a6d5d3f@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SJ0PR03CA0128.namprd03.prod.outlook.com (2603:10b6:a03:33c::13) To MW4PR10MB6535.namprd10.prod.outlook.com (2603:10b6:303:225::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW4PR10MB6535:EE_|BLAPR10MB5090:EE_ X-MS-Office365-Filtering-Correlation-Id: 386a6642-df98-49f8-d296-08dab7e4d853 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2vsY/0rqjPuTBesQEjF6rYEOR71bcxqsF1yOWAsZjW21bQHJyTIHgcKd6wAAV9hYvzmDxOZ9kVok4NCUcNYc64UB2GeqEiE0BwPwpddvYyIAAr+oVnwcB2K346e42fJInNzk0HEE8qE/LbgV3YejIpCNHhOSt3KTIZapi7fqomOhEf755s9E+RWNkSuSOR0R1aRBw8EPBt4Am8T6OaVdifnagnklox2HP8XvKnJKgfv+tnW7azAcGbG4AnL28rpAC/nEaRpiXC2h3Xq2+x7WwlLfTKdcIvpNq7UPfkVein/c1+J1pBmgJters10OKtTnNYhzr0fztHpRzjRBF+VOEqMRmd56pkU9cPNwBC2ZD7QYF5Rq7OW88fhmrGh1TrUsB6ZICo1FjS3zbjJiiOO/e15ufrv7XRZTU2iuuhDZ57JTBpsjRUJkEbG6ymSzcEA1UJztXdcAUWbgPt6PHrQ+9R1yjOtxWWUxoKr1Oe6ynKgat5aS9eGkC/9l83fiH0pQ1Nf5CnqwcyXPSzUXWM3Uxlg1vWiqGD8L/XYy0t8LpOBAHQxBSf19Yp/oXE4VIQAaWf17mLmCKHudPFqvBGIwuloG2jlH7DIw/osO6adeofVi+YfeGZnApmJy6Nf/x/Hz7qsyMHqxkcGPGL/zTrL3SaDenctsmFZYJvzsOf1ow6u8nEkLUc3KX1KAXDkZJLWDrzbqCYiTm9DEypmDMEmkFijmAgmlk3qgzNnCxFT9AarzrqTZLtTyJa5fF/ykt7m4Cv/0T3jH6HSVTR0/NQ2rH0gbOBO9ccFRNzaXG3TN24E= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR10MB6535.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(136003)(346002)(366004)(39860400002)(376002)(451199015)(478600001)(6506007)(6486002)(53546011)(36916002)(38100700002)(30864003)(316002)(6512007)(36756003)(6916009)(26005)(186003)(83380400001)(86362001)(2906002)(2616005)(31696002)(8936002)(66946007)(66476007)(41300700001)(4326008)(31686004)(5660300002)(66556008)(66899015)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWNZc1VEQkRDMzhxZW1jbUZNWVBXMDBaRWsvc3ZMVjIvSUdaQ3F2MU84MWFI?= =?utf-8?B?M2lmSE9hdVFqbFVqUnFtQUNsTjgwYk8xSlM4ZmJWdFZEU2JvV3ZQWkZzM0hE?= =?utf-8?B?OHdLWnBwaWNkUldDcnQ4S1YwcmlDNVQ3eXRMTVpYVFNnMFFmUXJkYXVkUHFW?= =?utf-8?B?TUxUYXdKZjY1eFFPeTd5Y01aSU9iRnBMcTA4b0JVYTJoSXRwVGpicFBIQm5Y?= =?utf-8?B?a0JKN3VhdXpIRk1NbUhhT0hMaWZtOWdGdDBjSGZIbDc3bVE4RWw0MGtPN0M5?= =?utf-8?B?ZFJBOVVCNElUMzk0UXdYNHY2TW5tVDhXc05rU21zOEJYOThnSVZScFhRNVBH?= =?utf-8?B?d01wS3g1aFFWREp6SEdOSWpTa3BDZjU3Z3p3MDFZbnR0TkJOZUVwT25jSlRw?= =?utf-8?B?Q3Bxd3dHZjI2ZWlQcjJVWFJKTEtWdzlJV1dFQTVIeDZCKzJBNm5QZkFqVWh5?= =?utf-8?B?VEx2eHdnelNTNGpWZlVhSTBGUDBwVStxN1J2a2thaXFBelc0TWdVTGRYWVFs?= =?utf-8?B?eHNrWkFxTnNHOVg1YUNDV1BEUkxMam9Yakh4YVpuK1U2bTdCVDVGMVJzdm9X?= =?utf-8?B?VHFhN3dqTWo5Qnc4TEVRbk9jZUJnb3FGMzk0WmFjbjNDTlRMNFlnQVN1eExM?= =?utf-8?B?Wk41ay9pNnBwNG9wQTlTMHFRbVN1NElGL1gwZlc1OUF1dzRrcXB3NGdSZXRC?= =?utf-8?B?YlRtM04rZDJhRVZwbzhKWEZ0MzhXZlc4VTVQTERrMXFObGNNRWZ5bXl5UEVt?= =?utf-8?B?WkpkakxpbjFQa1QxSVpuM2x0bGZuV0h6alNWY0R2Qi8zUjFRWWRsSXVOUWlq?= =?utf-8?B?eVVFeTUvdmpOc2ZoeW5LWE9rUUhPYzVkdmtWY0NjcGg0R2RqWk1FNFF1TCtH?= =?utf-8?B?WE9VZmRubnlnTzF1MURLeHVNWFFLZHFJOC9QTzBQVXp1M2dGbEFrZzRyMEUv?= =?utf-8?B?UVhGVVFFbms1Q2FVcW1IZ0ttenlPYmlNMDY5ZzYvVG1yTlNPajRON0VYVldI?= =?utf-8?B?QnJBbnZlMGJCV3pVc1Q2SE53MU1obFZuWWpCNU1iSm43NjZmenRFamJ5Ykx3?= =?utf-8?B?WXphbk1JR1NjUC9QVUtLUU5WbWpQTW1acmFUVEtoc09iQ0ZrOWhmV2JVckRm?= =?utf-8?B?RmdMQlBDVXZReFB4dWhVNGkzamdJSTVBWlJPTkFaN2RPZERkSDRyeFcrb1Z3?= =?utf-8?B?NndHaDFhYzY3V1R3OUZYU0JiV3NLOFc5c2hrRHJENFYxNk1WOTVlRVdmWmVr?= =?utf-8?B?ckFmT2toNXpONGxWNlMyc1U0WHpIanEweTl2dUtBMmVyMWZEaGpKOFdoRk9h?= =?utf-8?B?QzhtOWZNRm5tM2R6c3VXd001bGU1ZVI2THFUbkM0SHduSGV6bVlVdll6dHpa?= =?utf-8?B?eXpqYjlhRlAwY2JmUkZIYmhWZkJobC9WVTNDWWxuL2hpUllUUGdoNXN6S0sr?= =?utf-8?B?SzQ3a0JqbzYrajBIbWVETmw1SlJoUTkyTXJPZnIxQ0w1Z29GVmVqZ3pCbmVv?= =?utf-8?B?L0JZbUFkTWg4SjZkL3hXcWRyWVhsbFVUZEhQMjdMb1BFbUdId3JscGdKQjI5?= =?utf-8?B?TmRTUS9ITzBpSnFnamFsSXlMMm9nakx2OWZzelVFNjBaUmRBdjBMN1hZZWJX?= =?utf-8?B?Zm90a0lIbmtYQ3h2N0JabUMvOXJvekU4Y1dXNjMyZ3VoRG9zNWk0V29SWkd6?= =?utf-8?B?VmpLcVBOUklFcStSbUwzVnEyMnpHRTM1dS8zRnA3R1gyaUJrczFUV3VHVERr?= =?utf-8?B?d3dGVUwxMW9ObzB5RXNvUUFDZEkwY1pJSDljdWozb05acmtXN2x0c3ZScmVk?= =?utf-8?B?a3ByejdFdW54UkZURThqbGNBY1k5NjVZVDB1SnViSC9kWWpQYUcvU3RUdUYz?= =?utf-8?B?ODBuOC9vd2h1Y2RyVkdlVFJwaG55V2REc2trVEphT0YzcW9GS1p5bm9uaHBl?= =?utf-8?B?TGRuRDcwRVdybzUzREhkM2ZWUTNKaWtlQks0aDl1WVRISWE5SnJSazR4bmZx?= =?utf-8?B?bCsxZU8xaDRWbU5aMUdSMldqdnRRZEl2TnVyYmthM0NXdzFGVHhiRVltSTlY?= =?utf-8?B?NGRlWTN6ajNPb0JjUS96ME1XSzJqZGxLY1NVS281NWZ2cWJmbjdlVDFrRE5q?= =?utf-8?Q?Av++pDhOtLswB9DaEYguuix/s?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 386a6642-df98-49f8-d296-08dab7e4d853 X-MS-Exchange-CrossTenant-AuthSource: MW4PR10MB6535.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2022 06:31:13.7863 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Gx9DemwSafBwM04FqNCfL34yl3JH+y1k7cwb/cFHbFBZdIrUomI8QNbefj2lIkZYvd3FLxM3Q7bNzOu6vrs+ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5090 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-27_02,2022-10-26_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2210270036 X-Proofpoint-ORIG-GUID: wmLoQ8O2REDqXEtUYWwxNvPQHJAuzvLP X-Proofpoint-GUID: wmLoQ8O2REDqXEtUYWwxNvPQHJAuzvLP Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/25/2022 9:44 PM, Jason Wang wrote: > > 在 2022/10/26 09:10, Si-Wei Liu 写道: >> >> >> On 10/24/2022 7:24 PM, Jason Wang wrote: >>> On Tue, Oct 25, 2022 at 3:14 AM Si-Wei Liu  >>> wrote: >>>> On 10/24/2022 1:40 AM, Jason Wang wrote: >>>>> On Sat, Oct 22, 2022 at 7:49 AM Si-Wei Liu  >>>>> wrote: >>>>>> Live migration of vdpa would typically require re-instate vdpa >>>>>> device with an idential set of configs on the destination node, >>>>>> same way as how source node created the device in the first >>>>>> place. In order to save orchestration software from memorizing >>>>>> and keeping track of vdpa config, it will be helpful if the vdpa >>>>>> tool provides the aids for exporting the initial configs as-is, >>>>>> the way how vdpa device was created. The "vdpa dev show" command >>>>>> seems to be the right vehicle for that. It is unlike the "vdpa dev >>>>>> config show" command output which usually goes with the live value >>>>>> in the device config space, and is not quite reliable subject to >>>>>> the dynamics of feature negotiation or possible change by the >>>>>> driver to the config space. >>>>>> >>>>>> Examples: >>>>>> >>>>>> 1) Create vDPA by default without any config attribute >>>>>> >>>>>> $ vdpa dev add mgmtdev pci/0000:41:04.2 name vdpa0 >>>>>> $ vdpa dev show vdpa0 >>>>>> vdpa0: type network mgmtdev pci/0000:41:04.2 vendor_id 5555 >>>>>> max_vqs 9 max_vq_size 256 >>>>>> $ vdpa dev -jp show vdpa0 >>>>>> { >>>>>>       "dev": { >>>>>>           "vdpa0": { >>>>>>               "type": "network", >>>>>>               "mgmtdev": "pci/0000:41:04.2", >>>>>>               "vendor_id": 5555, >>>>>>               "max_vqs": 9, >>>>>>               "max_vq_size": 256, >>>>>>           } >>>>>>       } >>>>>> } >>>>>> >>>>>> 2) Create vDPA with config attribute(s) specified >>>>>> >>>>>> $ vdpa dev add mgmtdev pci/0000:41:04.2 name vdpa0 \ >>>>>>       mac e4:11:c6:d3:45:f0 max_vq_pairs 4 >>>>>> $ vdpa dev show >>>>>> vdpa0: type network mgmtdev pci/0000:41:04.2 vendor_id 5555 >>>>>> max_vqs 9 max_vq_size 256 >>>>>>     initial_config: mac e4:11:c6:d3:45:f0 max_vq_pairs 4 >>>>>> $ vdpa dev -jp show >>>>>> { >>>>>>       "dev": { >>>>>>           "vdpa0": { >>>>>>               "type": "network", >>>>>>               "mgmtdev": "pci/0000:41:04.2", >>>>>>               "vendor_id": 5555, >>>>>>               "max_vqs": 9, >>>>>>               "max_vq_size": 256, >>>>>>               "initial_config": { >>>>>>                   "mac": "e4:11:c6:d3:45:f0", >>>>>>                   "max_vq_pairs": 4 >>>>>>               } >>>>>>           } >>>>>>       } >>>>>> } >>>>>> >>>>>> Signed-off-by: Si-Wei Liu >>>>>> --- >>>>>>    drivers/vdpa/vdpa.c | 39 +++++++++++++++++++++++++++++++++++++++ >>>>>>    1 file changed, 39 insertions(+) >>>>>> >>>>>> diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c >>>>>> index bebded6..bfb8f54 100644 >>>>>> --- a/drivers/vdpa/vdpa.c >>>>>> +++ b/drivers/vdpa/vdpa.c >>>>>> @@ -677,6 +677,41 @@ static int >>>>>> vdpa_nl_cmd_dev_del_set_doit(struct sk_buff *skb, struct >>>>>> genl_info *i >>>>>>    } >>>>>> >>>>>>    static int >>>>>> +vdpa_dev_initcfg_fill(struct vdpa_device *vdev, struct sk_buff >>>>>> *msg, u32 device_id) >>>>>> +{ >>>>>> +       struct vdpa_dev_set_config *cfg = &vdev->init_cfg; >>>>>> +       int err = -EMSGSIZE; >>>>>> + >>>>>> +       if (!cfg->mask) >>>>>> +               return 0; >>>>>> + >>>>>> +       switch (device_id) { >>>>>> +       case VIRTIO_ID_NET: >>>>>> +               if ((cfg->mask & >>>>>> BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MACADDR)) != 0 && >>>>>> +                   nla_put(msg, VDPA_ATTR_DEV_NET_CFG_MACADDR, >>>>>> +                           sizeof(cfg->net.mac), cfg->net.mac)) >>>>>> +                       return err; >>>>>> +               if ((cfg->mask & >>>>>> BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MTU)) != 0 && >>>>>> +                   nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MTU, >>>>>> cfg->net.mtu)) >>>>>> +                       return err; >>>>>> +               if ((cfg->mask & >>>>>> BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MAX_VQP)) != 0 && >>>>>> +                   nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MAX_VQP, >>>>>> + cfg->net.max_vq_pairs)) >>>>>> +                       return err; >>>>>> +               break; >>>>>> +       default: >>>>>> +               break; >>>>>> +       } >>>>>> + >>>>>> +       if ((cfg->mask & BIT_ULL(VDPA_ATTR_DEV_FEATURES)) != 0 && >>>>>> +           nla_put_u64_64bit(msg, VDPA_ATTR_DEV_FEATURES, >>>>>> +                             cfg->device_features, VDPA_ATTR_PAD)) >>>>>> +               return err; >>>>> A question: If any of those above attributes were not provisioned, >>>>> should we show the ones that are inherited from the parent? >>>> A simple answer would be yes, but the long answer is that I am not >>>> sure >>>> if there's any for the moment - there's no  default value for mtu, >>>> mac, >>>> and max_vqp that can be inherited from the parent (max_vqp by default >>>> being 1 is spec defined, not something inherited from the parent). >>> Note that it is by default from driver level that if _F_MQ is not >>> negotiated. But I think we are talking about something different that >>> is out of the spec here, what if: >>> >>> vDPA inherit _F_MQ but mqx_vqp is not provisioned via netlink. >>> >>> Or is it not allowed? >> My understanding is that this is not allowed any more since the >> introduction of max_vqp attribute. Noted, currently we don't have a >> way for vendor driver to report the default value for mqx_vqp, > > > I think it can be reported in this patch? Yes, we can add, but I am not sure whether or not this will be practically useful, for e.g. the same command without max_vqp specified may render different number of queues across different devices, or different revisions of the same vendor's devices. Does it complicate the mgmt software even more, I'm not sure.... Could we instead mandate max_vqp to be 1 from vdpa core level if user doesn't explicitly specify the value? That way it is more consistent in terms of the resulting number of queue pairs (=1) with the case where parent device does not offer the _F_MQ feature. > > >> if not otherwise specified in the CLI. Without getting the default >> value reported in 'vdpa mgmtdev show' level, it'd just confuse mgmt >> software even more. > > > Yes, this is something that we need to fix. And what's more in order > to support dynamic provisioning, we need a way to report the number of > available instances that could be used for vDPA device provisioning. Wouldn't it be possible to achieve that by simply checking how many parent mgmtdev instances don't have vdpa device provisioned yet? e.g. inuse=$(vdpa dev show | grep mgmtdev | wc -l) total=$(vdpa mgmtdev show  | grep "supported_classes" | wc -l ) echo $((total - inuse)) > > >> >>>    At least some time in the past, mlx5 were >>> enabled with MQ with 8 queue pairs by default. >> That was the situation when there's no max_vqp attribute support from >> vdpa netlink API level. I think now every driver honors the vdpa core >> disposition to get a single queue pair if max_vqp config is missing. > > So we have: > > int vdpa_register_device(struct vdpa_device *vdev, int nvqs) > > This means technically, parent can allocate a multiqueue devices with > _F_MQ features if max_vqp and device_features is not provisioned. And > what's more, what happens if _F_MQ is provisioned by max_vqp is not > specified? > > The question is: > > When a attribute is not specificed/provisioned via net link, what's > the default value? The answer should be consistent: if device_features > is determined by the parent, we should do the same for mqx_vqp. OK I got your point. > And it looks to me all of those belongs to the initial config > (self-contained) Right. I wonder if we can have vdpa core define the default value (for e.g. max_vqp=1) for those unspecified attribute (esp. when the corresponding device feature is offered and provisioned) whenever possible. Which I think it'll be more consistent for the same command to get to the same result between different vendor drivers. While we still keep the possibility for future extension to allow driver override the vdpa core disposition if the real use case emerges. What do you think? > > >> And the mlx5_vdpa driver with 8 queue pairs in the wild days is just >> irrelevant to be manageable by mgmt software, regardless of live >> migration. >>>> And >>>> the device_features if inherited is displayed at 'vdpa dev config >>>> show' >>>> output. Can you remind me of a good example for inherited value >>>> that we >>>> may want to show here? >>> Some other cases: >>> >>> 1) MTU: there should be something that the device needs to report if >>> _F_MTU is negotiated even if it is not provisioned from netlink. >> I am not sure I understand the ask here. Noted the QEMU argument has >> to offer host_mtu=X with the maximum MTU value for guest to use (and >> applied as the initial MTU config during virtio-net probing for Linux >> driver), > > > Adding Cindy. > > I think it's a known issue that we need to do sanity check to make > sure cli parameters matches what is provisioned from netlink. Right. How's the plan for QEMU to get to the mtu provisioned by netlink, via a new vhost-vdpa ioctl call? If so, will  QEMU be able to read it directly from kernel when it comes to the vhost-vdpa backend, without having user to specify host_mtu from CLI? > > >> and the way to get the parent device MTU and whether that's relevant >> to vdpa device's MTU is very vendor specific. > > > So I think the max MTU of parent should be equal to the max MTU of the > vDPA. Noted here the parent might not be necessarily the mgmtdev where vdpa gets created over. It may well end up with the MTU on the PF (uplink port) which the mgmt software has to concern with. My point is the utility and tool chain able to derive the maximal MTU effectively allowed for vDPA device may live out of vDPA's realm. It's a rare or even invalid configuration to have vDPA configured with a bigger value than the MTU on the uplink port or parent device. It's more common when MTU config is involved, it has to be consistently configured across all the network links along, from parent device (uplink port) down to the switchdev representor port, vdpa device, and QEMU virtio-net object. > > >> I think we would need new attribute(s) in the mgmtdev level to >> support what you want here? > > > Not sure, but what I want to ask is consider we provision MTU feature > but without max MTU value, do we need to report the initial max MTU here? Yep, maybe. I'm not very sure if this will be very useful to be honest, consider it's kinda a rare case to me were to provision MTU feature without a specific MTU value. If one cares about MTU, mgmt software should configure some mtu through "vdpa dev add ... mtu ...", no? On the other hand, no mtu value specified may mean "go with what the uplink port or parent device has". I think this is a pretty useful case if the vendor's NIC supports updating MTU on the fly without having to tear down QEMU and reconfigure vdpa. I'm not sure if we end up with killing this use case by limiting initial max MTU to a fixed value. > > >> >>> 2) device_features: if device_features is not provisioned, we should >>> still report it via netlink here >> Not the way I expected it, but with Lingshan's series to expose >> fields out of FEATURES_OK, the device_features is now reported >> through 'vdpa dev config show' regardless being specified or not, if >> I am not mistaken? > > > Yes. Do you want me to relocate to 'vdpa dev show', or it's okay to leave it behind there? > > >> >> Currently we export the config attributes upon vdpa creation under >> the "initial_config" key. If we want to expose more default values >> inherited from mgmtdev, I think we can wrap up these default values >> under another key "inherited_config" to display in 'vdpa dev show' >> output. Does it fit what you have in mind? > > > I wonder if it's better to merge those two, or is there any advantages > of splitting them? I think for the most part "initial_config" will be sufficient for those config attributes with "vdpa dev add" equivalents, be it user specified, vdpa enforced default if missing user input, or default overridden by the parent device. "inherited_config" will be useful for the configs with no "vdpa dev add" equivalent or live out side of vdpa tool, but still important for mgmt software to replicate identical vdpa setup. Like max-supported-mtu (for the uplink port or parent device), effective-link-speed, effective-link-status et al. Let's see if there's more when we get there. Thanks, -Siwei > > >> >>> or do you mean the mgmt can assume it >>> should be the same as mgmtdev. Anyhow if we don't show device_features >>> if it is not provisioned, it will complicate the mgmt software. >> Yes, as I said earlier, since the device_features attr getting added >> to the 'vdpa dev config show' command, this divergence started to >> complicate mgmt software already. >> >> Thanks, > > > Thanks > > >> -Siwei >>> Thanks >>> >>>> Thanks, >>>> -Siwei >>>> >>>> >>>>> Thanks >>>>> >>>>>> + >>>>>> +       return 0; >>>>>> +} >>>>>> + >>>>>> +static int >>>>>>    vdpa_dev_fill(struct vdpa_device *vdev, struct sk_buff *msg, >>>>>> u32 portid, u32 seq, >>>>>>                 int flags, struct netlink_ext_ack *extack) >>>>>>    { >>>>>> @@ -715,6 +750,10 @@ static int >>>>>> vdpa_nl_cmd_dev_del_set_doit(struct sk_buff *skb, struct >>>>>> genl_info *i >>>>>>           if (nla_put_u16(msg, VDPA_ATTR_DEV_MIN_VQ_SIZE, >>>>>> min_vq_size)) >>>>>>                   goto msg_err; >>>>>> >>>>>> +       err = vdpa_dev_initcfg_fill(vdev, msg, device_id); >>>>>> +       if (err) >>>>>> +               goto msg_err; >>>>>> + >>>>>>           genlmsg_end(msg, hdr); >>>>>>           return 0; >>>>>> >>>>>> -- >>>>>> 1.8.3.1 >>>>>> >> >