Re: [PATCH 1/n] libata-core.c conversion to new debugging scheme, part 1 (25% done)

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

 



Borislav Petkov wrote:
On Wed, May 31, 2006 at 02:39:57AM -0400, Jeff Garzik wrote:
On Wed, May 31, 2006 at 07:46:33AM +0200, Borislav Petkov wrote:
This patch converts the first 25% of libata-core.c to the new debugging scheme.

Signed-off-by: <petkov@xxxxxxxxxxxxxxx>
Looks good at first glance, though I'll hold off on apply until I return
from the Red Hat Summit in Nashville.

It made me remember another point, though:  in order to avoid
regressions, after applying your patch, I would think that you would
want to create a patch which did something like

#ifndef ATA_VERBOSE_DEBUG
	ap->msg_enable = xxx
#else ATA_DEBUG
	ap->msg_enable = yyy
#else
	ap->msg_enable = ...
#endif

Ok, i was thinking something along the lines of the following; for better
granularity we might add more ATA_XXX defines or let the user subsequently
adjust dbg level through sysfs...? (The patch applies on top of the one i sent you
before.)

Adjust initial debugging levels through preprocessor defines.

Signed-off-by: <petkov@xxxxxxxxxxxxxxx>

--- libata-dev/drivers/scsi/libata-core.c.orig1 2006-06-01 07:02:42.000000000 +0200
+++ libata-dev/drivers/scsi/libata-core.c	2006-06-01 07:32:44.000000000 +0200
@@ -5200,7 +5200,15 @@ static void ata_host_init(struct ata_por
 	ap->sata_spd_limit = UINT_MAX;
 	ap->active_tag = ATA_TAG_POISON;
 	ap->last_ctl = 0xFF;
-	ap->msg_enable = ATA_MSG_DRV;
+
+#if defined(ATA_VERBOSE_DEBUG)
+	/* turn on all debugging levels */
+	ap->msg_enable = 0x00FF;
+#elif defined(ATA_DEBUG)
+	ap->msg_enable = ATA_MSG_DRV | ATA_MSG_INFO | ATA_MSG_CTL | ATA_MSG_WARN | ATA_MSG_ERR;
+#else + ap->msg_enable = ATA_MSG_DRV | ATA_MSG_ERR;
+#endif
INIT_WORK(&ap->port_task, NULL, NULL);
 	INIT_LIST_HEAD(&ap->eh_done_q);

Hello,

Those ATA_MSG_* constants designates two things..

* message level (debug, info, warning...)
* message origin (probe, intr...)

although above distinction isn't clear for some constants. libata now uses ata_port/dev_printk() macros to print messages and the second argument is message level (KERN_INFO, KERN_WARNING...), which carries duplicate information as above ATA_* constants. IMHO, it would be better to fold the two into one. e.g.

  ata_port_printk(ap, ATA_MSG_INFO, "blah blah\n");

instead of

  if (ata_msg_info(ap))
	ata_port_printk(ap, KERN_INFO, "blah blah\n");

Some constants probably need to be adjusted a bit though.

Thanks.

--
tejun
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux