On 07/15/2016 02:08 AM, Evgeny Yakovlev wrote: >>> + * Write sector 0 with random data to make AHCI storage dirty >> If we ever have a case where we open a disk without specifying -raw, the >> random data _might_ resemble some other format and cause probe to >> misbehave; as such, we also have code in the block layer that >> specifically prevents writes to sector 0 for some data. Should you pick >> a different sector than 0, so as to avoid any (remote) possibility that >> the random data could change probe results or be rejected? >> > > Not sure if i understand the problem you're referring to here. Those are > blkdebug tests, those disks are created, emulated with blkdebug backend, > flushed and then thrown away. So is there really any possibility for > reopening the image and accidentally parsing a partition table in sector 0? > > Also, not sure what you mean by "code in the block layer that > specifically prevents writes to sector 0 for some data". Can you explain > that bit, because it sounds pretty scary. How can we deny guest VM to > write anything to sector 0 on its emulated disk?
Read block/raw_bsd.c:raw_co_writev_flags() for the gory details. If the guest ever gets a raw format driver because the user forgot to say '--format $foo', then we prevent the guest from writing anything into sector 0 that would be probed as non-raw. It means there are only a handful of patterns that the guest cannot write into the first sector, but it IS a non-zero number of patterns. How the guest behaves if such a write is attempted depends on the error policy you have on that device; it might show up as an EIO error to the guest, or it might stop the guest from executing and raise a qemu event to the management application, but the point is that we actively prohibit some writes to sector 0 on a probed raw disk. Using any sector other than 0 doesn't have this limitation, or you can ensure that your test ALWAYS passes the appropriate --format $foo so that the disk is never probed as another way to avoid limitations on sector 0. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature