[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <11B46653-99D3-4BF5-8F09-B14A9C0E06ED@us.ibm.com>
Date: Mon, 7 Mar 2016 22:06:28 -0600
From: Matt Ochs <mrochs@...ibm.com>
To: Ian Munsie <imunsie@....ibm.com>
Cc: Michael Ellerman <michaele@....ibm.com>,
linux-kernel <linux-kernel@...r.kernel.org>,
Manoj Kumar <kumarmn@...ibm.com>,
linuxppc-dev <linuxppc-dev@...abs.org>,
Michael Neuling <mikey@...ling.org>
Subject: Re: [PATCH v3 1/2] cxl: Add mechanism for delivering AFU driver specific events
> On Mar 7, 2016, at 7:48 PM, Ian Munsie <imunsie@....ibm.com> wrote:
>
> From: Ian Munsie <imunsie@....ibm.com>
>
> This adds an afu_driver_ops structure with event_pending and
> deliver_event callbacks. An AFU driver such as cxlflash can fill these
> out and associate it with a context to enable passing custom AFU
> specific events to userspace.
>
> The cxl driver will call event_pending() during poll, select, read, etc.
> calls to check if an AFU driver specific event is pending, and will call
> deliver_event() to deliver that event. This way, the cxl driver takes
> care of all the usual locking semantics around these calls and handles
> all the generic cxl events, so that the AFU driver only needs to worry
> about it's own events.
>
> The deliver_event() call is passed a struct cxl_event buffer to fill in.
> The header will already be filled in for an AFU driver event, and the
> AFU driver is expected to expand the header.size as necessary (up to
> max_size, defined by struct cxl_event_afu_driver_reserved) and fill out
> it's own information.
>
> Since AFU drivers provide their own means for userspace to obtain the
> AFU file descriptor (i.e. cxlflash uses an ioctl on their scsi file
> descriptor to obtain the AFU file descriptor) and the generic cxl driver
> will never use this event, the ABI of the event is up to each individual
> AFU driver.
>
> Signed-off-by: Ian Munsie <imunsie@....ibm.com>
Reviewed-by: Matthew R. Ochs <mrochs@...ux.vnet.ibm.com>
Powered by blists - more mailing lists