Messages in this thread |  | | Date | Thu, 18 Oct 2001 10:22:26 +0200 | From | Andrea Arcangeli <> | Subject | Re: [PATCH] 2.4.13pre3aa1: expand_fdset() may use invalid pointer |
| |
On Thu, Oct 18, 2001 at 12:11:24PM +0530, Maneesh Soni wrote: > +struct rcu_fd_array { > + struct rcu_head rh; > + struct file **array; > + int nfds; > +}; > + > +struct rcu_fd_set { > + struct rcu_head rh; > + fd_set *openset; > + fd_set *execset; > + int nfds; > +};
Some other very minor comment. I'd also rename them fd_array, and fd_set.
think, when we add a spinlock to a data structure (say a semaphore or a waitqueue) to scale per-spinlock or per-waitqueue we're not going to rename the "struct semaphore" into "struct per_spinlock_semaphore", at least unless we also provide two different types of semaphores.
same happens if we move a data structure into the slab cache, we don't call it "struct slab_semaphore" just because it gets allocated/freed via the slab cache rather than by using kmalloc/kfree.
I'd also put the rcu_head at the end of the structure, the rcu_head should be used only when we are going to free the data, so it's not used at runtime and it worth to keep the other fields in the first cacheline so they're less likely to be splitted off in more than one cacheline.
Andrea - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |