[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v6 0/8] Add Qemu to SeaBIOS LCHS interface
From: |
John Snow |
Subject: |
Re: [Qemu-block] [PATCH v6 0/8] Add Qemu to SeaBIOS LCHS interface |
Date: |
Tue, 24 Sep 2019 14:49:48 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 |
Nobody was making movement on this patch series, and in response to Max
acking the whole series, I was just going to send a pull request for the
whole thing and see who barked, because nobody likes or hates this
series enough to offer any feedback.
Unfortunately, it's rotted on the vine a bit and has some conflicts with
the testing infrastructure now:
/home/jhuston/src/qemu.git/ide/tests/hd-geo-test.c: In function
‘test_override’:
/home/jhuston/src/qemu.git/ide/tests/hd-geo-test.c:732:5: error:
implicit declaration of function ‘qtest_start’
[-Werror=implicit-function-declaration]
732 | qtest_start(joined_args);
You can jump right to the test by invoking it like this:
> export QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64
> make tests/hd-geo-test
It looks like some definitions got moved out from under our feet, but
hopefully it won't take long to rectify.
--js
On 8/27/19 4:24 AM, Sam Eiderman via Qemu-block wrote:
> v1:
>
> Non-standard logical geometries break under QEMU.
>
> A virtual disk which contains an operating system which depends on
> logical geometries (consistent values being reported from BIOS INT13
> AH=08) will most likely break under QEMU/SeaBIOS if it has non-standard
> logical geometries - for example 56 SPT (sectors per track).
> No matter what QEMU will guess - SeaBIOS, for large enough disks - will
> use LBA translation, which will report 63 SPT instead.
>
> In addition we can not enforce SeaBIOS to rely on phyiscal geometries at
> all. A virtio-blk-pci virtual disk with 255 phyiscal heads can not
> report more than 16 physical heads when moved to an IDE controller, the
> ATA spec allows a maximum of 16 heads - this is an artifact of
> virtualization.
>
> By supplying the logical geometies directly we are able to support such
> "exotic" disks.
>
> We will use fw_cfg to do just that.
>
> v2:
>
> Fix missing parenthesis check in
> "hd-geo-test: Add tests for lchs override"
>
> v3:
>
> * Rename fw_cfg key to "bios-geometry".
> * Remove "extendible" interface.
> * Add cpu_to_le32 fix as Laszlo suggested or big endian hosts
> * Fix last qtest commit - automatic docker tester for some reason does not
> have qemu-img set
>
> v4:
>
> * Change fw_cfg interface from mixed textual/binary to textual only
>
> v5:
>
> * Fix line > 80 chars in tests/hd-geo-test.c
>
> v6:
>
> * Small fixes for issues pointed by Max
> * (&conf->conf)->lcyls to conf->conf.lcyls and so on
> * Remove scsi_unrealize from everything other than scsi-hd
> * Add proper include to sysemu.h
> * scsi_device_unrealize() after scsi_device_purge_requests()
>
> Sam Eiderman (8):
> block: Refactor macros - fix tabbing
> block: Support providing LCHS from user
> bootdevice: Add interface to gather LCHS
> scsi: Propagate unrealize() callback to scsi-hd
> bootdevice: Gather LCHS from all relevant devices
> bootdevice: Refactor get_boot_devices_list
> bootdevice: FW_CFG interface for LCHS values
> hd-geo-test: Add tests for lchs override
>
> bootdevice.c | 148 ++++++++--
> hw/block/virtio-blk.c | 6 +
> hw/ide/qdev.c | 7 +-
> hw/nvram/fw_cfg.c | 14 +-
> hw/scsi/scsi-bus.c | 16 ++
> hw/scsi/scsi-disk.c | 12 +
> include/hw/block/block.h | 22 +-
> include/hw/scsi/scsi.h | 1 +
> include/sysemu/sysemu.h | 4 +
> tests/Makefile.include | 2 +-
> tests/hd-geo-test.c | 582 +++++++++++++++++++++++++++++++++++++++
> 11 files changed, 773 insertions(+), 41 deletions(-)
>