Messages in this thread | | | Date | Fri, 16 May 2008 06:41:16 -0700 | From | Mike Travis <> | Subject | Re: [PATCH] modules: Use a better scheme for refcounting |
| |
Eric Dumazet wrote: > Rusty Russell a écrit : ... >> >> Hi Eric, >> >> I like this patch! The plan was always to create a proper dynamic >> per-cpu >> allocator which used the normal per-cpu offsets, but I think module >> refcounts >> are worthwhile as a special case. >> >> Any chance I can ask you look at the issue of full dynamic per-cpu >> allocation? The problem of allocating memory which is laid out precisely >> as the original per-cpu alloc is vexing on NUMA, and probably requires >> reserving virtual address space and remapping into it, but the rewards >> would be maximally-efficient per-cpu accessors, and getting rid of that >> boutique allocator in module.c. >> >> > You mean using alloc_percpu() ? Problem is that current implementation > is expensive, since it is using > an extra array of pointers (struct percpu_data). On x86_64, that means > at least a 200% space increase > over the solution of using 4 bytes in the static percpu zone. We > probably can change this to dynamic > per-cpu as soon as Mike or Christopher finish their work on new dynamic > per-cpu implementation ?
Yes, the zero-based percpu variables followed by the cpu_alloc patch should provide this and shrink the code quite well, including in some cases removing locking requirements (because the resultant instructions will be atomic.)
Thanks, Mike -- 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/
| |