All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org, aliguori@us.ibm.com,
	Markus Armbruster <armbru@redhat.com>,
	Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 7/9] qdev: Use QError for not found error
Date: Mon, 19 Oct 2009 11:47:07 +0100	[thread overview]
Message-ID: <20091019104707.GD27871@redhat.com> (raw)
In-Reply-To: <4ADC4208.4060701@redhat.com>

On Mon, Oct 19, 2009 at 12:40:08PM +0200, Gerd Hoffmann wrote:
> >I think just returning error codes to the client is far too little
> >information. I don't think we need the fully normalized structure
> >that Luiz originally proposed with bus/dev addresses split out, but
> >we certainly need to include a string description giving as much
> >detail as possible.  If attaching a host USB device failed, I don't
> >want a single error code  QERR_OPEN_FAILED, nor a generic message
> >like 'could not open device', i want the exact details, eg
> >
> >   'could not open device: permission denied'
> >   'could not open device: no such file or directory'
> >   'could not open device: device or resource busy'
> 
> Which makes me wonder whenever it makes sense to re-use errno for the 
> error codes instead of inventing our own QERR_* codes?  Not the numbers 
> of course because they are not standardized as far I know, but the Ename 
> strings.
> 
> If you error out because a system call failed you can pass up errno 
> straight to the client without loosing information along the way.  And 
> for other error conditions it should be possible to find error codes 
> describing what happened, i.e. when trying to add a device where no 
> backend driver exists in qemu you can return ENOENT (plus freeform text 
> message for error logging).

If applicable to the context, I think it is worthwhile including more than
just the generic errno string. eg, if failed opening a disk file, then it
would be fine to just send back the errno string, because the original
drive_add command would already include the filename in question. If
failed opening some random sysfs file relating to a PCI device that is
being attached, then QEMU should back the sysfs filename because it may
not be obvious from just the PCI bus/domain/slot number in the original
command just which file QEMU failed to open.


Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

  reply	other threads:[~2009-10-19 10:47 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-13 16:56 [Qemu-devel] [PATCH v0 0/9] QError Luiz Capitulino
2009-10-13 16:56 ` [Qemu-devel] [PATCH 1/9] QDict: Introduce qdict_iter() Luiz Capitulino
2009-10-13 16:56 ` [Qemu-devel] [PATCH 2/9] check-qdict: Add test for qdict_iter() Luiz Capitulino
2009-10-13 16:57 ` [Qemu-devel] [PATCH 3/9] qmisc: Introduce qobject_from_va() Luiz Capitulino
2009-10-13 21:52   ` Markus Armbruster
2009-10-14 13:40     ` Luiz Capitulino
2009-10-14 14:27       ` [Qemu-devel] " Paolo Bonzini
2009-10-13 16:57 ` [Qemu-devel] [PATCH 4/9] Introduce QError Luiz Capitulino
2009-10-13 16:57 ` [Qemu-devel] [PATCH 5/9] monitor: QError support Luiz Capitulino
2009-10-13 21:59   ` Markus Armbruster
2009-10-14 13:14     ` [Qemu-devel] " Paolo Bonzini
2009-10-14 14:07       ` Markus Armbruster
2009-10-13 16:57 ` [Qemu-devel] [PATCH 6/9] QError: Add qdev not found error Luiz Capitulino
2009-10-14 23:02   ` Hollis Blanchard
2009-10-15 13:34     ` Luiz Capitulino
2009-10-15 17:16       ` Hollis Blanchard
2009-10-15 17:52         ` Luiz Capitulino
2009-10-15 18:13           ` Hollis Blanchard
2009-10-15 19:08             ` Luiz Capitulino
2009-10-15 20:13               ` Hollis Blanchard
2009-10-15 20:57                 ` Anthony Liguori
2009-10-15 21:18                   ` Hollis Blanchard
2009-10-15 21:27                     ` Anthony Liguori
2009-10-15 22:44                       ` Hollis Blanchard
2009-10-16  8:06                         ` [Qemu-devel] " Paolo Bonzini
2009-10-16 13:05                           ` Luiz Capitulino
2009-10-19 10:25                             ` Daniel P. Berrange
2009-10-19 12:28                               ` Luiz Capitulino
2009-10-19 12:42                                 ` Daniel P. Berrange
2009-10-16 13:39                           ` Anthony Liguori
2009-10-18  4:25                       ` [Qemu-devel] " Jamie Lokier
2009-10-18 12:17                         ` [Qemu-devel] " Paolo Bonzini
2009-10-19 16:50                           ` Hollis Blanchard
2009-10-19 21:16                             ` Paolo Bonzini
2009-10-16  7:30               ` [Qemu-devel] " Gerd Hoffmann
2009-10-16 12:39                 ` Luiz Capitulino
2009-10-16 13:34                   ` [Qemu-devel] " Paolo Bonzini
2009-10-16 13:37                 ` [Qemu-devel] " Anthony Liguori
2009-10-16 14:17                   ` Luiz Capitulino
2009-10-16 17:28                     ` [Qemu-devel] " Paolo Bonzini
2009-10-16 17:47                       ` Anthony Liguori
2009-10-16  8:02               ` Paolo Bonzini
2009-10-18  4:28                 ` Jamie Lokier
2009-10-18  4:34                   ` Jamie Lokier
2009-10-13 16:57 ` [Qemu-devel] [PATCH 7/9] qdev: Use QError for " Luiz Capitulino
2009-10-13 22:34   ` Markus Armbruster
2009-10-14 13:29     ` [Qemu-devel] " Paolo Bonzini
2009-10-14 16:42       ` Luiz Capitulino
2009-10-14 14:51     ` [Qemu-devel] " Luiz Capitulino
2009-10-19 10:12     ` Daniel P. Berrange
2009-10-19 10:40       ` Gerd Hoffmann
2009-10-19 10:47         ` Daniel P. Berrange [this message]
2009-10-19 11:22         ` [Qemu-devel] " Paolo Bonzini
2009-10-19 14:00       ` [Qemu-devel] " Anthony Liguori
2009-10-19 15:21         ` Daniel P. Berrange
2009-10-19 15:27           ` Anthony Liguori
2009-10-19 15:39             ` Daniel P. Berrange
2009-10-13 16:57 ` [Qemu-devel] [PATCH 8/9] QError: Add do_info_balloon() errors Luiz Capitulino
2009-10-13 16:57 ` [Qemu-devel] [PATCH 9/9] monitor: do_info_balloon(): use QError Luiz Capitulino
2009-10-15 19:24 ` [Qemu-devel] [PATCH v0 0/9] QError Anthony Liguori
2009-10-15 19:37   ` Luiz Capitulino
2009-10-19 13:13 ` Markus Armbruster
2009-10-19 14:11   ` Anthony Liguori

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=20091019104707.GD27871@redhat.com \
    --to=berrange@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=armbru@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=qemu-devel@nongnu.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.