Messages in this thread | | | Subject | Re: [PATCH] posix-cpu-timers: Merge running and checking_timer state in one field | From | Jason Low <> | Date | Tue, 20 Oct 2015 11:15:45 -0700 |
| |
On Tue, 2015-10-20 at 02:18 +0200, Frederic Weisbecker wrote: > This way we might consume less space in the signal struct (well, > depending on bool size or padding) and we don't need to worry about > ordering between the running and checking_timers fields.
This looks fine to me. I ended up going with booleans since I thought that makes the code more readable, but this method would be okay too.
I do have 1 question below.
> +/* struct thread_group_cputimer::state bits */ > +#define CPUTIMER_STATE_RUNNING 1 > +#define CPUTIMER_STATE_CHECKING 2 > + > /** > * struct thread_group_cputimer - thread group interval timer counts > * @cputime_atomic: atomic thread group interval timers. > - * @running: true when there are timers running and > - * @cputime_atomic receives updates. > - * @checking_timer: true when a thread in the group is in the > - * process of checking for thread group timers. > - * > + * @state: flags describing the current state of the cputimer. > + * CPUTIMER_STATE_RUNNING bit means the timers is elapsing. > + * CPUTIMER_STATE_CHECKING bit means that the cputimer has > + * expired and a thread in the group is checking the > + * callback list. > * This structure contains the version of task_cputime, above, that is > * used for thread group CPU timer calculations. > */ > struct thread_group_cputimer { > - struct task_cputime_atomic cputime_atomic; > - bool running; > - bool checking_timer; > + struct task_cputime_atomic cputime_atomic; > + unsigned int state;
Here are we actually increasing the overhead from 2 bytes -> 4 bytes? If we want to use less space, I was thinking 'unsigned char'.
| |