On Mon, 16 Oct 2017, Michal Hocko wrote: > On Mon 16-10-17 11:02:24, Cristopher Lameter wrote: > > On Mon, 16 Oct 2017, Michal Hocko wrote: > > > > > > So I mmap(MAP_CONTIG) 1GB working of working memory, prefer some data > > > > structures there, maybe recieve from network, then decide to write > > > > some and not write some other. > > > > > > Why would you want this? > > > > Because we are receiving a 1GB block of data and then wan to write it to > > disk. Maybe we want to modify things a bit and may not write all that we > > received. > > And why do you need that in a single contiguous numbers? If performance, > do you have any numbers that would clearly tell the difference? Again we have that in the presentation. Why keep asking the same question if you already have the answer multiple times? 1G of data requires 250000 page structs to handle if the memory is not contiguous. This is more than most controllers can support and thus the overhead will dominate I/O. Also the scatter gather lists will cover lots of linked 4k pages even to manage. And in practice we already have multiple gigabytes per requests which makes it even more severe. You cannot do a "cp" operation anymore. Instead you need to have special code that allocates huge pages, does direct I/O etc etc, -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html