On Jun 2, 2010, at 5:38 AM, George Bosilca wrote:

> I think adding support for sysv shared memory is a good thing. However, I 
> have some strong objections over the implementation in the hg tree. Here are 
> 2 of the major ones:
> 
> 1) the sysv shared memory creation is __atomic__ based on the flags used. 
> Therefore, all the RML messages exchange is totally useless.

Not sure what you mean here.  common/sm may create new shmem segments at any 
time (e.g., during coll sm).  The RML message exchange is to ensure that only 1 
process creates and initializes the segment and then all the others just attach 
to it.

The initializing of the segment after it is created/attached could be pipelined 
a little more.  E.g, since the init has an atomicly-set flag indicating when 
it's done, the root could create the seg, signal the others that they can 
attach, and then do the init -- the non-root procs can wait for flag to change 
atomicly to know when the seg has been initialized).  Is that what you're 
referring to?

> 2) the whole code is replicated in the 3 files (mmap, sysv and windows), even 
> the common parts. However in the sysv case most of the comments have been 
> modified to remove all capitals letter. I'm in favor of extracting all the 
> common parts and moving them in a special file. What should be kept in the 
> particular files should only be the really different parts (small part of the 
> init and finalize).

Sam -- are the common parts really common?  I.e., could they be factored out?  
Or are they "just different enough" that factoring them out would be a PITA?

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to