Hi greg, I take a snapshot of the fields here.
/* Basic Accounting Fields start */ char ac_comm[TS_COMM_LEN]; /* Command name */ __u8 ac_sched __attribute__((aligned(8))); /* Scheduling discipline */ __u8 ac_pad[3];
After ac_sched is ac_pad, which is just padding. I still can't understand the meaning of impose an alignment of 8 on ac_sched.
__u32 ac_uid __attribute__((aligned(8))); /* User ID */ __u32 ac_gid; /* Group ID */ __u32 ac_pid; /* Process ID */
Because we have a =aligned(8)= on ac_uid, so the alignment in =ac_sched= does not affect variables here and after. by default _u32 has alignment has 4, why enforce 8 here? Is it because we need a mov64-like instruction that takes ac_uid and ac_gid together? still a weird reason though. -- Best, Shiyao