On Sun, 14 Jan 2018, Matthew Wilcox wrote:
quoted
Hmmm... At some point we should switch kmem_cache_create to pass a struct
containing all the parameters. Otherwise the API will blow up with
additional functions.
Obviously I agree with you. I'm inclined to not let that delay Kees'
patches; we can fix the few places that use this API later. At this
point, my proposal for the ultimate form would be:
Right. Thats why I said "at some point"....
struct kmem_cache_attr {
const char name[32];
Want to avoid the string reference mess that occurred in the past?
Is that really necessary? But it would limit the size of the name.
void (*ctor)(void *);
unsigned int useroffset;
unsigned int user_size;
};
kmem_create_cache_attr(const struct kmem_cache_attr *attr, unsigned int size,
unsigned int align, slab_flags_t flags)
(my rationale is that everything in attr should be const, but size, align
and flags all get modified by the slab code).
Thought about putting all the parameters into the kmem_cache_attr struct.
So
struct kmem_cache_attr {
char *name;
size_t size;
size_t align;
slab_flags_t flags;
unsigned int useroffset;
unsinged int usersize;
void (*ctor)(void *);
kmem_isolate_func *isolate;
kmem_migrate_func *migrate;
...
}
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>