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

Re: [PATCH v2 07/11] xen: move domain_use_host_layout() to common code





On 4/1/26 7:59 AM, Jan Beulich wrote:
On 31.03.2026 21:49, Oleksii Kurochko wrote:
On 3/31/26 6:32 PM, Oleksii Kurochko wrote:
@@ -2544,6 +2544,12 @@ void thaw_domains(void)
    #endif /* CONFIG_SYSTEM_SUSPEND */
+bool domain_use_host_layout(struct domain *d)
+{
+    return is_domain_direct_mapped(d) ||
+           (paging_mode_translate(d) && is_hardware_domain(d));
+}

The placement of paging_mode_translate() doesn't match ...

--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -62,6 +62,22 @@ void domid_free(domid_t domid);
    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
+/*
+ * Is the auto-translated domain using the host memory layout?
+ *
+ * domain_use_host_layout() is always False for PV guests.

... the description of the function.

But why the placement should be different?

If you focus on auto-translated, then imo paging_mode_translate()
better would guard everything.

Then it make sense to do in the following way:
   bool domain_use_host_layout(struct domain *d)
   {
-    return is_domain_direct_mapped(d) ||
-           (paging_mode_translate(d) && is_hardware_domain(d));
+    return paging_mode_translate(d) &&
+           (is_domain_direct_mapped(d) || is_hardware_domain(d));
   }

This is not really correct.

... because of ... ? (After all, then the comment isn't correct either.)

I thought it could break what Arm had before when paging_mode_translate() is false, but it is always true for Arm, so with paging_mode_translate() being true, the new definition is equivalent to what it had before. So looks goods.

~ Oleksii



Jan




 


Rackspace

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