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

RE: [PATCH v3 20/23] VT-d: free all-empty page tables


  • To: "Beulich, Jan" <JBeulich@xxxxxxxx>
  • From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • Date: Thu, 17 Mar 2022 05:55:06 +0000
  • Accept-language: en-US
  • 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
  • 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=ZLKtX1MqicQrdOmkggv7LPVFrM59lsFn+8kyk7iXBd0=; b=R1ejOyl/pnArIboyxw2zzQjTw5SRaAf+KS/eolHBPpaNPCFlwkhECuyqTeQwxZxpBI7UWfQgBrbokzJYoPh1xICZQ211MGUSqYZekXu3UFQBWqeqny+aKccm1kmJq+re1NVbQ9EWpdskLzgZLjaOnu0Jx7rNnfViWgx+gte9jwveFmCxHcdRT5uiA/7Qm3M+WZmEb0owBrTPOAV55uJv73hlLgXqeEIa0Zgksg924Whd2v92vQBPozV/UX8l7bERH6b3AbSKQW/7iG+zEywF1zM1lJPY8Tt4yaJMJfFzDS9k7kvGJ2bRN4EM/LOLlvalrPY5yLMmjVZF5ulCZIwdLw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ECO+hQxITh8K0vs3wd4wavLnNLkGjgOtMiKcnCF8SUY7xhhtbA0V+FuEP1ZH5kRBxJkCwXEAvNrNRulXBAEZ3UFH+61oW5tVUoESXJrjuOyzPUtu7ktc+jScB2lFUrAP+sXpN/DSgmat+JTn59F0Ler/3YPoeFJWKpOE48qpy3KqkhKS7zXxEhyiBdsavk3mmhK3rrsxAvWkwn4XmC43jDB9OQPUDMh8Shu98SjDv0gNCA/7q41wMpsIPXZ+SuBxC+PxnkPKmhJn5VeIeeXEB8nubNKLdvrrB1OWYr26QluF4oB6LaJdsWmtzYjnH/g4OZ8JSMU1e52Z3OyN6c7T5A==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com;
  • Cc: "Cooper, Andrew" <andrew.cooper3@xxxxxxxxxx>, Paul Durrant <paul@xxxxxxx>, Pau Monné, Roger <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Thu, 17 Mar 2022 05:55:25 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYBkBAHcUqxDPFCEWIL9jRoPTFzayZAFJQgAA29ICAJWrDAIAAPPsAgASap8A=
  • Thread-topic: [PATCH v3 20/23] VT-d: free all-empty page tables

> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: Monday, March 14, 2022 3:33 PM
> 
> On 14.03.2022 05:01, Tian, Kevin wrote:
> >> From: Jan Beulich <jbeulich@xxxxxxxx>
> >> Sent: Friday, February 18, 2022 4:31 PM
> >>
> >> On 18.02.2022 06:20, Tian, Kevin wrote:
> >>>> From: Jan Beulich <jbeulich@xxxxxxxx>
> >>>> Sent: Tuesday, January 11, 2022 12:36 AM
> >>>>
> >>>> When a page table ends up with no present entries left, it can be
> >>>> replaced by a non-present entry at the next higher level. The page table
> >>>> itself can then be scheduled for freeing.
> >>>>
> >>>> Note that while its output isn't used there yet,
> >>>> pt_update_contig_markers() right away needs to be called in all places
> >>>> where entries get updated, not just the one where entries get cleared.
> >>>>
> >>>> Note further that while pt_update_contig_markers() updates perhaps
> >>>> several PTEs within the table, since these are changes to "avail" bits
> >>>> only I do not think that cache flushing would be needed afterwards.
> Such
> >>>> cache flushing (of entire pages, unless adding yet more logic to me
> more
> >>>> selective) would be quite noticable performance-wise (very prominent
> >>>> during Dom0 boot).
> >>>>
> >>>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> >>>> ---
> >>>> v3: Properly bound loop. Re-base over changes earlier in the series.
> >>>> v2: New.
> >>>> ---
> >>>> The hang during boot on my Latitude E6410 (see the respective code
> >>>> comment) was pretty close after iommu_enable_translation(). No
> errors,
> >>>> no watchdog would kick in, just sometimes the first few pixel lines of
> >>>> the next log message's (XEN) prefix would have made it out to the
> screen
> >>>> (and there's no serial there). It's been a lot of experimenting until I
> >>>> figured the workaround (which I consider ugly, but halfway acceptable).
> >>>> I've been trying hard to make sure the workaround wouldn't be
> masking a
> >>>> real issue, yet I'm still wary of it possibly doing so ... My best guess
> >>>> at this point is that on these old IOMMUs the ignored bits 52...61
> >>>> aren't really ignored for present entries, but also aren't "reserved"
> >>>> enough to trigger faults. This guess is from having tried to set other
> >>>
> >>> Is this machine able to capture any VT-d faults before?
> >>
> >> Not sure what you mean here. I don't think I can trigger any I/O at this
> >> point in time, and hence I also couldn't try to trigger a fault. But if
> >> the question is whether fault reporting at this time actually works,
> >> then yes, I think so: This is during Dom0 construction, i.e. late enough
> >> for fault reporting to be fully set up and enabled.
> >>
> >
> > My point was that with your guess that the ignored bits are not
> > ignored some VT-d faults should be triggered. If the reason why
> > you cannot observe such faults is because they happened too
> > early so no much can be shown on the screen then trying to
> > setting those bits at much later point might get more shown to
> > verify your guess.
> 
> Pretty clearly there aren't any faults. And in fact my suspicion is
> that the bits are used for addressing memory, and then the memory
> access hangs (doesn't complete).
> 
> > btw any progress since last post? How urgent do you want this
> > feature in (compared to the issue that it may paper over)?
> 
> Well, one way or another the issue needs to be dealt with for this
> series to eventually go in. To be honest I hadn't expected that it
> would still be pending ...
> 

Sorry I didn't get your meaning. Do you mean that you didn't
expect that I haven't given r-b or that you haven't found time
to root-cause this issue?

Thanks
Kevin

 


Rackspace

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