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(-)
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 _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
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 <mreitz@redhat.com>
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 <kraxel@redhat.com> cheers, Gerd _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
Thanks Gerd, Gentle ping on this. Sam > On 1 Jul 2019, at 10:41, Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com> > > cheers, > Gerd > _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
Gentle ping. Sam > On 8 Jul 2019, at 20:30, Sam Eiderman <shmuel.eiderman@oracle.com> wrote: > > Thanks Gerd, > > Gentle ping on this. > > Sam > >> On 1 Jul 2019, at 10:41, Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com> >> >> cheers, >> Gerd >> >
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 <shmuel.eiderman@oracle.com> wrote: > > > > Thanks Gerd, > > > > Gentle ping on this. > > > > Sam > > > >> On 1 Jul 2019, at 10:41, Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com> > >> > >> cheers, > >> Gerd > >> > > > _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
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é" <philmd@redhat.com> (supporter:Firmware configur...) Laszlo Ersek <lersek@redhat.com> (reviewer:Firmware configur...) Gerd Hoffmann <kraxel@redhat.com> (reviewer:Firmware configur…) And this was already Reviewed-by Gerd. How should I proceed? Sam > On 17 Jul 2019, at 22:46, Kevin Wolf <kwolf@redhat.com> 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 <shmuel.eiderman@oracle.com> wrote: >>> >>> Thanks Gerd, >>> >>> Gentle ping on this. >>> >>> Sam >>> >>>> On 1 Jul 2019, at 10:41, Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com> >>>> >>>> cheers, >>>> Gerd >>>> >>> >> _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
On 7/19/19 6:10 AM, Sam Eiderman wrote: > 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é" <philmd@redhat.com> (supporter:Firmware configur...) > Laszlo Ersek <lersek@redhat.com> (reviewer:Firmware configur...) > Gerd Hoffmann <kraxel@redhat.com> (reviewer:Firmware configur…) > > And this was already Reviewed-by Gerd. > > How should I proceed? > > Sam > I feel like it would be up to Gerd as the general SeaBIOS point of contact? --js
On 7/24/19 8:47 PM, John Snow wrote: > > > On 7/19/19 6:10 AM, Sam Eiderman wrote: >> 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é" <philmd@redhat.com> (supporter:Firmware configur...) >> Laszlo Ersek <lersek@redhat.com> (reviewer:Firmware configur...) >> Gerd Hoffmann <kraxel@redhat.com> (reviewer:Firmware configur…) >> >> And this was already Reviewed-by Gerd. >> >> How should I proceed? >> >> Sam >> > > I feel like it would be up to Gerd as the general SeaBIOS point of contact? > ...ah, who is offline for vacation. We're in freeze right now anyway, so I would think that Gerd and/or Kevin can work out who ought to stage this for a PR when the tree opens again. _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
On 07/25/19 02:50, John Snow wrote: > > > On 7/24/19 8:47 PM, John Snow wrote: >> >> >> On 7/19/19 6:10 AM, Sam Eiderman wrote: >>> 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é" <philmd@redhat.com> (supporter:Firmware configur...) >>> Laszlo Ersek <lersek@redhat.com> (reviewer:Firmware configur...) >>> Gerd Hoffmann <kraxel@redhat.com> (reviewer:Firmware configur…) >>> >>> And this was already Reviewed-by Gerd. >>> >>> How should I proceed? >>> >>> Sam >>> >> >> I feel like it would be up to Gerd as the general SeaBIOS point of contact? >> > > ...ah, who is offline for vacation. > > We're in freeze right now anyway, so I would think that Gerd and/or > Kevin can work out who ought to stage this for a PR when the tree opens > again. > I think the sole patch in the series that modifies "hw/nvram/fw_cfg.c" is [Qemu-devel] [QEMU] [PATCH v5 7/8] bootdevice: FW_CFG interface for LCHS values http://mid.mail-archive.com/20190626123948.10199-8-shmuel.eiderman@oracle.com and neither Phil nor myself seem to be CC'd on it (I've found the message in my list folder only). Regarding fw_cfg, I only review Phil's fw_cfg patches (so that whenever he posts patches, he can count on my review); other than that, I generally skip fw_cfg patches. And, I totally don't have a tree for collecting such patches. Now, while Phil does: T: git https://github.com/philmd/qemu.git fw_cfg-next I still don't think that tree would be the best for queueing this series, given the diffstat: 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(-) Just my two cents. Thanks Laszlo _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
Hi, [ just back from summer vacation, wading through my backlog ... ] > > I feel like it would be up to Gerd as the general SeaBIOS point of contact? > > > > ...ah, who is offline for vacation. > > We're in freeze right now anyway, so I would think that Gerd and/or > Kevin can work out who ought to stage this for a PR when the tree opens > again. As this touches alot of block code I've expected it to go via block tree, therefore I've added my reviewed-by to indicate the fw_cfg / seabios side of things is fine from my point of view. seabios patches are reviewed and ready. Merging via Phil's fw_cfg tree would make sense too, but Phil probably wants an ack from the block layer guys in that case. cheers, Gerd _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org
© 2016 - 2023 Red Hat, Inc.