[PATCH v3 03/10] powerpc/pseries/vas: Save LPID in pseries_vas_window struct

Haren Myneni haren at linux.ibm.com
Wed Feb 16 12:09:12 AEDT 2022


On Mon, 2022-02-14 at 12:41 +1000, Nicholas Piggin wrote:
> Excerpts from Haren Myneni's message of January 22, 2022 5:55 am:
> > The kernel sets the VAS window with partition PID when is opened in
> > the hypervisor. During DLPAR operation, windows can be closed and
> > reopened in the hypervisor when the credit is available. So saves
> > this PID in pseries_vas_window struct when the window is opened
> > initially and reuse it later during DLPAR operation.
> 
> This probably shouldn't be called lpid, while you're changing it.
> "partition PID" and "LPAR PID" is also confusing. I know the name
> somewhat comes from the specifiction, but pid/PID would be fine,
> it's clear we are talking about "this LPAR" when in pseries code.
> 
> > Signed-off-by: Haren Myneni <haren at linux.ibm.com>
> > ---
> >  arch/powerpc/platforms/pseries/vas.c | 7 ++++---
> >  arch/powerpc/platforms/pseries/vas.h | 1 +
> >  2 files changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/powerpc/platforms/pseries/vas.c
> > b/arch/powerpc/platforms/pseries/vas.c
> > index d2c8292bfb33..2ef56157634f 100644
> > --- a/arch/powerpc/platforms/pseries/vas.c
> > +++ b/arch/powerpc/platforms/pseries/vas.c
> > @@ -107,7 +107,6 @@ static int h_deallocate_vas_window(u64 winid)
> >  static int h_modify_vas_window(struct pseries_vas_window *win)
> >  {
> >  	long rc;
> > -	u32 lpid = mfspr(SPRN_PID);
> >  
> >  	/*
> >  	 * AMR value is not supported in Linux VAS implementation.
> > @@ -115,7 +114,7 @@ static int h_modify_vas_window(struct
> > pseries_vas_window *win)
> >  	 */
> >  	do {
> >  		rc = plpar_hcall_norets(H_MODIFY_VAS_WINDOW,
> > -					win->vas_win.winid, lpid, 0,
> > +					win->vas_win.winid, win->lpid,
> > 0,
> >  					VAS_MOD_WIN_FLAGS, 0);
> >  
> >  		rc = hcall_return_busy_check(rc);
> > @@ -125,7 +124,7 @@ static int h_modify_vas_window(struct
> > pseries_vas_window *win)
> >  		return 0;
> >  
> >  	pr_err("H_MODIFY_VAS_WINDOW error: %ld, winid %u lpid %u\n",
> > -			rc, win->vas_win.winid, lpid);
> > +			rc, win->vas_win.winid, win->lpid);
> >  	return -EIO;
> >  }
> >  
> > @@ -338,6 +337,8 @@ static struct vas_window
> > *vas_allocate_window(int
> > vas_id, u64 flags,
> >  		}
> >  	}
> >  
> > +	txwin->lpid = mfspr(SPRN_PID);
> > +
> >  	/*
> >  	 * Allocate / Deallocate window hcalls and setup / free IRQs
> >  	 * have to be protected with mutex.
> > diff --git a/arch/powerpc/platforms/pseries/vas.h
> > b/arch/powerpc/platforms/pseries/vas.h
> > index fa7ce74f1e49..0538760d13be 100644
> > --- a/arch/powerpc/platforms/pseries/vas.h
> > +++ b/arch/powerpc/platforms/pseries/vas.h
> > @@ -115,6 +115,7 @@ struct pseries_vas_window {
> >  	u64 domain[6];		/* Associativity domain Ids */
> >  				/* this window is allocated */
> >  	u64 util;
> > +	u32 lpid;
> 
> Comment could be "PID associated with this window".   

yes, will add this comment.

> 
> BTW, is the TID parameter deprecated? Doesn't seem that we use that.

Right, tpid is deprecated on p10 and we are not using it.

Thanks
Haren

> 
> Thanks,
> Nick



More information about the Linuxppc-dev mailing list