From patchwork Thu Apr 10 03:40:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jackson.lee" X-Patchwork-Id: 880758 Received: from PUWP216CU001.outbound.protection.outlook.com (mail-koreasouthazon11020083.outbound.protection.outlook.com [52.101.156.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 630E11F12F8; Thu, 10 Apr 2025 03:40:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.156.83 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744256421; cv=fail; b=dfyEyN4HKuyjXu5gdMgaid3APcy1/45BeUznoIJNRgLvSQ6h6dwAcZC4e6K7L54O3qZF5Vx8Ydu7uJIKu0rQSOaddZ0p4Jehiu8DMvw+UHDwT5AZ9JWxidopec3550jgJDqaaK3Fs+x4cBIq94RQdTyNO9oiNby1szR73O4ujuc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744256421; c=relaxed/simple; bh=xg/PA/9gRUsESu99tTSwUeXsaGFNFWmJRfwJNaKyy9Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=BJOu81y1OCISPws9lhe5SddhatI94bRmgYhRNOjsVqpvtBuhNKRwVPDIVAEm3IWAuDXdsGj6AsrUC9QcnIJZVg1vHUxWjy/QSI7UFAgSVOuDJmJLEujNcJAqCkU0onifEMf9VZc1H1bAOYFZGwQkx0LGnXrEyC7BwZh9o5EJtC4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=Z00Isu0p; arc=fail smtp.client-ip=52.101.156.83 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="Z00Isu0p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DcQ06B4Sw+E2x01bmYL9FGDRRgdYWFZdk5i8X+oF7uj1ytURzd1kVZr9aQCVH2o0arJqDlB7s5eGCoL0T9TL74kZ65f64n/d8Y2u4yUOc+NTBUC/bYIR7rEG8INVhnGqd9PTIM79/hp0unT8em5rAZdTYogJ+tuOTfm8Pc1EimDpIKBZYJofiggdbqFMel/oJDTO8EmrLTo/5J4OOIIJgakwbsQ49n2kIWG6GTHUl27uyKpLvkkiMjDk48VTM3DVaOJ7g3QoTclH3VrcGbnBlRlfJrYzUwCIYNqMWa7eIn9iVnrgedokR/+KZXv0zxns3CrdyLfUXwum+8xUHNFlhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0FT1C53ahmCMpbiN6CEJD58lrxkwXSk8IKWpcgRM+nM=; b=k0H8v9EaMJLoShg6RJ28AM21HbBB8fZuGLFPuggAIvjYMAf5C6sIXVKU/BFF6psUHTyrgSDVeJ6h7Wz/WACY9EZyElrcypvKE2gGSNLRHjLSpQtGj+u637EVr7u1CRi2RNAQh1wd7tVrVjRMp0syW1vijYXmz1z6YJ+QuaN4ru/AuvouMvD/JjB2hh8nBKedXNIN+REPSTbl/LTIhJjh9tMPyBVDk58zLqdwWoWEPpbQyx7tiBBU8R4FLjfEAzJJnivdz0KPhGax+Ps+yZWStSKSFpV67WaUBgMKX6AzBrTSB1ZH0ktiQpdQk5hW7RG4sHYGdKEFcpdWrmNrQK+kVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0FT1C53ahmCMpbiN6CEJD58lrxkwXSk8IKWpcgRM+nM=; b=Z00Isu0pTuTbcz1NxxFLlQxwqFAzwrXBcxhiSSBFVRvk/8bPRdoth3ow1RCcPI0MFIP+FCbEwoMrCq/t6giPux6N0jrxQq1ZdL1WlGzZcjAt/ws3v0YBvzaX2tznuPZYtkTsZTyuQ8voYLSlvrbI3XYpYmBO1pxP3O1C6gpLtOI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from PS2P216MB1297.KORP216.PROD.OUTLOOK.COM (2603:1096:301:73::13) by SE1P216MB1318.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.23; Thu, 10 Apr 2025 03:40:13 +0000 Received: from PS2P216MB1297.KORP216.PROD.OUTLOOK.COM ([fe80::d095:716:2d14:f386]) by PS2P216MB1297.KORP216.PROD.OUTLOOK.COM ([fe80::d095:716:2d14:f386%7]) with mapi id 15.20.8632.021; Thu, 10 Apr 2025 03:40:13 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [RESEND PATCH v1 6/7] media: chips-media: wave5: Reduce high CPU load Date: Thu, 10 Apr 2025 12:40:01 +0900 Message-Id: <20250410034002.88-7-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250410034002.88-1-jackson.lee@chipsnmedia.com> References: <20250410034002.88-1-jackson.lee@chipsnmedia.com> X-ClientProxiedBy: SEWP216CA0051.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bd::12) To PS2P216MB1297.KORP216.PROD.OUTLOOK.COM (2603:1096:301:73::13) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PS2P216MB1297:EE_|SE1P216MB1318:EE_ X-MS-Office365-Filtering-Correlation-Id: 390bbf4a-fec5-4d84-122a-08dd77e166ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|52116014|7416014|376014|38350700014; X-Microsoft-Antispam-Message-Info: ZOP86SHdT29koPF7ZdIbuE1TYlQXb0foTZUulTjoOOr2dSLWEKGoCkq91PcVnb8x7RFsTHLjxkB7nDS1/bmxW3OSs8rH7TjBW7yA6KTaGpQLgk3VWW8UZ+dZ1o7catjt1OhFjtGSj37ha96T5OjQQLSTkr/LQsT9nvl54MFBZpvWXZpmWsXk1QOesuj+C/HHaelxqzqFobtEbw9hoGARO1k3T3EoOO/KzED7cGphcKl4SMGs/zQwZoPmtvV17kqTz2d4v3Y7FYsKwgRVLWD5iGz3rqzwcs67Guqgn0KFQzKAenBbRPoaLg8En+FOfd37YDF7y+4OALHnBpogyzZfoNoei1QC2/1ZdU09CqPr3sxE8xmmVwkBy59lqMGe8UZ8w3RMamHWhd7wPm3emNzSwuaHWWUH2HvPJu5Bbu/KLZhb9NwVDsBXHXlBqTgjq9VnPyQmfJKO+EOaxnDE4WcjJ+T1Y78FLWCH5Kl1pPiYjC+/cQtZqCh+GjDwLF96ohD5kSCTCbM9xkSD13q/yMrsJpmc+0v4xsDg1QU5U64x8do0JC8wx4d3QD5sZfLNBqpW8kK8IlI2cucAHaHQ6gGmrTVWeh6uwabbkC+YBUAtpE6yYNoBdvLqADsgTTJwVnhs8ZQzIs1CKL3ihHiM3LsEl63oJ/apsZBtDBzXjHl9GFjhqw6Nc65vNwdvwNMWQQXsdT0+jDnUQtPnlR7oKxHir3k27ZI0wW8nHOvSCq/DKa9vrVXE2yatrRBCtZSJWpCvJl3y/uYCb8ZRdqJBWi+i05Cs+ZtAOjOrpLbjQwt9sbRCPwCAaoHHu8APO/BNP+y/7hCujhPoCRDApp9lXXsQO139wfzJlT0W+QzUNeBmqJC8MISMfBnRf69bBAmfuNlGevOi3m2B4iLM54VQMRryFuyb0+udw+l8i2h3UwJ7hWhyzmEfm2J6+cKjSEIukDD0PbF3gwrBGjOPRfXPeeODcc8HbjKth9zjwReu1yno9E6tw8I8M7LO/9qQxYD3AfHSrd4oNSai3oNu/dzoEMVH5NJxHNjLV3ZUtX38ryA7DNn7CFMtmeEhaHqt91y/ZyzPv+AeHq48iRsWHZzQP8mh+IDi282HOOuevQx71KLOantX4m3olszYtm7yOxosP4Es2z9ngtp42k/3lyArnt5Du84sbr1iWohVTz9VmyAVjo4DsUVV8yzQa2cbf2yPokH5fLyyS3Y918bSZp6i0HfPizm4bTFNHBF+mvwrsnSMHVIJwkzImP6jCUR78wWeJMQQd438yUyzSKeXABdPOTxFytJB4kdAVBRJS0ulpIkYjPBzPwN9IwmQRl/xKcQp/9ITziLh6/v+iiVusSxIamkV3dpMdX2uxAGEBsxWUhPRqSrCpHpK8HXS8YAeKf/nlyH5YyQtNMmprVVCqmwU8/OdayMf3hxkzvur7XFjIAeFTu0outunh+f7HDfBepk/eMH/7ymaxgoh5jjnv8wNNKYgvw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PS2P216MB1297.KORP216.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(52116014)(7416014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XkfJlZjor7zwuWFV70bK4tu4FP0oqXNbEgC98hxWa/uvbsks5kyxFNULE3Q9gRMw6V6hNlxq8blm5g8pzKt7+n4um5MpP1NhIyoyOcjn4EaWW6/+vZ8l9/Qp1oWFRaYAEUS4trMbadW8SpVYSDScwevbjCw/VOS9eji3b83Frne8+uln0KsOdtdrMv0KWfU1Z5Tn7KL7b5hFM0fgHKfRYqz9EH1dYRzDqw0LEDjYl2R4cZ+q8Of3Cd3SKUfHjb/3nkah3gsTiRGobRO99VBBVdQpd1bFo8QvFC9oqrn22xggtdTvD8xv7BsAodAKcng0iQ05DQ3mEfDCOakcAvKbQDbjMUYPi02w5LvFcZEQD9cnrx4M/nYrtbhRu9KkxPwQuB8Qf1ISRDSCpZldLKeZoheP9zqkzPEGC67Cyun3upi6pxiN5sjDeVzJNc7PXvc0lyGBkjX+W/SuKSUhps/evrG807D8vYrxqg9yp5kPQc+ueMW4oKQqtBwZ1raBBTCF2t2ul93se5f0DUmiBtmFKW/0AF7EfaVwNYf6mR5DSSjL90vKH1rc6E21SgxGr+ytvFFTv5yvGYhhEnLq4+AHaJl2M2diZg9fGnv7y8TwboEtLBF8242p5mFyjZ8ERmciSsNbK36l9s57396u64eNJYI2uuOH+TJvDzrVy/QvCtp23QrqT9xZrm3i5yVkFhxUb3Oi8qb0/jY1GFvRizH9qm1lYG4OK0dPOwuZ6evnlNycL+UGd7nwJsOpj2uVPOqo47v/oyw+8cgn8TDF6b5E2Q9vgAvH46gmfyx6a7djOUU3rPctxc/B1eM5VoCX914CQkXoGwctTxSAnPtGr5gNQVn+IlSzdMCAKbiJmOkk2XdlbGqOfdsSzI5JviStUQWCiU2QPorjJydLvc1LX2qwfO1yh/l//01kRiD9ZZZbWkSnvKi74s87YUBOkbXQRDf5vtUv+ekluzTweyt3RfZjq1ttov3Vk4660JfHhrzGinaG73zvYlsqZNC26KCzKwlmntWCHdrvlxMjQKAua+aSdV3wdM6wdB29UGdg/ebyEaLeXdOXiWgD8Im72OHzVQ9TUGxh/aRImT/vop+pU4U+4139+CPPNXMXx4wewVcWT8H5ruMv6YtznkqrNL1a1gZiKXrr82Lny5HhKA/zb79XreBTzn9IjqAweJUqWHdsg9oquokb09sKZnuNXnfCsQiXMVdfsN3nO8KniYNKo+jTAo1vr9p8AhDTzsXwAVhS80MBW96UyYr0fFWhbmND95vvPCaEAj0y2pARb1mwGVT8Ou28owJYdflP6FoLY87+/6ZnOOerlLP4fEduk94JKFPjXOvTSDt4Jn3CATX+kq+n1AnGPeRy5P5Ay5MkNKjNEM2vvl0vMWZdLfZuqukAF0jyRi2qMCjSuODnN/jaibf55OITjeRIJm2ITjh/1TGIlnPZab5oFnguBdOmGKsKP6St20u1Lw4Ucaj4qErbav6jixZA7JBQRTrXQvMGxPie3sR/2+K1PBzmIDye2jeTOMv9cfB/5WiDxnNeuF3ghypC/msH6va+mSfrYdajIJIqbvhs0GOJGblgaqN7Zr+2YP+XtuLZHkustBlecO5l0hSRoA== X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 390bbf4a-fec5-4d84-122a-08dd77e166ba X-MS-Exchange-CrossTenant-AuthSource: PS2P216MB1297.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 03:40:13.2676 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nMDO8zzt2Id92bmQY0FulvIWDMTL0ZETEKecIO4CUzlnpxWzri8DcaFTL2TcmL43ulOCFGNfnVEaBTujAEF7s+0r2rJZiAddHA/Xqld1uNI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SE1P216MB1318 From: Jackson Lee Since applying changes for performance improvement of decoder, there was a problem related to high CPU load. CPU load was more than 4 times when comparing CPU load. The root cause was the device_run was called many times even if there was no bitstream which should be queued. Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- .../media/platform/chips-media/wave5/wave5-vpu-dec.c | 12 +++++++++--- .../media/platform/chips-media/wave5/wave5-vpuapi.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 485320db9bdc..58340fddcd04 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -1280,10 +1280,13 @@ static void wave5_vpu_dec_buf_queue(struct vb2_buffer *vb) __func__, vb->type, vb->index, vb2_plane_size(&vbuf->vb2_buf, 0), vb2_plane_size(&vbuf->vb2_buf, 1), vb2_plane_size(&vbuf->vb2_buf, 2)); - if (vb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + if (vb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { + if (inst->empty_queue) + inst->empty_queue = false; wave5_vpu_dec_buf_queue_src(vb); - else if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) + } else if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { wave5_vpu_dec_buf_queue_dst(vb); + } } static int wave5_vpu_dec_allocate_ring_buffer(struct vpu_instance *inst) @@ -1474,6 +1477,7 @@ static void wave5_vpu_dec_stop_streaming(struct vb2_queue *q) dev_dbg(inst->dev->dev, "%s: type: %u\n", __func__, q->type); pm_runtime_resume_and_get(inst->dev->dev); + inst->empty_queue = false; while (check_cmd) { struct queue_status_info q_status; @@ -1592,6 +1596,7 @@ static void wave5_vpu_dec_device_run(void *priv) inst->queuing_num == 0 && inst->state == VPU_INST_STATE_PIC_RUN) { dev_dbg(inst->dev->dev, "%s: no bitstream for feeding, so skip ", __func__); + inst->empty_queue = true; goto finish_job_and_return; } } @@ -1737,7 +1742,8 @@ static int wave5_vpu_dec_job_ready(void *priv) "No capture buffer ready to decode!\n"); break; } else if (!wave5_is_draining_or_eos(inst) && - !v4l2_m2m_num_src_bufs_ready(m2m_ctx)) { + (!v4l2_m2m_num_src_bufs_ready(m2m_ctx) || + inst->empty_queue)) { dev_dbg(inst->dev->dev, "No bitstream data to decode!\n"); break; diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h index fd0aef0bac4e..f2596af08cdf 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h @@ -821,6 +821,7 @@ struct vpu_instance { bool retry; /* retry to feed bitstream if failure reason is WAVE5_SYSERR_QUEUEING_FAIL*/ int queuing_num; /* check if there is input buffer or not */ struct mutex feed_lock; /* lock for feeding bitstream buffers */ + bool empty_queue; struct vpu_buf bitstream_vbuf; dma_addr_t last_rd_ptr; size_t remaining_consumed_bytes;