From: Jon M. <jon...@er...> - 2003-12-11 16:26:46
|
Hi, It seems like I have missed to do 'commit' on my removal of the core directory, so you get two versions of all files. That is corrected now. I had to remove the 'core' directory and move all the code there up to the net/tipc directory, rename 'tipc_buf' to 'sk_buff' etc., plus a lot of other cosmetic changes. I really hated to do this, but everybody keep telling me that this must be done to make the code acceptable for the Linux kernel community. Despite these changes, I have note touched the real basics of portability, the use of the tipc_*.h files etc. After all, names such as sk_buff, spin_lock_bh() etc can easily be remapped to other OS:es by a few #defines in tipc_adapter.h. But it is clear that the distinction between what is core code and what is adaptation code is not as visible as before, so special care must be taken to maintain this distinction in the code. The state of my 'unstable' code is the following: - It compiles, at least on 2.4 , and you can do insmod/rmmod with the module, mainly because most of the start-functions are disabled. - I have removed the tipc_big_lock, and am instead introducing locks at micro-level in each function or each file. I have introduced a few of those, but some remains to be done there. This also implies that I will have to "detach" certain upcalls from the link_reset() calls, by using signals. This is quite sensitive and tricky work, but I have a fairly clear idea about how do do it. I can explain it separately if you want to take that challenge, otherwise, this is the next thing I will do, as soon as my draft is out the door, hopefully by next week. - The cleanup of memory must be done per file/function via tipc_stop() now, and this is still not completely done. This is also tricky, since the order in which we stop the different functions is important. Otherwise the code is complete, and should be ready for testing and debugging. I suggest that you start with the tipc_start()/tipc_stop() functions, just ensuring that we can do insmod/rmmod without any crashes, but without starting any traffic. My locks must definitely be in place before we can start that last part. Regards /Jon Guo, Min wrote: >Hi, Jon > > I tried the code on the Linux kernel 2.4.20 and found the unstable code can not run. > > After I read your code, I found some problems > > 1. Some function are left as blank or unavailable ,such as named_init(). > 2. No big lock for tipc is not available. > 3. there are identical function in the files which can be found in the different directory with the same name, such as both Name_table.c and core/Name_table.c have > function nametbl_stop > > We would like to help you complete the unstable version, if you agree, could you please write a simple name translation table to us,such as original named to name_distr? We also glad to know the unimplemented and unavailable function in the unstable version but available in the stable_ericssion version. > >Thanks >Guo Min >The content of this email message solely contains my own personal views, >and not those of my employer. > > |