Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: patch: add instrumentation to xen/x86/autoconf.c



On January 21, 2019 7:03:12 AM GMT+08:00, Christoph Badura <bad%bsd.de@localhost> wrote:
>Here is some instrumentation I found useful during my recent debugging.
>If there are no objections I'd like to commit soon.
>
>Add some DPRINTF #ifdef DEBUG_GEOM like arch/x86/x86/x86_autoconf.c.
>Set booted_method like in arch/x86/x86/x86_autoconf.c.
>Whitespace nit in is_valid_disk().
>
>Index: autoconf.c
>===================================================================
>RCS file: /cvsroot/src/sys/arch/xen/x86/autoconf.c,v
>retrieving revision 1.21
>diff -u -r1.21 autoconf.c
>--- autoconf.c	22 Dec 2018 07:45:58 -0000	1.21
>+++ autoconf.c	20 Jan 2019 22:20:39 -0000
>@@ -101,6 +101,12 @@
> #include <i386/pci/pcibios.h>
> #endif
> 
>+#ifdef DEBUG_GEOM
>+#define DPRINTF(a) printf a
>+#else
>+#define DPRINTF(a)
>+#endif
>+
> /*
>  * Determine i/o configuration for a machine.
>  */
>@@ -170,8 +176,10 @@
> 	union xen_cmdline_parseinfo xcp;
> 	static char bootspecbuf[sizeof(xcp.xcp_bootdev)];
> 
>-	if (booted_device)
>+	if (booted_device) {
>+		DPRINTF(("%s: preset booted_device: %s\n", __func__,
>device_xname(booted_device)));
> 		return;
>+	}
> 
> 	xen_parse_cmdline(XEN_PARSE_BOOTDEV, &xcp);
> 
>@@ -197,17 +205,22 @@
> 			continue;
> 
> 		if (is_disk && strlen(xcp.xcp_bootdev) > strlen(devname)) {
>+			/* XXX check device_cfdata as in x86_autoconf.c? */
> 			booted_partition = toupper(
> 				xcp.xcp_bootdev[strlen(devname)]) - 'A';
>+			DPRINTF(("%s: booted_partition: %d\n", __func__,
>booted_partition));
> 		}
> 
> 		booted_device = dv;
>+		booted_method = "bootinfo/bootdev";
> 		break;
> 	}
> 	deviter_release(&di);
> 
>-	if (booted_device)
>+	if (booted_device) {
>+		DPRINTF(("%s: booted_device: %s\n", __func__,
>device_xname(booted_device)));
> 		return;
>+	}
> 
> 	/*
> 	 * not a boot device name, pass through to MI code
>@@ -215,6 +228,8 @@
> 	if (xcp.xcp_bootdev[0] != '\0') {
> 		strlcpy(bootspecbuf, xcp.xcp_bootdev, sizeof(bootspecbuf));
> 		bootspec = bootspecbuf;
>+		booted_method = "bootinfo/bootspec";
>+		DPRINTF(("%s: bootspec: %s\n", __func__, bootspec));
> 		return;
> 	}
> }
>@@ -359,7 +374,6 @@
> static int
> is_valid_disk(device_t dv)
> {
>-
> 	if (device_class(dv) != DV_DISK)
> 		return (0);
> 

Hi Christos,

Is there a way to use aprintf_debug_dev() or is this too early for that? 

Cherry


Home | Main Index | Thread Index | Old Index