Re: [PATCH RT v2] tracing: make preempt_lazy and migrate_disable counter smaller

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

 



On Mon, Feb 24, 2020 at 06:01:01PM +0100, Sebastian Andrzej Siewior wrote:
> The migrate_disable counter should not exceed 255 so it is enough to
> store it in an 8bit field.
> With this change we can move the `preempt_lazy_count' member into the
> gap so the whole struct shrinks by 4 bytes to 12 bytes in total.
> Remove the `padding' field, it is not needed.
> Update the tracing fields in trace_define_common_fields() (it was
> missing the preempt_lazy_count field).
> 
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> ---
> v1…v2:
>   - drop the `padding' member
>   - update the members in trace_define_common_fields() to match struct
>     trace_entry.

seems ok to me.. not sure we care, but just wanted to point out
that there's a 'not described gap' in the sched_wakeup's format
file and probably in other formats as well:

	# cat /sys/kernel/debug/tracing/events/sched/sched_wakeup/format
	name: sched_wakeup
	ID: 310
	format:
		field:unsigned short common_type;       offset:0;       size:2; signed:0;
		field:unsigned char common_flags;       offset:2;       size:1; signed:0;
		field:unsigned char common_preempt_count;       offset:3;       size:1; signed:0;
		field:int common_pid;   offset:4;       size:4; signed:1;
		field:unsigned char common_migrate_disable;     offset:8;       size:1; signed:0;
		field:unsigned char common_preempt_lazy_count;  offset:9;       size:1; signed:0;

		field:char comm[16];    offset:12;      size:16;        signed:1;
		field:pid_t pid;        offset:28;      size:4; signed:1;
		field:int prio; offset:32;      size:4; signed:1;
		field:int success;      offset:36;      size:4; signed:1;
		field:int target_cpu;   offset:40;      size:4; signed:1;


there's "common_preempt_lazy_count" field on offset 9 with size 1:
	common_preempt_lazy_count;  offset:9;       size:1;

followed by "comm" field on offset 12:
	field:char comm[16];    offset:12;      size:16;        signed:1;


which makes 2 bytes gap in between, that might confuse some applications
like bpftrace ;-) however there's still enough data to workaround that,
so I'm ok with that

thanks,
jirka





[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux