From: Alon Levy <alevy@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] debug logging (was: Re: [PATCHv2 3/4] qxl: add debug_cs and cmdlog_cs)
Date: Mon, 2 May 2011 13:12:00 +0300 [thread overview]
Message-ID: <20110502101200.GG17629@playa.redhat.com> (raw)
In-Reply-To: <4DBE731E.1050905@redhat.com>
On Mon, May 02, 2011 at 11:02:22AM +0200, Gerd Hoffmann wrote:
> Hi,
>
> >The bigger hack called "qxl_terse" I didn't even send :) ok, so now I get
> >to either keep this in my closet or think of how to do a minimal acceptable
> >qemu logging infrastructure that would let me register a logging handle and
> >use that to redirect to a chardev (they would all default to being muxed over
> >stdio?)
> >
> >QemuLogger *qemu_create_logger(const char *logger_id);
> > - logger_id is used to match to the chardev given on the command line
> > - need to prevent collision, so probably easier to have a logger_id be an int
> > and have that looked up to a string in an automatically generated table?
>
> What I have in mind is a simple dbg_print() function, integrated
> with qdev and simliar to what the linux kernel has, i.e. something
> like:
>
> int dbg_print(DeviceState *qdev, int loglevel, const char *fmt, ...);
>
> This can basically be used that as drop-in replacement for the
> fprintf(stderr, fmt, ...) style found in many drivers.
>
> dbg_print would get the driver name via qdev->info->name, get the
> instance via qdev->parent_bus->info->get_dev_path(), get a
> timestamp, then create a standard prefix for all messages for easy
> grepping. It would also check qdev->loglevel to figure whenever the
> message should be printed or not. All devices get a property to set
> qdev->loglevel, so all logging can be configured at runtime per
> device.
>
> Messages go to stderr by default. A -debug switch could be added to
> route them another way.
>
> Comments in the idea?
The thing with grepping is that it conflicts with using the monitor on stdout,
which is why I wanted to use a chardev. And of course a chardev solves the
need for grep (at least to get a coarse level - of course you still need to
grep later).
dbg_print takes care of making it standard to have a loglevel and prefix, sounds
good, but I'd still like to know if it is acceptable to also redirect with -debug,
I guess reusing the DeviceState then, instead of my added struct, so just letting
DeviceState.debug_chardev == NULL by default, and settable with
-debug <devname>,id=<chardev_id>
>
> cheers,
> Gerd
>
>
next prev parent reply other threads:[~2011-05-02 10:12 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-28 8:29 [Qemu-devel] [PATCHv2 0/4] qxl: debug related fixes Alon Levy
2011-04-28 8:29 ` [Qemu-devel] [PATCHv2 1/4] qxl: interface_get_command: fix reported mode Alon Levy
2011-04-29 12:01 ` Gerd Hoffmann
2011-04-29 21:53 ` Alon Levy
2011-04-28 8:29 ` [Qemu-devel] [PATCHv2 2/4] qxl: add mode to debugprint on destroy primary Alon Levy
2011-04-29 12:01 ` Gerd Hoffmann
2011-04-29 21:54 ` Alon Levy
2011-04-28 8:29 ` [Qemu-devel] [PATCHv2 3/4] qxl: add debug_cs and cmdlog_cs Alon Levy
2011-04-29 12:09 ` Gerd Hoffmann
2011-04-29 22:19 ` Alon Levy
2011-05-02 9:02 ` [Qemu-devel] debug logging (was: Re: [PATCHv2 3/4] qxl: add debug_cs and cmdlog_cs) Gerd Hoffmann
2011-05-02 10:12 ` Alon Levy [this message]
2011-05-02 10:25 ` [Qemu-devel] debug logging Gerd Hoffmann
2011-05-02 10:33 ` Alon Levy
2011-05-02 10:37 ` Jan Kiszka
2011-05-02 11:00 ` Markus Armbruster
2011-05-02 11:50 ` Alon Levy
2011-05-02 12:43 ` Jan Kiszka
2011-05-02 13:04 ` Alon Levy
2011-05-02 14:09 ` Paolo Bonzini
2011-04-28 8:29 ` [Qemu-devel] [PATCHv2 4/4] qxl: allow QXL_IO_LOG also in vga Alon Levy
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=20110502101200.GG17629@playa.redhat.com \
--to=alevy@redhat.com \
--cc=kraxel@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.