All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Paul Durrant <Paul.Durrant@citrix.com>,
	Kevin Wolf <kwolf@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"qemu-block@nongnu.org" <qemu-block@nongnu.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Max Reitz <mreitz@redhat.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [Qemu-devel] [PATCH v2 03/18] xen: introduce 'xen-block', 'xen-disk' and 'xen-cdrom'
Date: Fri, 7 Dec 2018 15:34:00 +0000	[thread overview]
Message-ID: <20181207153400.GM13784@redhat.com> (raw)
In-Reply-To: <20181207152601.GH18875@perard.uk.xensource.com>

On Fri, Dec 07, 2018 at 03:26:01PM +0000, Anthony PERARD wrote:
> On Fri, Dec 07, 2018 at 02:39:40PM +0000, Paul Durrant wrote:
> > > -----Original Message-----
> > > From: Anthony PERARD [mailto:anthony.perard@citrix.com]
> > > Sent: 07 December 2018 14:35
> > > To: Paul Durrant <Paul.Durrant@citrix.com>
> > > Cc: qemu-devel@nongnu.org; qemu-block@nongnu.org; xen-
> > > devel@lists.xenproject.org; Kevin Wolf <kwolf@redhat.com>; Max Reitz
> > > <mreitz@redhat.com>; Stefano Stabellini <sstabellini@kernel.org>
> > > Subject: Re: [PATCH v2 03/18] xen: introduce 'xen-block', 'xen-disk' and
> > > 'xen-cdrom'
> > > 
> > > On Thu, Dec 06, 2018 at 03:08:29PM +0000, Paul Durrant wrote:
> > > > +static char *disk_to_vbd_name(unsigned int disk)
> > > > +{
> > > > +    char *name, *prefix = (disk >= 26) ?
> > > > +        disk_to_vbd_name((disk / 26) - 1) : g_strdup("");
> > > > +
> > > > +    name = g_strdup_printf("%s%c", prefix, 'a' + disk);
> > > 
> > > I don't think that works, if disk is 27, we do ('a' + 27) here. It's
> > > probably missing a `disk % 26`.
> > 
> > Damn, yes I was not allowing the >2 letters.
> > 
> > > 
> > > > +    g_free(prefix);
> > > > +
> > > > +    return name;
> > > > +}
> > > 
> > > [...]
> > > 
> > > > +static unsigned int vbd_name_to_disk(const char *name, const char
> > > **endp)
> > > > +{
> > > > +    unsigned int disk = 0;
> > > > +
> > > > +    while (*name != '\0') {
> > > > +        if (!g_ascii_isalpha(*name) || !g_ascii_islower(*name)) {
> > > > +            break;
> > > > +        }
> > > > +
> > > > +        disk *= 26;
> > > > +        disk += *name++ - 'a';
> > > > +    }
> > > > +    *endp = name;
> > > > +
> > > > +    return disk;
> > > > +}
> > > > +
> > > > +static void xen_block_set_vdev(Object *obj, Visitor *v, const char
> > > *name,
> > > > +                               void *opaque, Error **errp)
> > > > +{
> > > 
> > > Setting vdev doesn't work. I've tried to add a disk `xvdaa', and it
> > > result in `xvda', or `d0p0' (in the trace). (Same result with `xvdaaa',
> > > and 'xvdba' gives 'xvdaa'/d26p0)
> > > 
> > 
> > Ok, that's weird. I'll have to figure that out.
> 
> It's probably because 'a' is somtime 0 and sometime is 1.
> 
> 'a' should be 0
> 'aa' should be 26,
> 'aaa' Seems to be 702.
> 
> 'xvda': 0     ->                     0 * 1
> 'xvdz': 25    ->                    25 * 1
> 'xvdaa': 26   ->            1 * 26 + 0 * 1
> 'xvdaaa': 702 -> 1 * 26^2 + 1 * 26 + 0 * 1
> 
> So, it's weird. Have fun fixing the algorithm for that.

Libvirt has code for going in both directions, that's LGPLv2+
licensed if you want it:

  https://libvirt.org/git/?p=libvirt.git;a=blob;f=src/util/virutil.c;h=279e6aedc0f5921c850130499fc95c7d4a1e34c9;hb=HEAD#l546


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

  reply	other threads:[~2018-12-07 15:34 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-06 15:08 [PATCH v2 00/18] Xen PV backend 'qdevification' Paul Durrant
2018-12-06 15:08 ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 01/18] xen: re-name XenDevice to XenLegacyDevice Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 02/18] xen: introduce new 'XenBus' and 'XenDevice' object hierarchy Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 12:15   ` Anthony PERARD
2018-12-07 12:15     ` [Qemu-devel] " Anthony PERARD
2018-12-07 12:57     ` Paul Durrant
2018-12-07 12:57     ` Paul Durrant
2018-12-06 15:08 ` [PATCH v2 03/18] xen: introduce 'xen-block', 'xen-disk' and 'xen-cdrom' Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 14:35   ` Anthony PERARD
2018-12-07 14:35   ` [Qemu-devel] " Anthony PERARD
2018-12-07 14:39     ` Paul Durrant
2018-12-07 15:26       ` Anthony PERARD
2018-12-07 15:26       ` [Qemu-devel] " Anthony PERARD
2018-12-07 15:34         ` Daniel P. Berrangé [this message]
2018-12-07 15:34         ` Daniel P. Berrangé
2018-12-10  9:35         ` Paul Durrant
2018-12-10  9:35         ` Paul Durrant
2018-12-07 14:39     ` Paul Durrant
2018-12-06 15:08 ` [PATCH v2 04/18] xen: create xenstore areas for XenDevice-s Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 15:07   ` Anthony PERARD
2018-12-07 15:07   ` Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 05/18] xen: add xenstore watcher infrastructure Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 15:57   ` Anthony PERARD
2018-12-07 15:57   ` [Qemu-devel] " Anthony PERARD
2018-12-10  9:43     ` Paul Durrant
2018-12-10  9:43     ` Paul Durrant
2018-12-06 15:08 ` [PATCH v2 06/18] xen: add grant table interface for XenDevice-s Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 07/18] xen: add event channel " Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 16:03   ` Anthony PERARD
2018-12-07 16:03   ` Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 08/18] xen: duplicate xen_disk.c as basis of dataplane/xen-block.c Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 09/18] xen: remove unnecessary code from dataplane/xen-block.c Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 16:20   ` [Qemu-devel] [Xen-devel] " Anthony PERARD
2018-12-07 16:20   ` Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 10/18] xen: add header and build dataplane/xen-block.c Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 16:48   ` Anthony PERARD
2018-12-07 16:48     ` [Qemu-devel] " Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 11/18] xen: remove 'XenBlkDev' and 'blkdev' names from dataplane/xen-block Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 12/18] xen: remove 'ioreq' struct/varable/field names from dataplane/xen-block.c Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 13/18] xen: purge 'blk' and 'ioreq' from function names in dataplane/xen-block.c Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 16:52   ` Anthony PERARD
2018-12-07 16:52     ` [Qemu-devel] " Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 14/18] xen: add implementations of xen-block connect and disconnect functions Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 18:20   ` Anthony PERARD
2018-12-07 18:20     ` [Qemu-devel] " Anthony PERARD
2018-12-08 11:31     ` Paul Durrant
2018-12-08 11:31       ` [Qemu-devel] " Paul Durrant
2018-12-10 16:07     ` Paul Durrant
2018-12-10 16:07       ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 15/18] xen: add a mechanism to automatically create XenDevice-s Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 18:30   ` Anthony PERARD
2018-12-07 18:30   ` [Qemu-devel] " Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 16/18] xen: automatically create XenBlockDevice-s Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 18:52   ` Anthony PERARD
2018-12-07 18:52   ` [Qemu-devel] " Anthony PERARD
2018-12-06 15:08 ` [PATCH v2 17/18] MAINTAINERS: add myself as a Xen maintainer Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-06 15:08 ` [PATCH v2 18/18] xen: remove the legacy 'xen_disk' backend Paul Durrant
2018-12-06 15:08   ` [Qemu-devel] " Paul Durrant
2018-12-07 18:52   ` Anthony PERARD
2018-12-07 18:52     ` [Qemu-devel] " Anthony PERARD

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=20181207153400.GM13784@redhat.com \
    --to=berrange@redhat.com \
    --cc=Paul.Durrant@citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.