LWN.net Logo

Changing RCU in 2.6.3?

Dipankar Sarma recently posted a pair of patches which change the interface to the read-copy-update functionality in the kernel; these patches shrink the rcu_head structure and change the prototype of the call_rcu() function. Andrew Morton's response was that the patches looked good, but now the focus was on stabilization, not improvements. He went on to say:

Oh I'd be okay with merging a change like this into (say) 2.6.3-pre1, without it having had a run in 2.7. We need to be able to do things like that.

The only problem with this plan, of course, is that such a change would break all code using RCU - during a stable series. The rcu_head structure changes would break binary modules; very few developers are particularly concerned about that. The call_rcu() prototype change, however, would be a source API change; that sort of thing worries more people. Some objections were raised, but it appears that Andrew's plans have not changed. RCU users may want to bear in mind that an API change may well happen early in the 2.6 series.


(Log in to post comments)

Changing RCU in 2.6.3?

Posted Aug 9, 2003 23:49 UTC (Sat) by elanthis (guest, #6227) [Link]

and this, i believe, is why linux isn't going to be truly user-friendly (meaning real users, not admins/hackers) anytime soon. if I can't pop in a cd that came with my new hardware, and have it install (even if that means build) the driver, and just work, it isn't going to be good enough. an abi change is bad for many drivers that can't/won't be open-sourced (like nvidia), but an api changes makes it near impossible to even hack around that.

someday there seriously needs to be, in the least, an effort to define and keep consistant an api that devices can use. if nothing else, at least using the version numbers sanely (i.e., making them mean something in regards to api) would be great. a solution that would keep both 3rd-party and core-developers happy, I think, would be a special "3rd party compatible api" module. the core kernel apis can change, even ones that core drivers use, so long as this module is updated. 3rd-party drivers can just always rely on this module being available, and having a stable api (or, better yet, stable abi) - sure, a "wrapper" module would slow things down, but the 3rd-party developers can just live that. :P

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds