Re: [PATCH 2/2] complib/cl_event_wheel.c minor update for the sample test program

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 02, 2018 at 09:17:43AM -0400, Hal Rosenstock wrote:
> On 11/2/2018 9:11 AM, Honggang LI wrote:
> > On Fri, Nov 02, 2018 at 08:40:40AM -0400, Hal Rosenstock wrote:
> >> On 11/1/2018 10:53 PM, Honggang LI wrote:
> >>> From: Honggang Li <honli@xxxxxxxxxx>
> >>>
> >>> Signed-off-by: Honggang Li <honli@xxxxxxxxxx>
> >>> ---
> >>>  complib/cl_event_wheel.c | 9 +++------
> >>>  1 file changed, 3 insertions(+), 6 deletions(-)
> >>>
> >>> diff --git a/complib/cl_event_wheel.c b/complib/cl_event_wheel.c
> >>> index 27443f66..21e1f4ee 100644
> >>> --- a/complib/cl_event_wheel.c
> >>> +++ b/complib/cl_event_wheel.c
> >>> @@ -457,6 +457,7 @@ uint32_t cl_event_wheel_num_regs(IN cl_event_wheel_t * const p_event_wheel,
> >>>  }
> >>>  
> >>>  #ifdef __CL_EVENT_WHEEL_TEST__
> >>> +#include <unistd.h> /* sleep() */
> >>>  
> >>>  /* Dump out the complete state of the event wheel */
> >>>  void __cl_event_wheel_dump(IN cl_event_wheel_t * const p_event_wheel)
> >>> @@ -511,14 +512,10 @@ static uint64_t __test_event_aging(uint64_t key, uint32_t num_regs, void *contex
> >>>  int main()
> >>>  {
> >>>  	cl_event_wheel_t event_wheel;
> >>> -	/*  uint64_t key; */
> >>>  
> >>>  	/* init complib *
> >>>  	complib_init();
> >>>  
> >>> -	/* construct */
> >>> -	cl_event_wheel_construct(&event_wheel);
> >>> -
> >>
> >> While this is redundant, it breaks the general design pattern. Should it
> >> be changed ? Does it make some difference ?
> > 
> > The cl_event_wheel_init duplicates the works for cl_event_wheel_construct.
> 
> That's what I meant by it being redundant.
> 
> > If you want keep the general design pattern, you need update
> > cl_event_wheel_init to call cl_event_wheel_construct.
> 
> Why ? It may have just been "optimized" to incorporate what was needed
> from construct in the init function. I don't see why this needs to change.

Just scanned opensm code, all usage of cl_event_wheel_init_ex stick with cl_event_wheel_construct.

OK. It seems your comments make sense.

> 
> >>
> >> Note that event wheel is used for SM trap handling and also to support
> >> now "ancient" vendor driver (for generation 1 prior to OpenIB/OpenFabrics).
> 
> These use cases follow the design pattern of calling construct and then
> init.
> 
> >>
> >>>  	/* init */
> >>>  	cl_event_wheel_init(&event_wheel);
> >>>  
> >>> @@ -534,7 +531,7 @@ int main()
> >>>  			   "The Second Aging Event");
> >>>  
> >>>  	cl_event_wheel_reg(&event_wheel, 3,	/*  key */
> >>> -			   cl_get_time_stamp() + 3500000,	/*  3 sec lifetime */
> >>> +			   cl_get_time_stamp() + 3500000,	/*  3.5 sec lifetime */
> >>>  			   __test_event_aging,	/*  cb */
> >>>  			   "The Third Aging Event");
> >>>  
> >>> @@ -542,7 +539,7 @@ int main()
> >>>  
> >>>  	sleep(2);
> >>>  	cl_event_wheel_reg(&event_wheel, 2,	/*  key */
> >>> -			   cl_get_time_stamp() + 8000000,	/*  3 sec lifetime */
> >>> +			   cl_get_time_stamp() + 8000000,	/*  8 sec lifetime */
> >>>  			   __test_event_aging,	/*  cb */
> >>>  			   "The Second Aging Event Moved");
> >>>  
> >>>
> > 



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux