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 B3D5DA0C43; Fri, 22 Oct 2021 15:41:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 98BD34114A; Fri, 22 Oct 2021 15:41:58 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id C7FA141149 for ; Fri, 22 Oct 2021 15:41:56 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10144"; a="292765408" X-IronPort-AV: E=Sophos;i="5.87,173,1631602800"; d="scan'208";a="292765408" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2021 06:41:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,173,1631602800"; d="scan'208";a="527947452" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga001.jf.intel.com with ESMTP; 22 Oct 2021 06:41:55 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx601.amr.corp.intel.com (10.18.126.81) 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 06:41:55 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) 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 06:41:55 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) by edgegateway.intel.com (192.55.55.68) 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 06:41:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MuLdPpkixUQc5HTcZ4TcqoU5ceoFJpaZT3otTD9IPUjYeFiq85iLsT6S7j0WOb1Gc22V0sfRfpYSnLy67QZLzsVcG/XriAIJKAcAv5gy/O4Jq2+K/Wi8JnZguN1uAMhJgxwkH2pAyy+sW97PITh+XFkjLnLwL1OIL4lXnMBrE3l5Q4VANaEmnFT+Mmv0pNkD/Ur17h+0SwyHRrsWQD9q4vB51j5OjG+4hzFnqGSbOB0BqK1uGbEmB7+1KCgZoo/3zLdXDzcpkUG6zdQFBj4khJSGZA7Z5Ey4R/pNSeMOPPKuVbi1cuNtzf9e1cQOBiNId/2aVTHF7E7yHN1uR8bxQg== 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=MDxcgVJya7OVw24ST2wm6imY9HpZ7WX0GU1vZWsBllo=; b=C1xs/UMNib0if8/7qTpZ2W8loY3EYpWj3wksThLwK7oHL0tzJi4tmZ/d9RQuhbTdDulrpgOGy7Dirugg+NQgtgN+SwrsQec/nbxjHsBgbdXQddSXPYCdK33+NTNn1pHaGFmMqZrE9CTmJ5ELLT3tsGyCwB54Bdcs/z0swtf1di/bqXxkjHSAxh3UZPdrcYOgJqfYny7SjeZecXtFkZ6JR07s4kvlTxQGKkNIGaAd5ZbecRI/M9D7fEx+2iWScKu9xM5AtghlTYCUrVeficReCTGuyJGYv79RJLYRP1mPPJNQs/nWiccf5mEXeLD8VzQTEWf3ga4gxdq20l/0SAVMOQ== 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=MDxcgVJya7OVw24ST2wm6imY9HpZ7WX0GU1vZWsBllo=; b=mkyILcu0In4w2+y9lCexfGWY4Z52duFmQQDawFb0iKkTSqcRi766S5oSwpDX3m2lFfuDz0ypxYuVrZHtKVeEkfabdPqC1wKNXeUeR98/sSuSgMoRw2JCi6DVIinZ4/L2pIxxW1qMB3l1QTHO+rr4DlOCezRc1ftY1K63Tzhzq0M= 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 PH0PR11MB4886.namprd11.prod.outlook.com (2603:10b6:510:33::22) 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 13:41:51 +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 13:41:51 +0000 To: Miao Li , CC: , References: <20211015170911.478394-1-miao.li@intel.com> <20211018141638.5916-1-miao.li@intel.com> <20211018141638.5916-2-miao.li@intel.com> From: David Hunt Message-ID: <1fe8e437-6642-d16a-fe9f-9abf10570f82@intel.com> Date: Fri, 22 Oct 2021 14:41:45 +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: <20211018141638.5916-2-miao.li@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB X-ClientProxiedBy: DB6PR1001CA0009.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:b7::19) 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 DB6PR1001CA0009.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:b7::19) 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 13:41:49 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a527b866-73a7-4a32-1b55-08d99561b3b2 X-MS-TrafficTypeDiagnostic: PH0PR11MB4886: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2150; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +RY5PszrJG/C+zb3XQWb8ZluL1VS/cXB5bTMFJhXm5m8tLUADN0nKWYCloKLVs6PG/eWTHAsZeB0bWa+Snfzx3bAh59yMf851oMY/2ObodXcz1nV1wMFXU9znLClpTkGYU2+FL8Bl1Lcc9hrc5ZpqoW8IHSSuQuuMyZYPqYNmzCeddi3EOpfUOw0bQcd9x3PWx7XjttO1yXg1pquirHI8j8eznPR5ORLa4hw61M3tN8rbeqEgPic3hX5dhUCTfqjMKlyqt1rGoc/FSdqcioHOTrlqKjZbm6uPtP/B9yjivyTBgzL1h+fJXl0b07+1DJerpKdvogYEQic7SZmDdDORB79i9JbwOZZEpPPGfRJeX6nimgeq2dkzqVU767TdDxnRrFY3x4oBAT3ZV/+vnIwUHB8DIHAmi0uFbD6YaRRRaTXL9rvmAVIqWdtccDpmKtU0WzmE8yz6kGZlbVCu0y2Vbh4XuQU6RKvFy8xCgIwaTa64Z4zIcxUKsOi7kQRoZVS8AD4ijL+zCFfVHxb9FG5RcLCmG4dWKwTKG8cEeEmP+nLSRXM9ffsv8+AmODrKKdmqxPF59sF2NbJ4zKtubEE+X0+I1o9sRIq5QMCmMlxrcjtanXhVPJ1CF9BNgNhtxZt+4to9dWNHF44/CAMHEYGzH+O6rT6v63mgZhdI65nL7d+6saQyouKPlQ8WVaup04ae0cShhSBgPXojBRQrl1HUU6++WSp7hvoes0kzHmV2Ww= 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)(2616005)(8676002)(956004)(2906002)(8936002)(44832011)(26005)(6666004)(16576012)(36756003)(31686004)(66946007)(38100700002)(508600001)(5660300002)(6486002)(86362001)(53546011)(31696002)(316002)(4326008)(186003)(66476007)(66556008)(82960400001)(83380400001)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SGluaExIaEVnVVk4NnhKWlRWc0xUVVdwSDhUWnlyNDNNblN4VDlHQWJkVE5z?= =?utf-8?B?b3ZPYkNUVG92dlVJbzkvaXpMc2VvNkV5MnZaYjJ3dDB4V2VoN281WXFSdWds?= =?utf-8?B?UnJjbFFnaHF6cGRueWhPUjVpWnA2K0tIRHphWllEQ2crR25BdHFKQjNlMi9E?= =?utf-8?B?ZUFqWEZTc0Y0SHRHTXBwekkzSkdzTlVROW9aL1NnZmNXWEFUL1NZMStPRWVn?= =?utf-8?B?eXJvVW1lTHVUczdWNjFSRkNwUlc5c2VXN3huWk83YkJjT2lUeWFkZVVCS3R3?= =?utf-8?B?cXNFVElYN0MzMnpZanE1OWFRcE1iTzdyNXhoK0xYcWpUVWx4L2VQMUxEUGhK?= =?utf-8?B?eTFEYWNoQTltY3NvQU9sdXo0SSt0V2VyWFlYTkRBckRLVlZsU1JQNHdQaDA0?= =?utf-8?B?eTVvRVRxOGthb2pMcDhDRk5KODRIYnlwcU1XWG5xSkl1QThQVzN1b2RDTXIx?= =?utf-8?B?SFJ1UUY4eWdFeC9uZ3JJb0lBYmVCT0pFZVJyMTBET0puZ2lNdWEwL08yYkxT?= =?utf-8?B?OWFvNk4wTEt0N09lVE83dTJKSXd6L1JodFpFanBRdlY0SjRUdkVYUmd2TldR?= =?utf-8?B?cjBFd29mRU1hdDJxZWRRbHNqSm5oSmprdi83Vit0azdTanoyOGFpQlFCWmF5?= =?utf-8?B?bk83VFBiamUveTd0MER3cXd1K3BGa3IwQ0NlYzFPTVJ0bFlQaUhod2NZZE5E?= =?utf-8?B?eVd0RUI5Z2U1aEhoMzc0Yk5SU1ZNdmpFb21IZEpmdGxETm9NdjFyTytKdzJt?= =?utf-8?B?a0lvcFMraUp3U3E5WmRWUzVaKy82bE1PcDRCNkhDamxDdG85RTlZeVcxZzBS?= =?utf-8?B?cTVKUWJqOGlqTWdSaVR5cm95TVNNZlJ6d1R5T1B6eEVQbCtGNkxEZ1FqTjZq?= =?utf-8?B?b1pneUpkSGZsTkFKdzRwT1g0bURrNGJzdGFuaGxQQ1B0ekxseGhkNWhzVzF4?= =?utf-8?B?UjVZMzlOdnh0NXJwbHJjcjVkRW9Yb1hjUDQxektRT3FpcnJBbkhGQ1ErMjh4?= =?utf-8?B?VlRnRDNwRy9CWDk1RXcvZmFxbi9OQnBCdGJ3bEdNMzd6ZyttVmFZV2w3M1lu?= =?utf-8?B?cGpGM09zS2RBbU41UDlKV0VNaXozNUJwN1hFZWNHUHFxakR5MS9IMnNqYll0?= =?utf-8?B?TWlOK0VGZkdWUzYwL2t3cTlKT0NVNUJZUnlrZDNpeXA3S29zeTNXK2dsN2E3?= =?utf-8?B?Mmc0Tm5pTHRWRnR2WUdEUWJSdjNucXc4Y25yWEVmR3JFM1pJd1RNa0t2MXEr?= =?utf-8?B?M25Qbk9HM0twUEUvOFdweDlSRk04emt4Z20rZXlmWjZlZDdod2M4YUcxdENV?= =?utf-8?B?YnJDVjdXUTJIdXR1WkhUL2ZSYkVOQS9KMm9QdStkbU4rTWFPdkU4eGtpSml2?= =?utf-8?B?ZEFjWlM0TTJjdVBXYTBmWWRrallaZTVML2dmYmZjUENOK2dyWUQ2SGRrU1U1?= =?utf-8?B?djZXdUp0NHhBK1BJZUxLRlpBQ2Vpd1F5blZOa3huSkNDTWdESnFWSGNmYWNx?= =?utf-8?B?emVPYURwZGtuZ2FmU3lGRXUvSEY5VVZOeDA4cURZamZ2ZmtVNHJURDN6bFg0?= =?utf-8?B?ZExCQ21pYjZBUDZ1c0dCcThCVXhDNldBS1Y0Mk1BVGk2ejlTdmJqS2tqeXlH?= =?utf-8?B?ZWpubU94Vk9oSmlUTVh4dTBjeU1jMFZreTMzcE12cE1GM0JZUWRGYnpxcW50?= =?utf-8?B?Qm5HbjUzOEtvVVdPdW9pQlNFdk4wTWQ4YU83K3FrYzg0OTFlSEl0LzE3MEpE?= =?utf-8?B?R0o4VDI4TmppaFVNekdtem9vZ3hjajQzUWp5blRjRDlveDF4NWFOK0JuWFlX?= =?utf-8?B?NnoybDZHRnE2Zkh1Y28yS1MvaGpGaThHVTkxcFJjZWFOR3BxeGdMZmQ3TDRw?= =?utf-8?B?NjY3aC91clVvc3NXWVFucHY0UUhKUDRZTUVVRVI0U1hWeFYwOEI4RDU4VkFU?= =?utf-8?Q?wQkEWSAzrHU=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: a527b866-73a7-4a32-1b55-08d99561b3b2 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5047.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2021 13:41:51.0429 (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: PH0PR11MB4886 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v7 1/5] net/virtio: 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 18/10/2021 3:16 PM, Miao Li wrote: > This patch implements rte_power_monitor API in virtio PMD to reduce > power consumption when no packet come in. According to current semantics > of power monitor, this commit adds a callback function to decide whether > aborts the sleep by checking current value against the expected value and > virtio_get_monitor_addr to provide address to monitor. When no packet come > in, the value of address will not be changed and the running core will > sleep. Once packets arrive, the value of address will be changed and the > running core will wakeup. > > Signed-off-by: Miao Li > Reviewed-by: Chenbo Xia > --- > doc/guides/rel_notes/release_21_11.rst | 4 ++ > drivers/net/virtio/virtio_ethdev.c | 56 ++++++++++++++++++++++++++ > 2 files changed, 60 insertions(+) > > diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst > index d5435a64aa..c298844898 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. > > +* **Updated virtio PMD.** > + > + Implement rte_power_monitor API in virtio PMD. > + > * **Updated af_packet ethdev driver.** > > * Default VLAN strip behavior was changed. VLAN tag won't be stripped > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c > index 6aa36b3f39..1227f3f1f4 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -74,6 +74,8 @@ static int virtio_mac_addr_set(struct rte_eth_dev *dev, > struct rte_ether_addr *mac_addr); > > static int virtio_intr_disable(struct rte_eth_dev *dev); > +static int virtio_get_monitor_addr(void *rx_queue, > + struct rte_power_monitor_cond *pmc); > > static int virtio_dev_queue_stats_mapping_set( > struct rte_eth_dev *eth_dev, > @@ -982,6 +984,7 @@ static const struct eth_dev_ops virtio_eth_dev_ops = { > .mac_addr_add = virtio_mac_addr_add, > .mac_addr_remove = virtio_mac_addr_remove, > .mac_addr_set = virtio_mac_addr_set, > + .get_monitor_addr = virtio_get_monitor_addr, > }; > > /* > @@ -1313,6 +1316,59 @@ virtio_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) > return 0; > } > > +#define CLB_VAL_IDX 0 > +#define CLB_MSK_IDX 1 > +#define CLB_MATCH_IDX 2 > +static int > +virtio_monitor_callback(const uint64_t value, > + const uint64_t opaque[RTE_POWER_MONITOR_OPAQUE_SZ]) > +{ > + const uint64_t m = opaque[CLB_MSK_IDX]; > + const uint64_t v = opaque[CLB_VAL_IDX]; > + const uint64_t c = opaque[CLB_MATCH_IDX]; > + > + if (c) > + return (value & m) == v ? -1 : 0; > + else > + return (value & m) == v ? 0 : -1; > +} > + > +static int > +virtio_get_monitor_addr(void *rx_queue, struct rte_power_monitor_cond *pmc) > +{ > + struct virtnet_rx *rxvq = rx_queue; > + struct virtqueue *vq = virtnet_rxq_to_vq(rxvq); > + struct virtio_hw *hw; > + > + if (vq == NULL) > + return -EINVAL; > + > + hw = vq->hw; > + if (virtio_with_packed_queue(hw)) { > + struct vring_packed_desc *desc; > + desc = vq->vq_packed.ring.desc; > + pmc->addr = &desc[vq->vq_used_cons_idx].flags; > + if (vq->vq_packed.used_wrap_counter) > + pmc->opaque[CLB_VAL_IDX] = > + VRING_PACKED_DESC_F_AVAIL_USED; > + else > + pmc->opaque[CLB_VAL_IDX] = 0; > + pmc->opaque[CLB_MSK_IDX] = VRING_PACKED_DESC_F_AVAIL_USED; > + pmc->opaque[CLB_MATCH_IDX] = 1; > + pmc->size = sizeof(desc[vq->vq_used_cons_idx].flags); > + } else { > + pmc->addr = &vq->vq_split.ring.used->idx; > + pmc->opaque[CLB_VAL_IDX] = vq->vq_used_cons_idx > + & (vq->vq_nentries - 1); > + pmc->opaque[CLB_MSK_IDX] = vq->vq_nentries - 1; > + pmc->opaque[CLB_MATCH_IDX] = 0; > + pmc->size = sizeof(vq->vq_split.ring.used->idx); > + } > + pmc->fn = virtio_monitor_callback; > + > + return 0; > +} > + > static int > virtio_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) > { LGTM. Acked-by: David Hunt