Messages in this thread |  | | Date | Mon, 5 May 2003 22:02:50 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] kmalloc_percpu |
| |
"David S. Miller" <davem@redhat.com> wrote: > > I think you should BUG() if a module calls kmalloc_percpu() outside > of mod->init(), this is actually implementable. > > Andrew's example with some module doing kmalloc_percpu() inside > of fops->open() is just rediculious.
crap. Modules deal with per-device and per-mount objects. If a module cannot use kmalloc_per_cpu on behalf of the primary object which it manages then the facility is simply not useful to modules.
The static DEFINE_PER_CPU allocation works OK in core kernel because core kernel does _not_ use per-instance objects. But modules do.
A case in point, which Rusty has twice mentioned, is the three per-mount fuzzy counters in the ext2 superblock. And lo, ext2 cannot use the code in this patch, because people want to scale to 4000 mounts.
In those very rare cases where a module wants allocation to be performed at module_init()-time (presumably global stats counters), they can use DEFINE_PER_CPU, so we should just not export kmalloc_per_cpu() to modules at all.
- 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/
|  |