On 1/11/21 6:11 PM, David Hildenbrand wrote: > Right now, we only check against MAX_PHYSMEM_BITS - but turns out there > are more restrictions of which memory we can actually hotplug, especially > om arm64 or s390x once we support them: we might receive something like > -E2BIG or -ERANGE from add_memory_driver_managed(), stopping device > operation. > > So, check right when initializing the device which memory we can add, > warning the user. Try only adding actually pluggable ranges: in the worst > case, no memory provided by our device is pluggable. > > In the usual case, we expect all device memory to be pluggable, and in > corner cases only some memory at the end of the device-managed memory > region to not be pluggable. > > Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx> > Cc: Jason Wang <jasowang@xxxxxxxxxx> > Cc: Pankaj Gupta <pankaj.gupta.linux@xxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxxxxx> > Cc: Oscar Salvador <osalvador@xxxxxxx> > Cc: Wei Yang <richard.weiyang@xxxxxxxxxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: catalin.marinas@xxxxxxx > Cc: teawater <teawaterz@xxxxxxxxxxxxxxxxx> > Cc: Anshuman Khandual <anshuman.khandual@xxxxxxx> > Cc: Pankaj Gupta <pankaj.gupta@xxxxxxxxxxxxxxx> > Cc: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Cc: hca@xxxxxxxxxxxxx > Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> > Cc: Will Deacon <will@xxxxxxxxxx> > Cc: Ard Biesheuvel <ardb@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Heiko Carstens <hca@xxxxxxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxxxxx> > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > --- > > This is an example how virito-mem intends to use an interface like > memhp_get_pluggable_range() once around. See: > > "[PATCH V2 0/3] mm/hotplug: Pre-validate the address range with platform" > https://lkml.kernel.org/r/1608218912-28932-1-git-send-email-anshuman.khandual@xxxxxxx > > @Anshuman, feel free to pick up and carry this patch. I'll retest the final > result / new versions of you series. Makes sense, will carry this patch in the series.