On 03/03/2015 04:44 AM, Christian Ehrhardt wrote:
From: Christian Ehrhardt <ehrhardt@xxxxxxxxxxxxxxxxxx> For our tests with about 250k files we found the smalloc pool being depleated. Now for us values of 3-4 would be enough, but since it is a compile time switch I'd like to make it safe for everybody and set 8. Since it is a dynamic sizing anyway that should hopefully be ok for everybody.
The reason it was scaled down to 1 pool is because we could run into situations where one of the forked processes (or threads) would cause the expansion of pools, and smalloc() could then return memory that wasn't properly shared (or valid) between all jobs. This was recently found and fixed, and the smalloc code should probably just be updated to reflect that. We can't runtime add pools safely.
Right now it's 1 pool at 16MB - how about we just bump it to 64MB for that one pool? Or, alternatively, pre-add 4 pools initially when smalloc is setup?
-- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html