qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Ekaterina Tumanova <tumanova@linux.vnet.ibm.com>
Cc: kwolf@redhat.com, thuth@linux.vnet.ibm.com,
	borntraeger@de.ibm.com, armbru@redhat.com,
	Public KVM Mailing List <qemu-devel@nongnu.org>,
	mihajlov@linux.vnet.ibm.com, dahi@linux.vnet.ibm.com,
	stefanha@redhat.com, cornelia.huck@de.ibm.com,
	pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH v5 3/5] block: Add driver methods to probe blocksizes and geometry
Date: Fri, 2 Jan 2015 12:11:06 +0000	[thread overview]
Message-ID: <20150102121106.GD10823@stefanha-thinkpad.redhat.com> (raw)
In-Reply-To: <1418901484-12988-4-git-send-email-tumanova@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 2161 bytes --]

On Thu, Dec 18, 2014 at 12:18:02PM +0100, Ekaterina Tumanova wrote:
> @@ -90,6 +91,10 @@
>  #include <xfs/xfs.h>
>  #endif
>  
> +#ifdef __s390__
> +#include <asm/dasd.h>
> +#endif

#if defined(__linux__) && defined(__s390__)

Or you could move it inside #ifdef __linux__ earlier in the file.

> +/**
> + * Try to get @bs's geometry (cyls, heads, sectos)
> + * On success, store them in @geo and return 0.
> + * On failure return -errno.
> + * (as for 12/2014 only DASDs are supported)

This comment isn't useful because it's apparent from the code and it
could get outdated.  It might be better to remove it and instead
document that this function allows the block driver to assign default
geometry values that the guest sees.

> + */
> +static int hdev_probe_geometry(BlockDriverState *bs, HDGeometry *geo)
> +{
> +    BDRVRawState *s = bs->opaque;
> +    struct hd_geometry ioctl_geo = {0};
> +    uint32_t blksize;
> +
> +    /* If DASD, get it's geometry */
> +    if (check_for_dasd(s->fd) < 0) {
> +        return -ENOTSUP;
> +    }
> +    if (ioctl(s->fd, HDIO_GETGEO, &ioctl_geo) < 0) {

This is a Linux ioctl, won't this break compilation on non-Linux hosts?

> +        return -errno;
> +    }
> +    /* HDIO_GETGEO may return success even though geo contains zeros
> +       (e.g. certain multipath setups) */
> +    if (!ioctl_geo.heads || !ioctl_geo.sectors || !ioctl_geo.cylinders) {
> +        return -ENOTSUP;
> +    }
> +    /* Do not return a geometry for partition */
> +    if (ioctl_geo.start != 0) {
> +        return -ENOTSUP;
> +    }
> +    geo->heads = ioctl_geo.heads;
> +    geo->sectors = ioctl_geo.sectors;
> +    if (!probe_physical_blocksize(s->fd, &blksize)) {
> +        /* overwrite cyls: HDIO_GETGEO result is incorrect for big drives */
> +        geo->cylinders = bs->total_sectors / (blksize / BDRV_SECTOR_SIZE)
> +                                           / (geo->heads * geo->sectors);

Please use bdrv_nb_sectors(bs) instead of bs->total_sectors.
bs->total_sectors is a cached value that is basically private to
block.c and should not be accessed directly.

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

  parent reply	other threads:[~2015-01-02 12:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-18 11:17 [Qemu-devel] [PATCH v5 0/5] Geometry and blocksize detection for backing devices Ekaterina Tumanova
2014-12-18 11:18 ` [Qemu-devel] [PATCH v5 1/5] block: add bdrv functions for geometry and blocksize Ekaterina Tumanova
2014-12-18 11:18 ` [Qemu-devel] [PATCH v5 2/5] raw-posix: Refactor logical block size detection Ekaterina Tumanova
2015-01-02 11:52   ` Stefan Hajnoczi
2015-01-13 10:03     ` Ekaterina Tumanova
2015-01-13 15:24       ` Stefan Hajnoczi
2014-12-18 11:18 ` [Qemu-devel] [PATCH v5 3/5] block: Add driver methods to probe blocksizes and geometry Ekaterina Tumanova
2014-12-18 12:43   ` Thomas Huth
2015-01-02 12:11   ` Stefan Hajnoczi [this message]
2014-12-18 11:18 ` [Qemu-devel] [PATCH v5 4/5] block-backend: Add wrappers for blocksizes and geometry probing Ekaterina Tumanova
2014-12-18 14:45   ` Thomas Huth
2015-01-02 12:34   ` Stefan Hajnoczi
2014-12-18 11:18 ` [Qemu-devel] [PATCH v5 5/5] BlockConf: Call backend functions to detect geometry and blocksizes Ekaterina Tumanova
2014-12-18 14:55   ` Thomas Huth
2015-01-02 12:46   ` Stefan Hajnoczi
2014-12-18 15:59 ` [Qemu-devel] [PATCH v5 0/5] Geometry and blocksize detection for backing devices Christian Borntraeger
2015-01-02 12:57   ` Stefan Hajnoczi
2015-01-13  8:32     ` Christian Borntraeger
2015-01-13 10:51       ` Markus Armbruster
2015-01-13 16:04         ` Stefan Hajnoczi
2015-01-13 17:27           ` Markus Armbruster
2015-01-13 19:07           ` Christian Borntraeger
2015-01-14 13:57             ` Stefan Hajnoczi
2015-01-02 11:30 ` Stefan Hajnoczi
2015-01-13  9:59   ` Ekaterina Tumanova

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150102121106.GD10823@stefanha-thinkpad.redhat.com \
    --to=stefanha@gmail.com \
    --cc=armbru@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dahi@linux.vnet.ibm.com \
    --cc=kwolf@redhat.com \
    --cc=mihajlov@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@linux.vnet.ibm.com \
    --cc=tumanova@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).