qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 0/8] Add Qemu to SeaBIOS LCHS interface


From: Sam Eiderman
Subject: Re: [PATCH v6 0/8] Add Qemu to SeaBIOS LCHS interface
Date: Mon, 23 Sep 2019 11:23:41 +0300

Gentle ping

On Wed, Sep 11, 2019 at 5:36 PM Sam Eiderman <address@hidden> wrote:
>
> Gentle ping
>
> On Tue, Aug 27, 2019, 11:24 Sam Eiderman <address@hidden> 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(-)
>>
>> --
>> 2.23.0.187.g17f5b7556c-goog
>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]