[PATCH] cxl: Fix DSI misses when the context owning task exits

Frederic Barrat fbarrat at linux.vnet.ibm.com
Wed Nov 25 19:57:35 AEDT 2015



Le 24/11/2015 11:56, Vaibhav Jain a écrit :
> Presently when a user-space process issues CXL_IOCTL_START_WORK ioctl we
> store the pid of the current task_struct and use it to get pointer to
> the mm_struct of the process, while processing page or segment faults
> from the capi card. However this causes issues when the thread that had
> originally issued the start-work ioctl exits in which case the stored
> pid is no more valid and the cxl driver is unable to handle faults as
> the mm_struct corresponding to process is no more accessible.
>
> This patch fixes this issue by using the mm_struct of the next alive
> task in the thread group. This is done by iterating over all the tasks
> in the thread group starting from thread group leader and calling
> get_task_mm on each one of them. When a valid mm_struct is obtained the
> pid of the associated task is stored in the context replacing the
> exiting one for handling future faults.
>
> The patch introduces a new function named get_mem_context that checks if
> the current task pointed to by ctx->pid is dead? If yes it performs the
> steps described above. Also a new variable cxl_context.glpid is
> introduced which stores the pid of the thread group leader associated
> with the context owning task.
>
> Reported-by: Matthew R. Ochs <mrochs at linux.vnet.ibm.com>
> Reported-by: Frank Haverkamp <HAVERKAM at de.ibm.com>
> Suggested-by: Ian Munsie <imunsie at au1.ibm.com>
> Signed-off-by: Vaibhav Jain <vaibhav at linux.vnet.ibm.com>

Looks good to me. Thanks!

Reviewed-by: Frederic Barrat <fbarrat at linux.vnet.ibm.com>



More information about the Linuxppc-dev mailing list