[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
- To: Jan Beulich <jbeulich@xxxxxxxx>
- From: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
- Date: Tue, 31 Mar 2026 21:49:58 +0200
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:In-Reply-To:Content-Language:References:Cc:To:From:Subject:User-Agent:MIME-Version:Date:Message-ID"
- Cc: Romain Caritey <Romain.Caritey@xxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
- Delivery-date: Tue, 31 Mar 2026 19:50:18 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
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.
~ Oleksii
|