[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 3/6] tests: in IDE and AHCI tests perform DMA
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v6 3/6] tests: in IDE and AHCI tests perform DMA write before flushing |
Date: |
Fri, 15 Jul 2016 11:23:57 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
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
- Re: [Qemu-devel] [PATCH v6 6/6] tests: changed block job ready event generation order, (continued)
- [Qemu-devel] [PATCH v6 5/6] tests: removed skipped flushes from block test traces, Denis V. Lunev, 2016/07/14
- [Qemu-devel] [PATCH v6 1/6] ide: refactor retry_unit set and clear into separate function, Denis V. Lunev, 2016/07/14
- [Qemu-devel] [PATCH v6 2/6] ide: set retry_unit for PIO and FLUSH requests, Denis V. Lunev, 2016/07/14
- [Qemu-devel] [PATCH v6 4/6] block: ignore flush requests when storage is clean, Denis V. Lunev, 2016/07/14
- [Qemu-devel] [PATCH v6 3/6] tests: in IDE and AHCI tests perform DMA write before flushing, Denis V. Lunev, 2016/07/14