On Fri, Jul 20, 2018 at 01:46:06PM -0700, Verma, Vishal L wrote: > > On Thu, 2018-07-12 at 09:47 -0600, Keith Busch wrote: > > This patch will find the max contiguous area to determine the largest > > pmem namespace size that can be created. If the requested size exceeds > > the largest available, ENOSPC error will be returned. > > > > This fixes the allocation underrun error and wrong error return code > > that have otherwise been observed as the following kernel warning: > > > > WARNING: CPU: <CPU> PID: <PID> at drivers/nvdimm/namespace_devs.c:913 size_store > > > > Fixes: a1f3e4d6a0c3 ("libnvdimm, region: update nd_region_available_dpa() for multi-pmem support") > > Cc: <stable@xxxxxxxxxxxxxxx> > > Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx> > > Hi Keith, > > I was testing these patches and I found: > > When booting a VM which has both, a qemu ACPI.NFIT bus, and nfit_test > buses, initially the nfit_test buses show correct max_available_extent. > But the qemu ACPI.NFIT bus regions (which have an automatic full- > capacity namespace created on them when they come up) show > max_available_extent of the full region size, even as the > available_size attr is zero. The max extents only counts the free pmem that it can reserve. We shouldn't have been able to reserve non-free pmem, so it sounds like something must be wrong with how the resources were set up. I'll make a similar qemu config and see why/if the resource was considered free.