cxl: Fix DSI misses when the context owning task exits

David Laight David.Laight at ACULAB.COM
Wed Jan 13 00:29:50 AEDT 2016


From: Michael Ellerman
> Sent: 11 January 2016 09:14
> On Tue, 2015-24-11 at 10:56:18 UTC, Vaibhav Jain wrote:
> > 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.

I don't even claim to understand the linux model for handling process
address maps, nor what the cxl driver is doing, but the above looks
more than dodgy.

	David



More information about the Linuxppc-dev mailing list