]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Add --debug-mmio option
authorCyrill Gorcunov <gorcunov@openvz.org>
Thu, 3 May 2012 19:16:55 +0000 (23:16 +0400)
committerPekka Enberg <penberg@kernel.org>
Tue, 8 May 2012 05:34:58 +0000 (08:34 +0300)
This switches the default behaviour of lkvm if access
on unregistered MMIO address happens -- we don't spam
a user with warning messages anymore. If one needs details
on unhandled MMIOs the --debug-mmio option should be passed.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/builtin-run.c
tools/kvm/mmio.c

index 97f61d0ef5d5cd816e37379ae70334ad0238c8f4..4f6ea15fba1f019c049a9272818f8e232de886dd 100644 (file)
@@ -101,6 +101,7 @@ static bool custom_rootfs;
 static bool no_net;
 static bool no_dhcp;
 extern bool ioport_debug;
+extern bool mmio_debug;
 static int  kvm_run_wrapper;
 extern int  active_console;
 extern int  debug_iodelay;
@@ -481,6 +482,8 @@ static const struct option options[] = {
                        "Enable single stepping"),
        OPT_BOOLEAN('\0', "debug-ioport", &ioport_debug,
                        "Enable ioport debugging"),
+       OPT_BOOLEAN('\0', "debug-mmio", &mmio_debug,
+                       "Enable MMIO debugging"),
        OPT_INTEGER('\0', "debug-iodelay", &debug_iodelay,
                        "Delay IO by millisecond"),
        OPT_END()
index 7760a7fc33d05e58d08cf71c571b015337a459c0..dd28ef339e7f3e030c265ebcbc153b8839e3b707 100644 (file)
@@ -21,6 +21,7 @@ struct mmio_mapping {
 };
 
 static struct rb_root mmio_tree = RB_ROOT;
+bool mmio_debug = false;
 
 static struct mmio_mapping *mmio_search(struct rb_root *root, u64 addr, u64 len)
 {
@@ -128,9 +129,11 @@ bool kvm__emulate_mmio(struct kvm *kvm, u64 phys_addr, u8 *data, u32 len, u8 is_
 
        if (mmio)
                mmio->mmio_fn(phys_addr, data, len, is_write, mmio->ptr);
-       else
-               fprintf(stderr, "Warning: Ignoring MMIO %s at %016llx (length %u)\n",
-                       to_direction(is_write), phys_addr, len);
+       else {
+               if (mmio_debug)
+                       fprintf(stderr, "Warning: Ignoring MMIO %s at %016llx (length %u)\n",
+                               to_direction(is_write), phys_addr, len);
+       }
        br_read_unlock();
 
        return true;