Does SCO own read-copy-update?
Now, it's hard to point at a particular spot in the kernel and say "this is the NUMA (or SMP) implementation;" that code tends to be widely distributed. But read-copy-update is a different story. RCU is a complex locking technique that is well suited to data structures that are read often and modified relatively rarely; LWN covered RCU on the Kernel Page almost one year ago. The RCU patches did indeed come from IBM, with early patches showing up in the first part of 2001. IBM also presented RCU at the 2001 Ottawa Linux Symposium. SCO could conceivably have a case here.
The origins of RCU are described in this paper by Paul McKenney and John Slingwine. In the acknowledgements there you'll find:
The paper is intense and detailed - if its authors copied the technique from Unix, they went to unusual lengths to track down earlier work, perform benchmarking, and apply complicated mathematics to the question of which locking scheme is best. The real proof of origin will be in the reports the authors sent back to various funding agencies over a period of almost thirty years. It would appear, however, that SCO is going to have a hard time establishing ownership of this technique.
The code, however, could be a different story. The original Linux RCU patch was taken out of Sequent's old Dynix/ptx operating system. Information on Dynix/ptx is a little hard to come by now, but the Internet Archive has its uses... here's a copy of a Sequent.com page from 2000 describing the system. Among other things, this page says:
So, work from project Monterey did go into Dynix, and code from Dynix went (after some significant transformations) into Linux. So it is truly possible that SCO is sitting on a code base which contains an RCU implementation that is remarkably similar to the one found in the Linux 2.5 kernel. Who owns that code, however, will depend entirely on the history of contracts between SCO and IBM. It seems unlikely that RCU was part of the original Unix code base; more likely it was added to Monterey by Sequent/IBM. Depending on what contracts IBM signed, it may well have given up the right to release the RCU code under the GPL. Or maybe not.
RCU is used in several places in the 2.5 kernel. It has, in general, been
retrofitted into existing areas of code as a performance improvement. If
need be, those patches could certainly be reversed and RCU removed from the
kernel. It would slow down 2.6, and have a small performance impact, but
it would not be that big of a problem. But that is an issue for the
future; SCO first must prove its rights to the code.
