From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id ED0FEA0C43; Fri, 22 Oct 2021 14:34:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B09054114A; Fri, 22 Oct 2021 14:34:36 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 3FAF441149 for ; Fri, 22 Oct 2021 14:34:34 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10144"; a="252795576" X-IronPort-AV: E=Sophos;i="5.87,172,1631602800"; d="scan'208";a="252795576" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2021 05:34:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,172,1631602800"; d="scan'208";a="445759218" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga003.jf.intel.com with ESMTP; 22 Oct 2021 05:34:33 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Fri, 22 Oct 2021 05:34:32 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Fri, 22 Oct 2021 05:34:32 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.48) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Fri, 22 Oct 2021 05:34:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cTVU1hF/h/nipRBXn1JpwbUm7fSbPoI3h7oOihPwWdBl/3wGVdj8pgOy6BJh9ZrjdyrfP6iIOfwT3aSDziXiZ6vcUTuQwIZIALHrHr3b08pJ1e6rgRnFrqBTMNclSbyFcL2v8Xeb/+GijRyJuvztNwhjbgcobLKZzyA+ur5oZaio3avQFwoh8DE5XruG2fmyDdwEfd8LCtFiezndgSLKJZuraWjF2FpGgXu8kGe4XyM/9X1qtzNmzKW12HcAP8JICb7p2JEnEyQTWz0FejPULaqYmaLHIKU2oXfliggXZ4re2LzIrjnmv0fsXqwgETGWIvdnlhbXMkOTBxp/ylWS0A== 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=mVIzBn5sq6ydG42X/TbBC3M65rF71DNsNr+0YZrkJf0=; b=C+oh5USVGNkFLj3svOiVh0YwITAF/lZfBFg0RKIuVwEPWa83C18XU5hqBqZC7XncrGanz7H0/K65vf5dVng62OrzYlMPM+s+W8YaAHHpWyuksK1x78pA7Nx8LClJ8OEfchdq2IOfV3rzTwjwnhOrwCvllqc9/6BleFuENALYvmWMcYXaqdHYVsNCIGdzui3FD2xwIdmlNiLBOnrY87bo+4QHiudjkJrIFlGhShGKkQSJYgN07290E9hcMI/vjfzpR+dKeAswEnjOossxQ8/TCa1rGVKDsxJdxru2cpTNEYAyvc8o2D0Q9FPBgqYHsBy9C2sKUZr+nqD7rhHAJaDixg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mVIzBn5sq6ydG42X/TbBC3M65rF71DNsNr+0YZrkJf0=; b=toc+gtZFxAigAjz0ltYZQ3LK+iOcjmD/B9+oBV4BEU3eyaES7b9r3pH6tx45L0E+iEz6e/l2x43RermlkuVbWJp3ITsVjFW3jFXBbbB6tT9GmkZ+QurnJEe0ZMUycjmgQ+ZJN5sZkrJvNFLafp4xWIx0mVf0k+rOEOMaWkzx170= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; Received: from PH0PR11MB5047.namprd11.prod.outlook.com (2603:10b6:510:3c::18) by PH7PR11MB5916.namprd11.prod.outlook.com (2603:10b6:510:13d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Fri, 22 Oct 2021 12:34:29 +0000 Received: from PH0PR11MB5047.namprd11.prod.outlook.com ([fe80::f1a0:809a:3d2e:e13c]) by PH0PR11MB5047.namprd11.prod.outlook.com ([fe80::f1a0:809a:3d2e:e13c%9]) with mapi id 15.20.4628.018; Fri, 22 Oct 2021 12:34:29 +0000 To: "Xia, Chenbo" , "Li, Miao" , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" References: <20211015170911.478394-1-miao.li@intel.com> <20211018141638.5916-1-miao.li@intel.com> <20211018141638.5916-3-miao.li@intel.com> From: David Hunt Message-ID: Date: Fri, 22 Oct 2021 13:34:24 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.14.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB X-ClientProxiedBy: DB7PR02CA0028.eurprd02.prod.outlook.com (2603:10a6:10:52::41) To PH0PR11MB5047.namprd11.prod.outlook.com (2603:10b6:510:3c::18) MIME-Version: 1.0 Received: from [10.4.11.161] (95.45.23.115) by DB7PR02CA0028.eurprd02.prod.outlook.com (2603:10a6:10:52::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Fri, 22 Oct 2021 12:34:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 674449a8-8fa3-45b7-f112-08d995584aa9 X-MS-TrafficTypeDiagnostic: PH7PR11MB5916: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YuiaaWtpzVc93Cgnd+hORbq6kNgyilGvfobaRDC5Yj/hEsWJ0kSZ7tp9KrOOy62jFfoG9Gd0/B/nevZFFlDuefNF+muDUvrD8laFQ3KXBTWJH2/bV8NzOvugdHEEb21yPXW4clz9xMfnp9T/buE1L8YPMVxERlOwOeITbaCNAYoOEWwCXfwo4g/79e5zUUtvB5z5Pb3jC+x9uF9rigYshMi558/ukCkcEHrVFDgaXe8vM6QAL6jbCk8TRdgfopXEUUFjxZN2k9GNjVPdRZSANT6+a5Bfw5unPjqHxN6BucJhup9URG2J+yuRL9T4duirx3PZg1TlB1YjN+021zeoMSa7Qjl2BE6vugdLjq8whe08uEP5kltHD6TOD5p2UoplrYBlCRbNbaW8JYCvP2XCHcaaL274Dj454LuiqJl3tWeFbrZilqMGjjRy27xza8n2DdXpUZP04/PztmBUjhnD1sFKIlmwPFhU4CjN8gsT03NqfdujPmDAXt1JXcmM1gbl17habavIZF+Sc5Mv/+8L76ttiKyaKfmmFJC5WkCCcdZAk2z+vzYoqissnwKpm7jRQ2p3hUUvWBG97VugTehhXFqROzB3h2vuCgPmnKbBS7PtOPEwx9AkftsCvqwSczqW1T3O8wwypZCVfXHneqyvsVXM/AM0Wny6La13GFe90Sjkq71rNPnIfUJ0YJTpM9P0nR8TlliLfemcIwzjG/6GsjTde+FwreEQRbiTBAvhJqxedSP268WqzoVnkzgB99yw X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5047.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6486002)(2616005)(186003)(31696002)(83380400001)(956004)(26005)(53546011)(2906002)(82960400001)(44832011)(86362001)(66556008)(66946007)(16576012)(316002)(8936002)(8676002)(110136005)(66476007)(38100700002)(508600001)(31686004)(6666004)(5660300002)(36756003)(4326008)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y09DWUt6MjQvRklSNTMvWmtWVFAwd0VCTzFlYWsyY1VvNWdMOU05TERaYits?= =?utf-8?B?QVp5TnVCdEZXN2hMY0tyM1h5R0ZSaTl2VmQxNjlYaDg1aC94RFl5ZWYzaVcr?= =?utf-8?B?MDQ2M0dvb1hHMGhjbEFRRExXS2d3NDJnODMrdW53ZCsxTFY3RitxT0VMU2Jp?= =?utf-8?B?UWFLVWYwYnZETmIvTTcvT29XaFdqN3R4TkkrMGk0V1o2ZlZhMkwrRHkwNTlr?= =?utf-8?B?ZEZCTFJJT1pNbWp6RVMxRjU0WWJDS3dhYmZlSURENUpRcTJHV0xkU3AvbG5H?= =?utf-8?B?bzdoeVM5OE5DNlpHem03RmY4ZzdGRVVDWGhvQTNITS9taWhiYVRlNDZSVnBC?= =?utf-8?B?QkxPeHR0NGw4SHhIRGRibnpGYzFiUHhmdm1aS25GbGFHNm9xNURKSWV4dSt4?= =?utf-8?B?UlBhekVheUZuSEpMMDBwVVhWWDRZSGlLdWJqQmpnMVQ1TFZPWGFOQThRWUI1?= =?utf-8?B?emQvamltYU5aalJWVUFNdmlnZ3pLdjFsVU4xdVcrMnpzYU1ESGVXa2xOZERz?= =?utf-8?B?bnBNV3pRZVVVZnNlSEk1eE9aeVJ1N09sb3RuQXpVMjFyQVVsYTVkRTJwOXJ4?= =?utf-8?B?dU9RRlZoeVE2NUhQdE5iOUsxR2V3YzJqd05vTDN4d2RIL3JnWkM5cmF1Wk5U?= =?utf-8?B?ZFd2cHAwT01PQU9sRG1Ma0FGclBDYjE3djZWTHFra2dPeHBUOWNnRm5PZ0tm?= =?utf-8?B?RmxpSnRqTWo1d2F4aHE3OC9aQmltQVJSckgxLzhuZlMreXFRUEliYUpFWFFl?= =?utf-8?B?RkN2b29lM0dKbmZkSEtUWFRjVVh2OGtobURKbENSRW5TZk16L0o2U1YveXJz?= =?utf-8?B?YXNoRkdVMGZiQ3k0Q1NyTEdSeDhkelRQV2YxRzduRTVZYXRNTm1MaDFDVTNQ?= =?utf-8?B?S0VzYnM1MHgwWjQ5RW50QU9WWHRDejRwVndFalRCdzJ1U0w3bEFGck5oZHNW?= =?utf-8?B?QnhBRXhXZlpYS0s0UEtLWWptRllyWEdiTWFZUDc0eFBKVE42Y0JtdkZPL3Zz?= =?utf-8?B?Q0RjY3c4T1d0SlN4RjhOTzhoRWhUQ2xrZzBMdnJqa2lJZlhIR0VrdWg5Zk9P?= =?utf-8?B?SkV5L1d0cVZXQ2hiaWhoNmJ6VjRKaW8vdmFyU056a1Y5YXp2L0VoMkVXODhB?= =?utf-8?B?bHBYRDcrWXhpamVWaXRLOHhWMC9GQ0xCQmdCNmIzYnJQMUs4NTdGWTQveWVF?= =?utf-8?B?c3lJSjRLb29sQkR5azZJQ1o3d2hLSGQ4YkMxMSsxS2ZpS1EwODRCdkcxMmNJ?= =?utf-8?B?bjNvYVhTQ0lKWmF1cDQ0S241bG5wRnJKM2tZMDR0UEtEU2xhR1YzNTEyMnZt?= =?utf-8?B?azcrWkNMMlFkVjVGVFM2ODJmR1gzUU15Rk1RUFNmOEI4TVpVdlQrcm83MGlS?= =?utf-8?B?RHFUU0JkeXRoVXBMZHV4cVJpUkVkR2M1eVUxOWxtQzE5VG9OZjB4NkFEcE5v?= =?utf-8?B?VzJwWWRyS0dDVjljWmlTTk9HOTIxYXNqbTVYTGhHYWZleFA0MTZEV25RR2xC?= =?utf-8?B?KzdtY3BjSkFaOHNXWkE0bW5rQ0I2eUNoQVFqQjQyZWkvazZPQ00zZE9wUzYw?= =?utf-8?B?UENIZE4zZ3Q2YmRHYjdueEhQUkc5d0VqMmY2Und3Rk5DZ2dUaGFGdmNPZmtu?= =?utf-8?B?MzVKU0x1M2Voa0RscWpnenNvb0Z1RTFuZXVnTENzcDhQbnpXUmRoYlpUcXNP?= =?utf-8?B?UVBoOVBOUmhncFJvUVJrQlRHazkzZEZyRU9kbnhXL1I4SUkyS0daeGdtQW9w?= =?utf-8?B?eFRsZ2hKWXVQL29WbktFczA0blRGZDFVWjI0TzFKZlc5L2s1Mm1VRCtFWVhx?= =?utf-8?B?dW1CVUtSUVFycUFFelRycGVSTEhkUWRoUW5INzZIRmRvWHJaSGY5UlhVcDlK?= =?utf-8?B?QjR2U0pHeWM3OXg0ZmtESjZVWHo5bnZNS05remZTVnlwSktzMk9rU3ZLMFdN?= =?utf-8?Q?M57LR+IsiUc=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 674449a8-8fa3-45b7-f112-08d995584aa9 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5047.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2021 12:34:29.4406 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: david.hunt@intel.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5916 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v7 2/5] vhost: implement rte_power_monitor API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 19/10/2021 5:38 AM, Xia, Chenbo wrote: >> -----Original Message----- >> From: Li, Miao >> Sent: Monday, October 18, 2021 10:17 PM >> To: dev@dpdk.org >> Cc: Xia, Chenbo ; maxime.coquelin@redhat.com; Li, Miao >> >> Subject: [PATCH v7 2/5] vhost: implement rte_power_monitor API >> >> This patch defines rte_vhost_power_monitor_cond which is used to pass >> some information to vhost driver. The information is including the address >> to monitor, the expected value, the mask to extract value read from 'addr', >> the value size of monitor address, the match flag used to distinguish the >> value used to match something or not match something. Vhost driver can use >> these information to fill rte_power_monitor_cond. >> >> Signed-off-by: Miao Li >> --- >> doc/guides/rel_notes/release_21_11.rst | 4 +++ >> lib/vhost/rte_vhost.h | 42 ++++++++++++++++++++++++++ >> lib/vhost/version.map | 3 ++ >> lib/vhost/vhost.c | 38 +++++++++++++++++++++++ >> 4 files changed, 87 insertions(+) >> >> diff --git a/doc/guides/rel_notes/release_21_11.rst >> b/doc/guides/rel_notes/release_21_11.rst >> index c298844898..a497674352 100644 >> --- a/doc/guides/rel_notes/release_21_11.rst >> +++ b/doc/guides/rel_notes/release_21_11.rst >> @@ -80,6 +80,10 @@ New Features >> Added macros ETH_RSS_IPV4_CHKSUM and ETH_RSS_L4_CHKSUM, now IPv4 and >> TCP/UDP/SCTP header checksum field can be used as input set for RSS. >> >> +* **Added power monitor API in vhost library.** >> + >> + Added an API to support power monitor in vhost library. >> + >> * **Updated virtio PMD.** >> >> Implement rte_power_monitor API in virtio PMD. >> diff --git a/lib/vhost/rte_vhost.h b/lib/vhost/rte_vhost.h >> index fd372d5259..6f0915b98f 100644 >> --- a/lib/vhost/rte_vhost.h >> +++ b/lib/vhost/rte_vhost.h >> @@ -292,6 +292,31 @@ struct vhost_device_ops { >> void *reserved[1]; /**< Reserved for future extension */ >> }; >> >> +/** >> + * Power monitor condition. >> + */ >> +struct rte_vhost_power_monitor_cond { >> + /**< Address to monitor for changes */ >> + volatile void *addr; >> + /**< If the `mask` is non-zero, location pointed >> + * to by `addr` will be read and masked, then >> + * compared with this value. >> + */ >> + uint64_t val; >> + /**< 64-bit mask to extract value read from `addr` */ >> + uint64_t mask; >> + /**< Data size (in bytes) that will be read from the >> + * monitored memory location (`addr`). >> + */ >> + uint8_t size; >> + /**< If 1, and masked value that read from 'addr' equals >> + * 'val', the driver should skip core sleep. If 0, and >> + * masked value that read from 'addr' does not equal 'val', >> + * the driver should skip core sleep. >> + */ >> + uint8_t match; >> +}; >> + >> /** >> * Convert guest physical address to host virtual address >> * >> @@ -903,6 +928,23 @@ int rte_vhost_vring_call(int vid, uint16_t vring_idx); >> */ >> uint32_t rte_vhost_rx_queue_count(int vid, uint16_t qid); >> >> +/** >> + * Get power monitor address of the vhost device >> + * >> + * @param vid >> + * vhost device ID >> + * @param queue_id >> + * vhost queue ID >> + * @param pmc >> + * power monitor condition >> + * @return >> + * 0 on success, -1 on failure >> + */ >> +__rte_experimental >> +int >> +rte_vhost_get_monitor_addr(int vid, uint16_t queue_id, >> + struct rte_vhost_power_monitor_cond *pmc); >> + >> /** >> * Get log base and log size of the vhost device >> * >> diff --git a/lib/vhost/version.map b/lib/vhost/version.map >> index 8ebde3f694..c8599ddb97 100644 >> --- a/lib/vhost/version.map >> +++ b/lib/vhost/version.map >> @@ -85,4 +85,7 @@ EXPERIMENTAL { >> rte_vhost_async_channel_register_thread_unsafe; >> rte_vhost_async_channel_unregister_thread_unsafe; >> rte_vhost_clear_queue_thread_unsafe; >> + >> + # added in 21.11 >> + rte_vhost_get_monitor_addr; >> }; >> diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c >> index 9540522dac..36c896c9e2 100644 >> --- a/lib/vhost/vhost.c >> +++ b/lib/vhost/vhost.c >> @@ -1889,5 +1889,43 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id) >> return ret; >> } >> >> +int >> +rte_vhost_get_monitor_addr(int vid, uint16_t queue_id, >> + struct rte_vhost_power_monitor_cond *pmc) >> +{ >> + struct virtio_net *dev = get_device(vid); >> + struct vhost_virtqueue *vq; >> + >> + if (dev == NULL) >> + return -1; >> + if (queue_id >= VHOST_MAX_VRING) >> + return -1; >> + >> + vq = dev->virtqueue[queue_id]; >> + if (vq == NULL) >> + return -1; >> + >> + if (vq_is_packed(dev)) { >> + struct vring_packed_desc *desc; >> + desc = vq->desc_packed; >> + pmc->addr = &desc[vq->last_avail_idx].flags; >> + if (vq->avail_wrap_counter) >> + pmc->val = VRING_DESC_F_AVAIL; >> + else >> + pmc->val = VRING_DESC_F_USED; >> + pmc->mask = VRING_DESC_F_AVAIL | VRING_DESC_F_USED; >> + pmc->size = sizeof(desc[vq->last_avail_idx].flags); >> + pmc->match = 1; >> + } else { >> + pmc->addr = &vq->avail->idx; >> + pmc->val = vq->last_avail_idx & (vq->size - 1); >> + pmc->mask = vq->size - 1; >> + pmc->size = sizeof(vq->avail->idx); >> + pmc->match = 0; >> + } >> + >> + return 0; >> +} >> + >> RTE_LOG_REGISTER_SUFFIX(vhost_config_log_level, config, INFO); >> RTE_LOG_REGISTER_SUFFIX(vhost_data_log_level, data, WARNING); >> -- >> 2.25.1 > Reviewed-by: Chenbo Xia Acked-by: David Hunt