>> Doing preallocations would probably work but not sure if that can be >> done without >> complicating code too much. Could you describe what you have in mind? > > So, blkg_create() already takes @new_blkg argument which is the > preallocated blkg and used during q init. Wouldn't it work to make > blkg_lookup_create() take @new_blkg too and pass it down to > blkg_create() (and also free it if it doesn't get used)? Then, > blkg_conf_prep() can always (or after a failure with -ENOMEM) allocate > a new blkg before calling into blkg_lookup_create(). I don't think > it'll complicate the code path that much.
That makes sense. I will work a patch that does that (unless you are interested in implementing it yourself).