Subject: Re: [PATCH v9 1/4] perf,kvm/{x86,s390}: Remove dependency on uapi/kvm_perf.h

From: David Ahern <[email-masked]>
Date: Wed, 7 Oct 2015 10:11:43 -0600

On 10/6/15 8:25 PM, Hemant Kumar wrote:
> @@ -358,7 +357,12 @@ static bool handle_end_event(struct perf_kvm_stat *kvm,
>   	time_diff = sample->time - time_begin;
>
>   	if (kvm->duration && time_diff > kvm->duration) {
> -		char decode[DECODE_STR_LEN];
> +		char *decode = zalloc(decode_str_len);

decode can still be a stack variable even with variable length.

> +
> +		if (!decode) {
> +			pr_err("Not enough memory\n");
> +			return false;
> +		}
>
>   		kvm->events_ops->decode_key(kvm, &event->key, decode);
>   		if (!skip_event(decode)) {
> @@ -366,6 +370,7 @@ static bool handle_end_event(struct perf_kvm_stat *kvm,
>   				 sample->time, sample->pid, vcpu_record->vcpu_id,
>   				 decode, time_diff/1000);
>   		}
> +		free(decode);
>   	}
>
>   	return update_kvm_event(event, vcpu, time_diff);
> @@ -386,7 +391,8 @@ struct vcpu_event_record *per_vcpu_record(struct thread *thread,

-----8<-----

> @@ -575,7 +581,7 @@ static void show_timeofday(void)
>
>   static void print_result(struct perf_kvm_stat *kvm)
>   {
> -	char decode[DECODE_STR_LEN];
> +	char *decode;

and a stack variable here too.

David