Messages in this thread | | | Date | Tue, 19 Oct 2010 11:05:16 -0400 | From | Vivek Goyal <> | Subject | Re: [PATCH] Fix array overflow in CFQ |
| |
On Tue, Oct 19, 2010 at 03:23:22PM +0200, Andi Kleen wrote: > > > slice = group_slice * count / > > max_t(unsigned, cfqg->busy_queues_avg[cfqd->serving_prio], > > cfq_group_busy_queues_wl(cfqd->serving_prio, cfqd, > >cfqg)); > > > >So for IDLE class, we return immediately from the function and never > >execute cfqg->busy_queues_avg[IDLE]. > > Hmm that's true. But why do you put this into a global variable > anyways, can't it > just be a local?
We keep track of average number of queues per group per prio class. So it can't be local as it historical data.
> >Now to remove the gcc warning we can increase the size of busy_queues_avg[] > >array but third field should always remain unused. > > > It's better to increase the field still I think.
Agreed.
Jens, do you want me to regenerate your patch so that we increase the size of ->busy_queues_avg[CFQ_PRIO_NR] but not ->service_trees[][].
Thanks Vivek
| |