On Mon, Jul 29, 2019 at 08:48:16AM -0400, Vivek Goyal wrote: > On Mon, Jul 29, 2019 at 09:21:49AM +0100, Stefan Hajnoczi wrote: > > On Fri, Jul 26, 2019 at 04:39:41PM -0400, Vivek Goyal wrote: > > > On Fri, Jul 26, 2019 at 09:29:33AM +0100, Stefan Hajnoczi wrote: > > > > The device communicates FUSE_SETUPMAPPING/FUSE_REMOVMAPPING alignment > > > > constraints via the FUST_INIT map_alignment field. Parse this field and > > > > ensure our DAX mappings meet the alignment constraints. > > > > > > Hi Stefan, > > > > > > To meet alignment constraints, we also need to make sure dax window > > > start/end address is 2MB aligned as well? > > > > No, because the mmap on the host is independent of the guest virtual > > address at which the BAR is mapped inside the guest. > > > > QEMU hw/virtio/vhost-user-fs.c:vuf_device_realize() mmaps the DAX window > > on the host side and that's where the mmap alignment requirement is in > > effect. > > Ok. > > What about checking alignment constratins on inarg.moffset and > inarg.foffset in fuse_setup_one_mapping().
foffset is already implicitly checked: WARN_ON(offset % FUSE_DAX_MEM_RANGE_SZ); And moffset is a multiple of FUSE_DAX_MEM_RANGE_SZ. FUSE_DAX_MEM_RANGE_SZ was already checked against map_alignment when the FUSE_INIT response was processed, so we're good here. Stefan
signature.asc
Description: PGP signature
