On Fri, Mar 08, 2013 at 01:58:38PM +0100, Andre Oppermann wrote: > On 08.03.2013 10:16, Konstantin Belousov wrote: > > On Thu, Mar 07, 2013 at 06:03:51PM +0100, Andre Oppermann wrote: > >> pager_map: is used for pager IO to a storage media (disk). Not > >> pageable. Calculation: MAXPHYS * min(max(nbuf/4, 16), 256). > > > > It is more versatile. The space is used for pbufs, and pbufs currently > > also serve for physio, for the clustering, for aio needs. > > Good to know. Isn't the ceiling of MAXPHYS * 256 a bit tight then? I doubt it. The ceiling on the amount of pbufs only limit the concurrency from the subsystems I enumerated. The pbuf allocations are sleepable (usually), so there is no correctness problem from having it sizes slightly lower then could be, and 256 parallel i/o's is good enough still.
It might make sense to increase the pbuf KVA for arches with ample KVA, but it would only benefit special workloads which create lot of the concurrent i/o from the specific subsystems. E.g., the clustering cannot create more then 16MB of clusters for write, and with the default MAXPHYS of 128KB, this takes 64 pbufs.
pgpn8KgCWAcbF.pgp
Description: PGP signature