[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] vpci: introduce per-domain lock to protect vpci structure


  • To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Tue, 15 Feb 2022 09:30:08 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
  • 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=tDllKgtO2htz+ZZHLYCR6A0+9x4NhEnUsKsvjNLx9go=; b=CWAlmNA5BR2EjgReYeNyB6FbSprY7BQDpGcl7nVpaZSk0oc0jaZL+dgFQknTi4pkmJyufiaBdZd6m7Fc/86EwUQjaXmrm+dYqtUbSh9EBn0HzsyI3vop2TCfGDzAfvqVhjseBb9sb8+0RJdl5hOoqPDUoJ7IpmSFCR905q5op+TOWYgXfVfvlA946hwglpTw84O1ibZBXRZnQjkJHBXwLm9UsNsnvsZk2dP8I7AuV/gNK/GAgpmROJVj3kXcRbwR8nWnt4FB2rlSlazYPnm2wcD8Pndvhp1y3MPNPrBX5ApmIiEJ6O5y92+1fFgW5OVr7E7rUe4bs1vsuum5e/GEiQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mqpfXmareJtaIOketMri8T5y3/h/EKv+3P9Z3UxO8OjQAXiZRzw4e+RdMA+WzvTq9tS3/+bXKW3xZ6/QHKcfzd0BzkGJkng9/pB9/occJmfqF/exS+VI4KHjWLaUsM5kBoB+Y6d/wnGr4/2tPKUX2OShTuwSABHPbfaoY9E5ltOPtTmmf3fm1UD8uOgPtneh6/fP9PAAqcrySGGIzyv4mB2JIVy76DO5Vjq5IiEVrWoEeiiNsNevklutQP3VVgtgPfwfZxgUseoaKcZD8mr7HQXguPN7Y3Yg/fxD6kNR8RKnnwAnpor2KA+S27eoyo8v7ucoNR1lEYWgTho+VocURg==
  • Authentication-results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, "sstabellini@xxxxxxxxxx" <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <Oleksandr_Tyshchenko@xxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Artem Mygaiev <Artem_Mygaiev@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>
  • Delivery-date: Tue, 15 Feb 2022 08:30:38 +0000
  • Ironport-data: A9a23:8bbmTa1CDG3V9vRRJfbD5dt3kn2cJEfYwER7XKvMYLTBsI5bp2MPx jBOUGmFbvveNjD2ft1/PoSzpxwEsJbcmIJnQABkpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCanAZqTNMEn9700o5wrNh2OaEvPDia++zk YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhusBjz 9tGlaSJbB4JD5XqwvUTTAFFOnQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr 6VecW1TKEDY7w616OvTpu1EnMMsIdOtJIoCknph0SvYHbAtRpWrr6Diu4MBhm5u15om8fD2a s5HbzZ1aDr5eQx9Gmw9MJIUsd2FiSyqG9FfgA3M/vdmi4TJ9yRP17zqPMvQa8a9b8xflUaFp UrL5238RBodMbS37j6I8WmlgOPVqh/qQ4IZFLC+9flCjUWawyoYDxh+fXKhvfS8vWuvVNteJ lI89zInqO4580nDZsP0XwC85mWFuBEcc9NKFqsx7wTl4qDZ+RqDD24ICDtIcsU7tdQeTCYvk FSOmrvBBzZirbmUQnK17aqPoHW5Pi19BUgGaCwfRA0J+e7Kpo0pkwnPRdZuFq2yptDtEDS2y DePxAAuirNWgcMV2qGT+VHcnynqtpXPVhQy5AjcQiSi9AwRTJW+e4Wi5Fzf7PBBBIWUVF+Mu D4Dgcf2xOITCZCAkgSdTeNLG6umj8tpKxWF3wQpRcN4sW3wpTjzJui8/Q2SOm9MItQDdzTJW Hb2oCNg3LkJLXW1dbJeNtfZ59sR8YDsEtHsV/bxZ9VIY4RseALvwByCdXJ8zEi2zhFyzPhX1 YOzNJ/1UC1EUfgPIC+eGr9FuYLH0BzS0o86qXrT6x28mYSTa3eOIVvuGAvfN7tphE9oTei8z jq+Cydo40gFOAEdSnOOmWL2EbztBSJlba0aU+QNKoa+zvNOQQnN8cP5z7I7YJBClK9IjOrO9 XzVchYGlAag1S2adF3TMSoLhFbTsXFX9yxTAMDRFQzwhyhLjXiHsM/ziKfbjZF4rbc+nJaYv tEOetmaA+Qnd9g00291UHUJl6Q7LE7DrVvXZ0KNOWFjF7Y9F12h0oK1JWPHqXhRZhdbQONj+ tVMICuAGsFdL+mjZe6LAM+SI6SZ5CNDxrsqBhGQfbG+uizEqeBXFsA4tdduS+kkIhTf3DqKk QGQBBYTv+7WpIEpttLOgMi5Q02BSoOSx2JWQDvW66iYLy7f8jbxyINMSr/QLzvcSHn16OOpY uAMl6PwN/gOnVBrtYtgEuk0kfJitoW3/7IKnB55GHjrbkiwDu8yKHexwsQS5LZGwaVUuFXqV xvXqMVaI7iAJOjsDEUVeFg+du2G2PxNwmvS4P05LV/U/ihy+LbbA0xeMwPV0H5WLadvMZNjy uAk4ZZE5wu6gxssE9CHkiELqDjcci1eC/0q78hIDpXqhwwnzkB5TabdUiKmsouSb9hsM1UxJ mPGjqT1mLkBlFHJdGA+FCaR0LMF14gOoh1D0HQLO0+NxojenvYy0RBcrWY3QwBSwkkV2u5/I DE2ZUh8JKHI9DZ0nslTGWurHlgZVhGe/0XwzXoPlXHYEBb0BjCccjVlNLbf5l0d/kJdYiNfr eORx2vSWDr3eN38g3kpUkl/pv2/FdF8+2UuQix88xhpy3XiXQfYvw==
  • Ironport-hdrordr: A9a23:kSfH9a1WODI2eLdjJh2bVgqjBVByeYIsimQD101hICG9Lfb2qy n+ppgmPEHP5Qr5OEtApTiBUJPwJk800aQFm7X5XI3SJzUO3VHHEGgM1/qB/9SNIVyaygcZ79 YcT0EcMqyPMbEZt7eC3ODQKb9Jq7PmgcOVbKXlvg9QpGlRGt5dBmxCe2Cm+yNNNW177c1TLu vh2iMLnUvpRV0nKuCAQlUVVenKoNPG0LrgfB49HhYirC2Dlymh5rLWGwWRmk52aUIE/Z4StU z+1yDp7KSqtP+2jjfaym/o9pxT3P/s0MFKCsCggtUcbh/slgGrToJ8XKDqhkF/nMifrHIR1P XcqRYpOMp+r1vXY2GOuBPonzLt1T4/gkWSvmOwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze Ziw3+Zn4A/N2KOoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vFqLA BXNrCc2B9qSyLbU5iA1VMfg+BEH05DUytue3Jy9PB8iFNt7TJEJ0hx/r1qop5PzuN5d3B+3Z W1Dk1frsA6ciYnV9MNOA4/e7rFNoXse2O7DIvAGyWvKEk4U0i92aIfpo9FoN2XRA==
  • Ironport-sdr: JfIZVh2G5jJgY+68ig1bYOe/tOWHVYTQneVklUb6cZL7osaif+ZxT4JJrLsGFYUMM8TERaLrY/ 6s9ctO8TUsg2ypJDwekYZr3wMxbr/gj6wxvelsiHC3eO7RK7MHbwrml/ccYjczgRjkQMFWudap +LJOrf+2/CJNAW4ry+VcMY3r69kRHJ1NdE6DvyZaZuCibKWo2aau5G01nKVCtIeMWW7u4v/7ur qiXE1t59uoZG4jcwup3vpfw86KuucT+fMi2RsDfKvzMcHOmq4NCA7sZDMvai6GRb6lDogJUq32 gCQkRvX0DuFSM3ETFqQFdpc5
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Mon, Feb 14, 2022 at 02:00:26PM +0000, Oleksandr Andrushchenko wrote:
> /*
> * FIXME: apply_map is called from dom0 specific init code when
> * system_state < SYS_STATE_active, so there is no race condition
> * possible between this code and vpci_process_pending. So, neither
> * vpci_process_pending may try to acquire the lock in read mode and
> * also destroy pdev->vpci in its error path nor pdev may be disposed yet.
> * This means that it is not required to check if the relevant pdev
> * still exists after re-acquiring the lock.

I'm not sure why you need to mention vpci_process_pending here:
apply_map and defer_map are mutually exclusive, so given the current
code it's impossible to get in a situation where apply_map is called
while there's pending work on the vCPU (ie: v->vpci.mem != NULL).

Also there's no need for a FIXME tag: the current approach doesn't
require any fixes unless we start using apply_map in a different
context.

Hence I think the comment should be along the lines of:

/*
 * It's safe to drop and reacquire the lock in this context without
 * risking pdev disappearing because devices cannot be removed until the
 * initial domain has been started.
 */

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.