Re: [PATCH v2 5/5] kernel-shark-qt: Fix a bug in kshark_data_collection_alloc()

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

 



On Mon,  1 Oct 2018 16:59:21 +0300
Yordan Karadzhov <ykaradzhov@xxxxxxxxxx> wrote:

> The margin data added at the end of the data interval of the collection
> may actually include the beginning of another interval. Because of this
> we have to iterate over the margin data and check for "good" entries. In
> the case of a "good" entry being found, we have to continue extending the
> last interval.
> 
> Signed-off-by: Yordan Karadzhov <ykaradzhov@xxxxxxxxxx>
> ---
>  kernel-shark-qt/src/libkshark-collection.c | 26 +++++++++++++++-------
>  1 file changed, 18 insertions(+), 8 deletions(-)
> 
> diff --git a/kernel-shark-qt/src/libkshark-collection.c b/kernel-shark-qt/src/libkshark-collection.c
> index 79b6fff..c01eb59 100644
> --- a/kernel-shark-qt/src/libkshark-collection.c
> +++ b/kernel-shark-qt/src/libkshark-collection.c
> @@ -157,14 +157,24 @@ kshark_data_collection_alloc(struct kshark_context *kshark_ctx,
>  			 * number of margin entries requested, keep adding
>  			 * until you fill the margin.
>  			 */
> -			if (i + margin < j)
> -				i = j;
> -			else
> -				i += margin;
> -
> -			last_added = i;
> -			collection_add_entry(&temp, i, COLLECTION_BREAK);
> -			++break_count;
> +			if (i + margin >= j) {
> +				for (;j < i + margin; ++j) {
> +					if (cond(kshark_ctx, data[j], val)) {
> +						/* Good data has been found.

Nit, but have comments of the format:

						/*
						 * Good data has been found
> +						 * Continue extending the
> +						 * previous data interval.
> +						 */

Note, the Networking folks like the way you did it here, but the rest
of the Linux maintainers find it funny ;-)

-- Steve

> +						good_data = true;
> +						break;
> +					}
> +				}
> +			}
> +
> +			last_added = i = j;
> +			if (!good_data) {
> +				collection_add_entry(&temp, i, COLLECTION_BREAK);
> +				++break_count;
> +			}
>  		}
>  	}
>  




[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux