> Yes, but what do you suggest for the following problem:> alloc(max_loop*sizeof(struct loop_device))> > where sizeof(struct loop_device)==304 and 1<=max_loop<=16384> > For the smallest allocation (304 bytes) vmalloc is clearly wasteful> and for the largest allocation (~ 5 MBytes) kmalloc doesn't work.