Message ID | 20210923120236.3692135-34-wei.chen@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add device tree based NUMA support to Arm | expand |
On Thu, 23 Sep 2021, Wei Chen wrote: > The NUMA information provided in the host Device-Tree > are only for Xen. For dom0, we want to hide them as they > may be different (for now, dom0 is still not aware of NUMA) > The CPU and memory nodes are recreated from scratch for the > domain. So we already skip the "numa-node-id" property for > these two types of nodes. > > However, some devices like PCIe may have "numa-node-id" > property too. We have to skip them as well. > > Signed-off-by: Wei Chen <wei.chen@arm.com> > --- > xen/arch/arm/domain_build.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > index d233d634c1..6e94922238 100644 > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -737,6 +737,10 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo, > continue; > } > > + /* Guest is numa unaware in current stage */ I would say: "Dom0 is currently NUMA unaware" Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > + if ( dt_property_name_is_equal(prop, "numa-node-id") ) > + continue; > + > res = fdt_property(kinfo->fdt, prop->name, prop_data, prop_len); > > if ( res ) > @@ -1607,6 +1611,8 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo, > DT_MATCH_TYPE("memory"), > /* The memory mapped timer is not supported by Xen. */ > DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"), > + /* Numa info doesn't need to be exposed to Domain-0 */ > + DT_MATCH_COMPATIBLE("numa-distance-map-v1"), > { /* sentinel */ }, > }; > static const struct dt_device_match timer_matches[] __initconst = > -- > 2.25.1 >
> -----Original Message----- > From: Stefano Stabellini <sstabellini@kernel.org> > Sent: 2021年9月24日 11:19 > To: Wei Chen <Wei.Chen@arm.com> > Cc: xen-devel@lists.xenproject.org; sstabellini@kernel.org; julien@xen.org; > Bertrand Marquis <Bertrand.Marquis@arm.com> > Subject: Re: [PATCH 33/37] xen/arm: keep guest still be NUMA unware > > On Thu, 23 Sep 2021, Wei Chen wrote: > > The NUMA information provided in the host Device-Tree > > are only for Xen. For dom0, we want to hide them as they > > may be different (for now, dom0 is still not aware of NUMA) > > The CPU and memory nodes are recreated from scratch for the > > domain. So we already skip the "numa-node-id" property for > > these two types of nodes. > > > > However, some devices like PCIe may have "numa-node-id" > > property too. We have to skip them as well. > > > > Signed-off-by: Wei Chen <wei.chen@arm.com> > > --- > > xen/arch/arm/domain_build.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > > index d233d634c1..6e94922238 100644 > > --- a/xen/arch/arm/domain_build.c > > +++ b/xen/arch/arm/domain_build.c > > @@ -737,6 +737,10 @@ static int __init write_properties(struct domain *d, > struct kernel_info *kinfo, > > continue; > > } > > > > + /* Guest is numa unaware in current stage */ > > I would say: "Dom0 is currently NUMA unaware" > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > I will update the code comment in next version. Thanks! > > > + if ( dt_property_name_is_equal(prop, "numa-node-id") ) > > + continue; > > + > > res = fdt_property(kinfo->fdt, prop->name, prop_data, prop_len); > > > > if ( res ) > > @@ -1607,6 +1611,8 @@ static int __init handle_node(struct domain *d, > struct kernel_info *kinfo, > > DT_MATCH_TYPE("memory"), > > /* The memory mapped timer is not supported by Xen. */ > > DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"), > > + /* Numa info doesn't need to be exposed to Domain-0 */ > > + DT_MATCH_COMPATIBLE("numa-distance-map-v1"), > > { /* sentinel */ }, > > }; > > static const struct dt_device_match timer_matches[] __initconst = > > -- > > 2.25.1 > >
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index d233d634c1..6e94922238 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -737,6 +737,10 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo, continue; } + /* Guest is numa unaware in current stage */ + if ( dt_property_name_is_equal(prop, "numa-node-id") ) + continue; + res = fdt_property(kinfo->fdt, prop->name, prop_data, prop_len); if ( res ) @@ -1607,6 +1611,8 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo, DT_MATCH_TYPE("memory"), /* The memory mapped timer is not supported by Xen. */ DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"), + /* Numa info doesn't need to be exposed to Domain-0 */ + DT_MATCH_COMPATIBLE("numa-distance-map-v1"), { /* sentinel */ }, }; static const struct dt_device_match timer_matches[] __initconst =
The NUMA information provided in the host Device-Tree are only for Xen. For dom0, we want to hide them as they may be different (for now, dom0 is still not aware of NUMA) The CPU and memory nodes are recreated from scratch for the domain. So we already skip the "numa-node-id" property for these two types of nodes. However, some devices like PCIe may have "numa-node-id" property too. We have to skip them as well. Signed-off-by: Wei Chen <wei.chen@arm.com> --- xen/arch/arm/domain_build.c | 6 ++++++ 1 file changed, 6 insertions(+)