[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: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Fri, 18 Feb 2022 09:31:13 +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=S2WcSMWv6vYT6GuxsW7yHK1xG36f0wjL73/6I1eRVEU=; b=mXyHXepIBB3lXpWYvVRPWUNoyiagThiPWtCu+JtiSJDKT14OJIAqzz7NubcMnEmkx06lOgzwG/C5pVOXpXeRfQxbENx4N9nb8wVN+kQB41bgvJCYYfWx8dzLW7gYkf8vCxZ6EWzYJDP2xRxxbZW63Q0j1QaZq9Mzo6eLE8AkQOuGgTDAPHFMP0b5n0d3Hl7GdsTzpzAO2PZtCWqSGDfG3Ed1WXOHPEsoF3lf92rDJ/TiFUWivm9Y3T4PM2cKvgATXhk8eyacH4DEFfwC6aYjlPkLhunItWGFYAoSpWV5BgUMO1aaIk1BvsTpMC9MZ9cIhADMhOxtARFBuQVzDeR6Ew==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lG5LsHdHQOKIQ0T4aiEQUwvT3R3Fj3ycsmi3lUlDewprFW6/nIjnGtgmRTQD7nW2U27wh0C0aqHHT8rXDUhjUgf2vQnp2nwZLrtMPDOYcqsnCTLXZ7MgaClaQ5ejU2bb8XEV7mXv0/7p1rtgtWb9AAHwdJA5yABylZvP5l9dnxm03bbQxlCY9B1G7jfqGaj15hCdObXwqRZnhToEWAFPOEbJzEPfcYtlV3AoX5nS13gdS2T03/7Yp2SKnKPhu8jkwXo3ARyvu1Bfr7wZthx1N+Y2TavA/fM3MA4A43x2nW7/L/hn6479qot5f0EvfkwnxNdHwnoEKd9kzwBv+veBzQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.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: Fri, 18 Feb 2022 08:31:26 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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.

Jan

> If yes maybe
> you will observe more information if trying to tweak those bits at a later
> time (instead of when iommu is enabled)?
> 
> Thanks
> Kevin




 


Rackspace

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