WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] disable log-throttling in xen_platform after boot

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] disable log-throttling in xen_platform after boot
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Fri, 14 Aug 2009 19:14:20 +0100
Delivery-date: Fri, 14 Aug 2009 11:13:20 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
Hi all,
currently log throttling in xen_platform can be disabled only if a
particular key is present on xenstore at boot time.
Obviously this requirement makes it difficult to use.
This patch fixes the issue creating a watch on xenstore on the node

/local/domain/$DOMID/log-throttling

so whenever a developer wants to disable log throttling, he just has to
write 0 to /local/domain/$DOMID/log-throttling at any moment after boot.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

---


diff --git a/hw/xen_platform.c b/hw/xen_platform.c
index 36610a4..d282f8e 100644
--- a/hw/xen_platform.c
+++ b/hw/xen_platform.c
@@ -50,6 +50,17 @@ typedef struct PCIXenPlatformState
   PCIDevice  pci_dev;
 } PCIXenPlatformState;
 
+static void log_throttling(const char *path, void *opaque)
+{
+    int len;
+    char *throttling = xenstore_dom_read(domid, "log-throttling", &len);
+    if (throttling != NULL) {
+        throttling_disabled = !(throttling[0] - '0');
+        free(throttling);
+        fprintf(logfile, "log_throttling %s\n", throttling_disabled ? 
"disabled" : "enabled");
+    }
+}
+
 /* We throttle access to dom0 syslog, to avoid DOS attacks.  This is
    modelled as a token bucket, with one token for every byte of log.
    The bucket size is 128KB (->1024 lines of 128 bytes each) and
@@ -276,7 +287,6 @@ static int platform_fixed_ioport_load(QEMUFile *f, void 
*opaque, int version_id)
 void platform_fixed_ioport_init(void)
 {
     struct stat stbuf;
-    char *throttling;
     int len = 1;
 
     register_savevm("platform_fixed_ioport", 0, 1, platform_fixed_ioport_save,
@@ -288,12 +298,6 @@ void platform_fixed_ioport_init(void)
     register_ioport_read(0x10, 16, 2, platform_fixed_ioport_read2, NULL);
     register_ioport_read(0x10, 16, 1, platform_fixed_ioport_read1, NULL);
 
-    throttling = xenstore_vm_read(domid, "log-throttling", &len);
-    if (throttling != NULL) {
-        throttling_disabled = (throttling[0] - '0');
-        free(throttling);
-    }
-
     platform_fixed_ioport_write1(NULL, 0x10, 0);
 }
 
@@ -477,6 +481,6 @@ void pci_xen_platform_init(PCIBus *bus)
 
     register_savevm("platform", 0, 3, xen_pci_save, xen_pci_load, d);
     printf("Done register platform.\n");
-
+    xenstore_dom_watch(domid, "log-throttling", log_throttling, NULL);
 }
 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] disable log-throttling in xen_platform after boot, Stefano Stabellini <=