FD Taps
===========================
2015-07-27 Barret Rhoden (brho)

Contents
---------------------------
What are FD Taps?
Where are the FD Taps?


What are FD Taps?
---------------------------

Where are the FD Taps?
---------------------------
### Basics ###
In Linux, the epoll blob is attached to the File (I think, this is the struct
eventpoll).  Linux can get from a sock -> socket -> file -> eventpoll.  From the
lower levels of the networking stack, you can get all the way to the accounting
info for epoll.

In Akaros, and in Plan 9, the analogous object to the file is the chan.
However, in the networking stack, the conversation (like a struct sock) does not
keep a pointer to it's chan.  Further, there is not a 1:1 correspondence between
convs and chans: there could be several chans using the same conv, similar to
using several OS files for the same underlying disk file (inode).  Although that
might be a bad idea for network connections, it'd be nice to not have FD Taps
assume anything about the underlying device.  So for Akaros, we want to have the
tap somewhere within the device.  For #I, that probably means hanging off the
conversation.  For #M (devmnt), it would be some other struct, where the tap is
translated into a 9p message.

Another aspect of this issue is that these are "FD" taps, not "file/chan" taps.
If you read through the Q&A for epoll's man page, there are a bunch of weird
conditions that result from having the tap on the file.  This is due to having
multiple FDs point to the same file.

The approach I took in Akaros was to have the tap in both the FD and within the
device (the conversation).  If we're declaring interest in an FD, the FD is a
reasonable place to track that interest.  We also need to track the tap within
the device, as mentioned above.  Now we need to sort out the registration of
taps and avoid any concurrency issues.

### Code Issues ###
We need to worry about a few things.  Overall, we want to register a tap on an
FD (struct file_desc), and that registration needs to go through the device.
Perhaps the device doesn't support taps, or it doesn't support the event filters
we requested.  So we need to handle registration failure.  We also need to
handle concurrent deregistrations, re-registrations, opens, and and closes.

A basic approach would be to lock the FD table, make sure there's only one tap,
register the new one with the device, insert into the table, and unlock.  The
lock protects adding the tap (can only have one, racing on the FD's tap
pointer), concurrent tap removals, enforces the FD points to a file, and
protects against FD closes.

But the problem is the FD table lock is a spinlock, and we don't want it to be
more than that.  Device registration could be a blocking call.  So we need to
come up with something else.  Part of the problem involves syncing with two
places: the FD and the conv.

At this point I thought about putting the tap in the device, and not the FD at
all.  Deregistration becomes tricky.  We want to destroy the tap when the FD
closes, or at least turn it off.  Say we do something like "after closing,
deregister the tap".  We could come up with enough info to the device to make it
work - we'd probably want to pass in the FD (integer), proc*, and probably the
chan.  However, once we closed, the FD is now free, and we could have something
like:
	Trying to close:	User opens and taps a conv:
	close(5) (FD 5 was 1/data with a tap)
				open(/net/tcp/1/data) (get 5 back)
				register_fd_tap(5) (two taps on 5, might fail!)
	deregister_fd_tap(5)
	cclose (needed to keep the chan alive)
At the end, we might have no taps on 5.  Or if we opened 2/data instead of
1/data, the deregister_fd_tap call will accidentally deregister from the new FD
5 instead of the old one, and the old one will still be active!

Maybe we deregister first, then close, to avoid FD reuse problems.  Remember
that the only locking goes on in close.  Now consider:
	Trying to close:	User tries to add (another) tap:
	deregister_fd_tap(5)
				register_fd_tap(5)
	close(5) (was 1/data with a tap)
Now we just closed with a tap still registered.  Eventually, that FD tap might
fire.  Spurious events are okay, but we could run into issues.  Say the evq in
the original tap is no longer valid.  It was buggy for the user to perform this
operation, but there are probably other issues.  And we didn't even get in to
how registration works (register before putting it in the FD table?  After?
What about concurrent ops?)

We could flag the FD as 'untappable'.  But it seems that we're going to need to
sync with the FD table regardless of where the tap exists.  We might as well go
back to the original plan of having the tap hang off the FD in some manner.  It
makes the most sense, aesthetically, since the FD tap is an attribute of the FD.

One trick that would help with FD reuse is to have the device op for
register/deregister take the fd_tap pointer.  Not only can we squeeze more info
in the tap without mucking with the function signature, but the main benefit is
that so long as the FD tap is allocated, it is unique.  FD = 5 can be reused.
FD_tap = 0xffff800012345678 is unique.

However, simply adding the tap pointer to register() isn't enough.  Say we did
the basic "lock the FD table, (basic checks), attach the pointer, unlock, call
device register, then free it if register fails", and a dereg locks the table,
yanks it out, then call device dereg, then frees.  We still have some issues:

- What if a deregister occurs while we are still trying to register and failed?
  Who actually frees the FD tap?  We can't completely free it while the other op
  is in progress.  That sounds like a job for a kref on the FD tap.

- What if we added the tap, then go to register, then it fails, then we have a
  concurrent close try to deregister it.  Now we have concurrent deregisters.
  We can deal with this by having the device op accept spurious deregisters, but
  that's ugly (and unnecessary, see below).

- What if a legit deregister occurs while we are registering and eventually will
  succeed?  Say:
						sys_register_fd_tap(0xf00)
						adds to fdset, unlocks
	close(5)
	yanks 0xf00 from the fd
	deregister tap 0xf00 (fails, spurious)
						register tap(chan, 0xf00)
	free 0xf00?
The deregister fails, since it was never there (remember we said it could have
spurious deregister calls).  Then register happens.  But the FD is closed!  And
then who is freeing the tap?  Hopefully we don't free it while the device still
has a pointer...

The issue here is the assumption that the tap would have been registered.  Since
we unlock the FD table, we can violate those assumptions.  We want to guarantee
the order of register/deregister operations, such that register happens before
deregister.

It turns out that the kref can do this too!  The trick is to use the release
operation to do the deregistration.  That ensures that so long as a reference is
held, we won't call deregister *and* that deregister will happen exactly once.
close() simply becomes "lock the FDT, remove the tap, unlock, decref": extremely
simple.  Note that decref could trigger the release method which could then
sleep (since it calls into a device), so we decref outside the lock.  register()
ups the refcnt by two, one for itself to keep the tap alive (and preventing a
concurrent dereg) and one for the pointer in the FD table.

Note that as soon as we unlock, our tap could be decref'd and a completely new
tap could be added and registered for that FD.  That means the following can
happen:
	lock FDT
	add tap 0xf00 to FD 5
	unlock FDT
						lock FDT
						remove tap from FD 5
						unlock FDT
						decref 0xf00
						(new syscall)
						lock FDT
						add tap 0xbar to FD 5
						unlock FDT
						register tap 0xbar for FD 5
	register tap 0xf00 for FD 5
	decref and trigger a deregister of f00

In this case the device could see two separate taps (0xf00 and 0xbar) for the
same FD (5).  It just so happens that one of them will deregister soon.  It is
also possible for an event to fire between the left column's register and
decref, at which point two events would be created (possibly with the same evq
and event id).

The final case to consider is when registration fails.  To keep things simple
for the device, we can make sure that we only deregister a tap if our register
succeeded.  To do this nicely with krefs, we can simply change the release
method, based on whether or not registration succeeds.
