Hi,
On Fri, 8 Mar 2024 at 20:50, Zhao Liu <[email protected]> wrote:
> On Fri, Mar 08, 2024 at 02:20:45PM +0100, Thomas Huth wrote:
> > Can we always rely on that? ... or is this just by luck due to the current
> > implementation? In the latter case, I'd maybe rather drop this patch again.
>
> Thanks for the correction, I revisited and referenced more similar use
> cases, and indeed, only if the flag "has_*" is true, its corresponding
> field should be considered reliable.
* Is this because 'SMPConfiguration config' fields are not always
initialized with default values? Is that a bug? Having
'SMPConfiguration' fields initialised to known default values could
help to unify/simplify code which uses those fields.
> Keeping explicit checking on has_* and explicit initialization of these
> topology variables makes the code more readable.
>
> This patch is over-optimized and I would drop it.
* Could we then simplify it in the following if <expression>
===
if ((config->has_cpus && config->cpus == 0) ||
... ||
(config->has_maxcpus && config->maxcpus == 0))
could be
if (!cpus || !drawers || ... || !maxcpus) { ... }
===
Thank you.
---
- Prasad