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

Re: Ping: [PATCH] Argo: don't obtain excess page references


  • To: Christopher Clark <christopher.w.clark@xxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Mon, 30 Jan 2023 09:03:35 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; 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=XOaCDG/C2sJdD5TzBiisp/1yDh1cwFvX0sisRQDW49E=; b=IFRsXLwlUyw6Dznfn+cMKeZfRS/A3Xq/qrCF06/PnlKtrJznPX/NoyB+1E9IldUSQeKIFccY/l2jg3sLbh4u/G9cXxJkYOH6IHeqfJJnezcMLGfM4SxxMWSP6Z1n0BupdwDXT3KxyPgMMP38baOEyFdw3voQnhE+VAm+PHpGxrT3OZcFqs+UqhAZf29cm7ya7pR1MaXrNnkO0oZvUROd8s5NElkSwxSsWSb8bTR83QCneXcW5Ng08wTih1MhTEn+Qcsdc/LTN10vKcIl0EATJDLGZMRV5oGbtwwgyWbTs+wDejBUNF03rzeY3ezEFuPPJzFojT/tVhmtUONvG/OMFw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ni1I7/76kVYAZWz7FNWj/O3jxeoh9vtEKHNATkkCrs6sWZ5rGLZvU3pwBKP2s9dnagYhvPx/oOSTSdA1ik08PduhyXlUDXYRFxgFF0hV/iL+4qnJ8MZ/5Xq4BApu1MVRB1B6q3NnoJXZfSkLG6BTLxLkRoyDtY784A4XY4V6v4AixcA8pTLINNTQMp0PznlNflRuy4hx2HcSFH3VEKNWnMick27CEvBV3IFmcUvRoJmnLyMwHgxLgZo5HFaWW9KvlJAqOD2zcbRUl77hTZgNA1FNRn93xfTgN1BsFxIrnyioEWdDrrlOv26Mr7ZPbzdIhBKn4Re1hFC40QauG1p2tA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 30 Jan 2023 08:03:51 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 30.01.2023 05:35, Christopher Clark wrote:
> On Mon, Nov 21, 2022 at 4:41 AM Jan Beulich <jbeulich@xxxxxxxx> wrote:
> 
>> On 11.10.2022 11:28, Jan Beulich wrote:
>>> find_ring_mfn() already holds a page reference when trying to obtain a
>>> writable type reference. We shouldn't make assumptions on the general
>>> reference count limit being effectively "infinity". Obtain merely a type
>>> ref, re-using the general ref by only dropping the previously acquired
>>> one in the case of an error.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>>
>> Ping?
> 
> Sorry it has taken me so long to review this patch and thank-you for
> posting it. The points raised are helpful.
> 
> Wrt to the patch - I can't ack because:
> the general ref that is already held is from the page owner, and it may
> actually be foreign; so the second ref acquire is currently ensuring that
> it is a match for the owner of the ring. That needs addressing.

I'm afraid I may not understand your reply: Are you saying there's something
wrong with the change? Or are you saying there's something wrong that merely
becomes apparent due to the change? Or yet something else?

> Am supportive of points raised:
> - review + limit ref counts taken
>     - better to not need two general page refs
> - a type ref rather than general may be sufficient to hold for the ring
> lifetime?
> - paging_mark_dirty at writes
> - p2m log dirty would be better to be allowed than EAGAIN

I can certainly extend the patch to a series, but that'll make sense only
if ...

> - allowing mapping of foreign pages may have uses though likely also
> challenging
> 
> I should let you know that my time available is extremely limited at the
> moment, sorry.

... it would then also be looked at within a reasonable amount of time. I'm
already sitting on way too many unreviewed patches.

Jan



 


Rackspace

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