Event Channel notification issue - Gntdev device
Roger Pau Monné
royger at freebsd.org
Fri Aug 5 16:59:44 UTC 2016
On Thu, Aug 04, 2016 at 03:57:40PM +0530, Akshay Jaggi wrote:
> Hi,
>
> I've been working on unmap notifications for the grant table user space
> device (check progress: https://reviews.freebsd.org/D7293).
>
> I've added and tested unmap_clear_byte notification and unmap_send_event
> notification is left.
>
> I was implementing the unmap_send_notify on event-channel, but I am stuck.
> Basically, linux grabs a reference to the event-channel port, in case it is
> deallocated, so that it can still send a notify. I could not find such a
> reference-grabbing mechanism for event channel in FreeBSD. What should I do
> now?
> Should I add notify, adding the constraint that you cannot deallocate your
> reference to that port till the notify is sent (ie, after an unmap).
No, that would be quite bad because user-space applications could cause page
faults in the kernel.
You should look into adding reference counts to FreeBSD event channels. You
probably want to add a refcount(9) to struct xenisrc that you
increment/decrement in order to count references. A helper function to pick
extra references to event channels should also be added to the interface
exposed by xen_intr.
Roger.
More information about the freebsd-xen
mailing list