From patchwork Fri Jun 30 10:23:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 114664 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10257823vqr; Fri, 30 Jun 2023 03:42:40 -0700 (PDT) X-Google-Smtp-Source: APBJJlEEtdrA7Rvca8d1Q8Tdj/+kSIDX4DUx48jWRiYe91+EUU1uk3Nrqq72IUI0sI/iNfpElU7k X-Received: by 2002:a05:6870:96a0:b0:1ad:548b:3bef with SMTP id o32-20020a05687096a000b001ad548b3befmr3035242oaq.14.1688121760166; Fri, 30 Jun 2023 03:42:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688121760; cv=none; d=google.com; s=arc-20160816; b=XGAMPBZgAypvMv3w3hyvvsbJDE7g8+vC45WFMYorIr3wYmo93p0ZtzIjF5HrNpgpPS 6FDKddmJ1iuQSIFrTy9zQEs6IxroskXOej5RhoN1qN1MKDysnIYq66CoCaVVsjJII4td fyCFIKDI84YMYbL8oQISIqeI0NuNlQIFs4O1YYQDwaeK7IGi8OzRWmYb0noAb7ORS/J+ pdfrfP+C7lTAzzcyjR+qacWP6GNTg4qVzlFmZPivr75Q8XzMNa6ZE0Et5YQAaZTchg8K CLQol/z479C/YdOjAneBusCgPagkzw8BYh+d7Hyp4QaKkyTvfK/vePwJVgvywgTAOeLx pG3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=qn2GXzSHm2puRLoEUfB5VD8PuaCwtWVklsWXBuMQskI=; fh=t9UHDBAL4n5Wk0IuJNme4Bussxb2u0dTQQaTsoa3lto=; b=t7ipuKcbCYP3CRTLoyOfd/YxBClN0nD87SKpj3+EJFg+uMg+rpf5ceKlu8m52Jkdxs 1L6qhW9HND+JSoSU1eN//fmL8VpFT0opKOXSujsvmxjIN4cr1Yp5Sab3zTb9/7liToND aUx2jU5yNpZHw8w4umWuH/0HD1Yn78Gc/pMvOTmo0CBwqBLe7UEoiXobAAv/cxpjQeNQ PqASxns/AVm+xZfLzBMRCQWyCQUdokJb9OjJH5pHi8CG5dNyTCMaOW6y8UmAPXjir565 7VMEykl+VCTJa7vtXchvCWz+GryeoxuribZbOAK1CcoeJNA/sRbvJL2difwqEJgfBclQ rahw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=cYajXrKD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 20-20020a17090a019400b0025bb9fc0fa1si12389453pjc.83.2023.06.30.03.42.21; Fri, 30 Jun 2023 03:42:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=cYajXrKD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232660AbjF3KXy (ORCPT + 99 others); Fri, 30 Jun 2023 06:23:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232569AbjF3KXu (ORCPT ); Fri, 30 Jun 2023 06:23:50 -0400 Received: from out-52.mta0.migadu.com (out-52.mta0.migadu.com [IPv6:2001:41d0:1004:224b::34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC92D358A for ; Fri, 30 Jun 2023 03:23:48 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1688120627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=qn2GXzSHm2puRLoEUfB5VD8PuaCwtWVklsWXBuMQskI=; b=cYajXrKD/mWxV/Z+Jm4eYwbPHJDv3nUOTsg/RsGMTvw1WR+pfx3rnZs6S1PFr20H9uyLro 535XMh8Eu4bJWVm1PidfeUMbHbggjRA2UGbcvjh3rmGzJjyuJsvaAhvEH70u2WpIK/ZGpY NEZn2JwtNrr76IP1eBuPtjRQ8qayp/A= From: Sui Jingfeng To: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Sui Jingfeng Subject: [PATCH 1/2] PCI/VGA: Move the new_state assignment out the loop Date: Fri, 30 Jun 2023 18:23:42 +0800 Message-Id: <20230630102342.134919-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770123962732731606?= X-GMAIL-MSGID: =?utf-8?q?1770123962732731606?= From: Sui Jingfeng In the vga_arbiter_notify_clients() function, the value of the 'new_state' variable will be 'false' on the systems which have more than one PCI display card. Its value will be 'true' on the systems which have only one or no PCI display card. Its value is not relevant to the iteration, so move the new_state assignment out the loop. For multiple video card systems this could be an optimization. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index ceb914245383..cbd06bbf9dd7 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -1482,22 +1482,20 @@ static void vga_arbiter_notify_clients(void) { struct vga_device *vgadev; unsigned long flags; - uint32_t new_decodes; - bool new_state; + bool state; if (!vga_arbiter_used) return; + state = (vga_count > 1) ? false : true; + spin_lock_irqsave(&vga_lock, flags); list_for_each_entry(vgadev, &vga_list, list) { - if (vga_count > 1) - new_state = false; - else - new_state = true; if (vgadev->set_decode) { - new_decodes = vgadev->set_decode(vgadev->pdev, - new_state); - vga_update_device_decodes(vgadev, new_decodes); + unsigned int decodes; + + decodes = vgadev->set_decode(vgadev->pdev, state); + vga_update_device_decodes(vgadev, decodes); } } spin_unlock_irqrestore(&vga_lock, flags); From patchwork Fri Jun 30 10:24:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sui Jingfeng X-Patchwork-Id: 114660 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10257328vqr; Fri, 30 Jun 2023 03:41:31 -0700 (PDT) X-Google-Smtp-Source: APBJJlHS+3uQm0HQBV6DK95vf6QiGSsy5+xzxTm9HEo13Jwuvm8bDSsvw9i2UIckHKKA1OWUJ7M+ X-Received: by 2002:a05:6a00:228b:b0:682:4edf:b9b4 with SMTP id f11-20020a056a00228b00b006824edfb9b4mr2151540pfe.23.1688121691513; Fri, 30 Jun 2023 03:41:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688121691; cv=none; d=google.com; s=arc-20160816; b=Y2UO2eXf69Bn3oL2Ru7Nm1/+Kz4aAZ3u1djuufUdvBeg0e1sUzIKGqL1nT7QxHmSmd DcQlMz395vfu1ikSNS8BVzzfwDjF9wnb6h4TSGs0GgwgQm6Pql4nSKnQyJCqRXFq8OCJ AeC15OWXs3SXBYjPN6blVf7ha9ZZ8M6HscyBbQ+s1B2X18Iu0j8RE5KM6bx6Yl+FhrbY KIC+qyr5SmAbY3iQsKra1TlbzJ0U81YhRw1LQVUF3Tv8UYtwmxk3xtwZSH7xQseljM5v ca810DRbdr/HF4syvivjzRIClXq+jeFDiMNjv4bvZyX5GR+eZze+ldXyPqrxLadjtSGI iecQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=8Qdp9pUoNDY5Mvuaf7+DmACBXhNJIeFau8zbx4GIwY4=; fh=t9UHDBAL4n5Wk0IuJNme4Bussxb2u0dTQQaTsoa3lto=; b=gmGif4PIYGlZXQkcNP5RqGRM77jF8RfcRBCyrKmDf5P3ZPUfimaUoyMJ4EzZPunIEe 6LSVuXMel9HaLXibQDpj3Zc73LyW606Cl7tFdoEKhP9GSJLFKeOWNFBUQnroBF1QySLE EqgImOAT5UHXFDb1lw6AiVy7z+1El4kvT1SMKXV/IXaJCE/ZUSoNCJRJf9JSC10KHgbW W1RT7bThaDsaQr4igMsTgnIDQSGCfqIshtNrzH223I07h/XvtGONOIjWLBTlGePgmV8s zKAR2DJFxeGuP6EovEHKvNGzkQe4YvRkZb9YAaHf13ifMhVDeXbCw1zMZ+N8Hzo6JsOm gCug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b="i/whvion"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n3-20020a634d43000000b0054fe372aa7bsi12191293pgl.609.2023.06.30.03.41.18; Fri, 30 Jun 2023 03:41:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b="i/whvion"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231633AbjF3Kdg (ORCPT + 99 others); Fri, 30 Jun 2023 06:33:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34970 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231634AbjF3Kdd (ORCPT ); Fri, 30 Jun 2023 06:33:33 -0400 X-Greylist: delayed 549 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Fri, 30 Jun 2023 03:33:32 PDT Received: from out-49.mta1.migadu.com (out-49.mta1.migadu.com [IPv6:2001:41d0:203:375::31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 569F8359E for ; Fri, 30 Jun 2023 03:33:32 -0700 (PDT) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1688120662; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=8Qdp9pUoNDY5Mvuaf7+DmACBXhNJIeFau8zbx4GIwY4=; b=i/whvionwp7XeBI50BDtNvMp+ngKCUEzRxZds9j4ahAqhJmK6r1FRei7sRHniau8/OIylZ vkYcn7T9RIFYd2FTAJqNJPdp94Cw0Lh9dxWuAgFxtU0saOFKiEWU6uaZLWtLzP7g28/nL7 Tzv1xubl9tHNvhORMxE04c8sI/Lclpo= From: Sui Jingfeng To: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Sui Jingfeng Subject: [PATCH 2/2] PCI/VGA: drop the inline of vga_update_device_decodes() function Date: Fri, 30 Jun 2023 18:24:12 +0800 Message-Id: <20230630102412.134977-1-sui.jingfeng@linux.dev> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770123890461240937?= X-GMAIL-MSGID: =?utf-8?q?1770123890461240937?= From: Sui Jingfeng The vga_update_device_decodes() is NOT a trivial function, nor performance critical. So drop the inline. Also keep the parameter and argument consistent. The second argument should declared as 'unsigned int' type. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index cbd06bbf9dd7..17bd1268c36a 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -877,21 +877,21 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev) } /* This is called with the lock */ -static inline void vga_update_device_decodes(struct vga_device *vgadev, - int new_decodes) +static void vga_update_device_decodes(struct vga_device *vgadev, + unsigned int new_decodes) { struct device *dev = &vgadev->pdev->dev; - int old_decodes, decodes_removed, decodes_unlocked; + unsigned int old_decodes = vgadev->decodes; + unsigned int decodes_removed = ~new_decodes & old_decodes; + unsigned int decodes_unlocked = vgadev->locks & decodes_removed; - old_decodes = vgadev->decodes; - decodes_removed = ~new_decodes & old_decodes; - decodes_unlocked = vgadev->locks & decodes_removed; vgadev->decodes = new_decodes; - vgaarb_info(dev, "changed VGA decodes: olddecodes=%s,decodes=%s:owns=%s\n", - vga_iostate_to_str(old_decodes), - vga_iostate_to_str(vgadev->decodes), - vga_iostate_to_str(vgadev->owns)); + vgaarb_info(dev, + "VGA decodes changed: olddecodes=%s,decodes=%s:owns=%s\n", + vga_iostate_to_str(old_decodes), + vga_iostate_to_str(vgadev->decodes), + vga_iostate_to_str(vgadev->owns)); /* If we removed locked decodes, lock count goes to zero, and release */ if (decodes_unlocked) {