[Pvfs2-developers] Passing the entire param struct
Rob Ross
rross at mcs.anl.gov
Wed Mar 7 16:57:57 EST 2007
i'm shocked that everyone agrees :). pete :)? -- rob
Walter B. Ligon III wrote:
> This sounds reasonable.
>
> Walt
>
> Sam Lang wrote:
>>
>> On Mar 7, 2007, at 12:32 PM, Robert Latham wrote:
>>
>>> On Sun, Mar 04, 2007 at 03:23:30PM +0100, Julian Martin Kunkel wrote:
>>>
>>>> I found some unexpected behavior in the distribution behavior if I
>>>> set in MPI-programs the MPI hint striping_unit to (whatever) value.
>>>
>>>
>>> Thanks for the bug report. This one was rather gross. I've
>>> attached a patch
>>> to fix it.
>>>
>>> Turns out when you pass a pointer-to-int instead of a pointer-to-int64
>>> to a function that takes a void*, you get garbled data and a strp size
>>> of 584382286904951784 bytes. that's 0x81c2498000003e8, and 0x3e8 ==
>>> 1000 (8 bytes of real data and 8 bytes of random memory).
>>>
>>> Sam's come up with a proposal to make this sort of bug harder to
>>> trigger. We can discuss that in a separate thread.
>>>
>>
>> My proposal is to change the PVFS_dist_set_param call to take the
>> entire distribution param struct, instead of individual fields within
>> that struct. This would force callers to first get the current
>> parameters, so that they weren't overwriting fields that had already
>> been set, but it would prevent the type error that occurred above.
>> Also, for distributions with many parameters (instead of just one
>> like simple stripe), it would probably be easier to do:
>>
>> struct crazy_dist_params params;
>> get_params(¶ms);
>> params.param1 = 100;
>> ...
>> params.paramN = "hi";
>> set_params(¶ms);
>>
>> Currently, we would have to call set_param for each field.
>>
>> In PINT_dist_default_set_param, we get the offset into the param
>> struct based on the field name. Sort of a home-baked runtime
>> reflection in C. I think we could avoid all that by just passing in
>> the entire param struct.
>>
>> -sam
>>
>>> ==rob
>>>
>>> --
>>> Rob Latham
>>> Mathematics and Computer Science Division A215 0178 EA2D B059 8CDF
>>> Argonne National Lab, IL USA B29D F333 664A 4280 315B
>>> <sys_dist_setparam.patch>
>>> _______________________________________________
>>> Pvfs2-developers mailing list
>>> Pvfs2-developers at beowulf-underground.org
>>> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>>
>>
>> _______________________________________________
>> Pvfs2-developers mailing list
>> Pvfs2-developers at beowulf-underground.org
>> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>
More information about the Pvfs2-developers
mailing list