Michal Suchánek <msucha...@suse.de> writes: > On Thu, Sep 29, 2022 at 05:16:40PM -0500, Nathan Lynch wrote: >> Haren Myneni <ha...@linux.ibm.com> writes: >> > Generally the hypervisor decides to allocate a window on different >> > VAS instances. But if the user space wishes to allocate on the >> > current VAS instance where the process is executing, the kernel has >> > to pass associativity domain IDs to allocate VAS window HCALL. To >> > determine the associativity domain IDs for the current CPU, passing >> > smp_processor_id() to node associativity HCALL which may return >> > H_P2 (-55) error during DLPAR CPU event. >> > >> > This patch fixes this issue by passing hard_smp_processor_id() with >> > VPHN_FLAG_VCPU flag (PAPR 14.11.6.1 H_HOME_NODE_ASSOCIATIVITY). >> > >> > Signed-off-by: Haren Myneni <ha...@linux.ibm.com> >> > --- >> > arch/powerpc/platforms/pseries/vas.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/arch/powerpc/platforms/pseries/vas.c >> > b/arch/powerpc/platforms/pseries/vas.c >> > index fe33bdb620d5..533026fd1f40 100644 >> > --- a/arch/powerpc/platforms/pseries/vas.c >> > +++ b/arch/powerpc/platforms/pseries/vas.c >> > @@ -348,7 +348,7 @@ static struct vas_window *vas_allocate_window(int >> > vas_id, u64 flags, >> > * So no unpacking needs to be done. >> > */ >> > rc = plpar_hcall9(H_HOME_NODE_ASSOCIATIVITY, domain, >> > - VPHN_FLAG_VCPU, smp_processor_id()); >> > + VPHN_FLAG_VCPU, hard_smp_processor_id()); >> > if (rc != H_SUCCESS) { >> > pr_err("H_HOME_NODE_ASSOCIATIVITY error: %d\n", rc); >> > goto out; >> >> Yes, it is always wrong to pass Linux CPU numbers to the hypervisor, >> which has its own numbering for hardware threads. It usually coincides >> with Linux's numbering in practice, which tends to hide bugs like this. >> >> Reviewed-by: Nathan Lynch <nath...@linux.ibm.com> > > This is the code that introduces the problem, right? > > Fixes: b22f2d88e435 ("powerpc/pseries/vas: Integrate API with open/close > windows")
Yeah, I tagged it when applying. Thanks. cheers