Re: [Qemu-devel] [QEMU] [PATCH v5 0/8] Add Qemu to SeaBIOS LCHS interface

2019-08-13 Thread Max Reitz
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

2019-07-19 Thread Sam Eiderman
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

2019-07-17 Thread Kevin Wolf
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

2019-07-17 Thread Sam Eiderman
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

2019-07-08 Thread Sam Eiderman
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

2019-07-01 Thread Gerd Hoffmann
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

2019-06-26 Thread Sam Eiderman
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