
An insane idea on reference counting [pdf] - kev009
http://epicsol.org/~misha/BSDCan-2014-lwref.pdf
======
sbahra
The work gleb is showing here pretty much looks to be proxy collection, which
_also_ has a whole parade of patents. An interesting mechanism with good
performance characteristics is defined at
[http://concurrencykit.org/presentations/ebr.pdf](http://concurrencykit.org/presentations/ebr.pdf)
and is easily pluggable into an RCU implementation.

~~~
citrin_ru
Do you know more about this patents?

------
colanderman
If writes are infrequent and readers issuing atomic operations on the same
word is expensive, why not use a set of read-write locks? Reader contention on
any given lock would be amortized over the set; the cost is eaten by writers
who must write-lock all the locks.

------
mzs
Could something like tokens from dragonfly BSD be adapted in the way that Matt
mentions:

[http://lists.dragonflybsd.org/pipermail/kernel/2004-February...](http://lists.dragonflybsd.org/pipermail/kernel/2004-February/082569.html)

------
mmastrac
Is the RCU patent really still an issue?

~~~
gregkh
Why wouldn't it be?

~~~
mmastrac
It must be getting close to expiry at this point -- wasn't it filed in the mid
90s?

EDIT:

I did a little digging and some calculations in the USPTO's horrible, horrible
expiry calculator and the list of patents in wikipedia (which TBH, I haven't
dug into to figure out how relevant they are but the list below is roughly
ordered from "fundamental" to "interesting things you can do with RCU"):

[http://www.google.com/patents/US5442758](http://www.google.com/patents/US5442758)
\-- should have expired last year

[http://www.google.com/patents/US5608893](http://www.google.com/patents/US5608893)
\-- will expire very shortly, but is noted as "lapsed" due to non-payment of
fees

[http://www.google.com/patents/US5727209](http://www.google.com/patents/US5727209)
\-- will expire next year

[https://www.google.com/patents/US6219690](https://www.google.com/patents/US6219690)
\-- this one will be a few more years

[http://www.google.com/patents/US6886162](http://www.google.com/patents/US6886162)
\-- even longer

~~~
gregkh
Good digging.

If the original RCU patents are expired, it might make more sense for the BSDs
to start to use RCU, it makes things much easier in the long run, and should
scale a lot better than this proposed solution.

~~~
kev009
Greg, if you know anybody that has some pull on these kinds of things within
IBM, can you contact The FreeBSD Foundation? We might need some kind of
"FreeBSD and derivative" exemption or an interpretation of the unexpired
patents effects on an RCU implementation. Justin Gibbs said last time he tried
to contact IBM he got directed immediately to legal staff and does not have a
good contact within IBM.

~~~
gregkh
Try contacting the Linux kernel RCU maintainer, he should be able to look into
if IBM is willing to do this or not.

Odds are, they are not, it was a very specific decision to let this be a GPLv2
only patent grant, but as I haven't worked for IBM for almost a decade, I
can't speak for them in any form (not that I ever could...)

