Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
On 26.06.19 14:39, Sam Eiderman 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. (From a block perspective,) I didn’t find anything too bad, so: Acked-by: Max Reitz signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
Well, this patch introduces 3 command line parameters (“lcyls”, “lheads”, “lsecs”) to “scsi-hd” “ide-hd” and “virtio-pci-blk” so this somehow has something to do with block. This patch also adds fw_cfg interface to send these parameters to SeaBIOS. "scripts/get_maintainer.pl -f hw/nvram/fw_cfg.c” gives "Philippe Mathieu-Daudé" (supporter:Firmware configur...) Laszlo Ersek (reviewer:Firmware configur...) Gerd Hoffmann (reviewer:Firmware configur…) And this was already Reviewed-by Gerd. How should I proceed? Sam > On 17 Jul 2019, at 22:46, Kevin Wolf wrote: > > Am 17.07.2019 um 21:03 hat Sam Eiderman geschrieben: >> Gentle ping. > > Through which tree is this supposed to go? I feel this is more firmware > interface related than block layer stuff. > > Kevin > >>> On 8 Jul 2019, at 20:30, Sam Eiderman wrote: >>> >>> Thanks Gerd, >>> >>> Gentle ping on this. >>> >>> Sam >>> On 1 Jul 2019, at 10:41, Gerd Hoffmann wrote: On Wed, Jun 26, 2019 at 03:39:40PM +0300, Sam Eiderman 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 Reviewed-by: Gerd Hoffmann cheers, Gerd >>> >>
Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
Am 17.07.2019 um 21:03 hat Sam Eiderman geschrieben: > Gentle ping. Through which tree is this supposed to go? I feel this is more firmware interface related than block layer stuff. Kevin > > On 8 Jul 2019, at 20:30, Sam Eiderman wrote: > > > > Thanks Gerd, > > > > Gentle ping on this. > > > > Sam > > > >> On 1 Jul 2019, at 10:41, Gerd Hoffmann wrote: > >> > >> On Wed, Jun 26, 2019 at 03:39:40PM +0300, Sam Eiderman 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 > >> > >> Reviewed-by: Gerd Hoffmann > >> > >> cheers, > >> Gerd > >> > > >
Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
Gentle ping. Sam > On 8 Jul 2019, at 20:30, Sam Eiderman wrote: > > Thanks Gerd, > > Gentle ping on this. > > Sam > >> On 1 Jul 2019, at 10:41, Gerd Hoffmann wrote: >> >> On Wed, Jun 26, 2019 at 03:39:40PM +0300, Sam Eiderman 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 >> >> Reviewed-by: Gerd Hoffmann >> >> cheers, >> Gerd >> >
Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
Thanks Gerd, Gentle ping on this. Sam > On 1 Jul 2019, at 10:41, Gerd Hoffmann wrote: > > On Wed, Jun 26, 2019 at 03:39:40PM +0300, Sam Eiderman 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 > > Reviewed-by: Gerd Hoffmann > > cheers, > Gerd >
Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
On Wed, Jun 26, 2019 at 03:39:40PM +0300, Sam Eiderman 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 Reviewed-by: Gerd Hoffmann cheers, Gerd
[Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface
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 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 | 15 ++ hw/scsi/scsi-disk.c | 14 ++ 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, 774 insertions(+), 41 deletions(-) -- 2.13.3