On Fri, Jan 28, 2022, Maciej S. Szmigiero wrote: > From: "Maciej S. Szmigiero" <maciej.szmigiero@xxxxxxxxxx> > > Commit 7661809d493b ("mm: don't allow oversized kvmalloc() calls") has > forbidden using kvmalloc() to make allocations larger than INT_MAX (2 GiB). > > Unfortunately, adding a memslot exceeding 1 TiB in size will result in rmap > code trying to make an allocation exceeding this limit. > Besides failing this allocation, such operation will also trigger a > WARN_ON_ONCE() added by the aforementioned commit. > > Since we probably still want to use kernel slab for small rmap allocations > let's only redirect such oversized allocations to vmalloc. > > A possible alternative would be to add some kind of a __GFP_LARGE flag to > skip the INT_MAX check behind kvmalloc(), however this will impact the > common kernel memory allocation code, not just KVM. Paolo has a cleaner fix for this[1][2], but it appears to have stalled out somewhere. Paolo??? [1] https://lore.kernel.org/all/20211015165519.135670-1-pbonzini@xxxxxxxxxx [2] https://lore.kernel.org/all/20211016064302.165220-1-pbonzini@xxxxxxxxxx