Re: Qlogic FC, 2.5.62,-mm1 w/flock fix (plm# 1567)

From: Andrew Morton (akpm@digeo.com)
Date: Wed Feb 19 2003 - 03:35:18 EST


Cliff White <cliffw@osdl.org> wrote:
>
>
> Thanks Andrew and Matthew.
> We can now actually *without* rebooting the machine,
> start the database.
> stop the database, and
> (gasp!) re-start the database without error. Progress. :)
> (2.5.62 stock and 2.5.62-mm1 both fail this test)

Ah, that's good news. I have an update from Matthew which fixes
the confusion-at-reboot-time. Below.

> Also,
> we've run the OSDL dbt-2 workload on a 4-cpu machine,
> (PIII @700mhz x4 w/3GB RAM Qlogic 2200 FC card)
> using
>
> linux-2.5.62 + flock() fix (plm patch id#1567)
> - disk using qlogicfc driver
> linux-2.5.62-mm1 + flock() fix (plm patch id#1567)
> - disk using isp (new) driver
>
> Results and bunch o' numbers at:
> http://www.osdl.org/archive/cliffw/flock/flock-mm1
> http://www.osdl.org/archive/cliffw/flock/flock-62
>
> Caveats: This data is one run from each kernel,
> results from repeated runs may vary, harmful or fatal if
> swallowed. Merge of plm 1567 w/-mm1 performed by unskilled
> labor. We have *not* tested this on the several other
> wierdasp SCSI devices in house, more results maybe.
>
> Quick observations:
> DBT numbers are about the same (+/- 10%), but vmstat differs:
> - There are certainly tunables, especially in /proc/vm/sys
> that we haven't tried yet. Any suggestions on tunables
> most appreciated.
> - more procssess are runing w/-mm1 in each sample..
> - this a cached run, io occurs mostly during load, except for db log io
>

That all looks OK. You're sustaining almost 95% user CPU time across the
run. The -mm1 run is using more pagecache for some reason. Presumably
because of "more processes".

 scsi/isp/isp_linux.c | 18 +++++++++---------
 scsi/isp/isp_pci.c | 16 +++++++++++++---
 2 files changed, 22 insertions(+), 12 deletions(-)

diff -puN drivers/scsi/isp/isp_linux.c~isp-update-1 drivers/scsi/isp/isp_linux.c
--- 25/drivers/scsi/isp/isp_linux.c~isp-update-1 2003-02-18 13:19:18.000000000 -0800
+++ 25-akpm/drivers/scsi/isp/isp_linux.c 2003-02-18 13:19:18.000000000 -0800
@@ -944,7 +944,7 @@ isplinux_abort(Scsi_Cmnd *Cmnd)
                 NewCmnd = isplinux_remove_from_doneq(Cmnd);
                 wqfnd++;
         }
- ISP_UNLKU_SOFTC(isp);
+ ISP_UNLK_SOFTC(isp);
         isp_prt(isp, ISP_LOGINFO,
             "isplinux_abort: found %d:%p for non-running cmd for %d.%d.%d",
             wqfnd, NewCmnd, XS_CHANNEL(Cmnd), XS_TGT(Cmnd), XS_LUN(Cmnd));
@@ -954,14 +954,14 @@ isplinux_abort(Scsi_Cmnd *Cmnd)
         }
     } else {
         if (isp_control(isp, ISPCTL_ABORT_CMD, Cmnd)) {
- ISP_UNLKU_SOFTC(isp);
+ ISP_UNLK_SOFTC(isp);
             ISP_DRIVER_EXIT_LOCK(isp);
             return (FAILED);
         }
         if (isp->isp_nactive > 0)
             isp->isp_nactive--;
         isp_destroy_handle(isp, handle);
- ISP_UNLKU_SOFTC(isp);
+ ISP_UNLK_SOFTC(isp);
         ISP_DRIVER_EXIT_LOCK(isp);
         isp_prt(isp, ISP_LOGINFO,
             "isplinux_abort: aborted running cmd (handle 0x%x) for %d.%d.%d",
@@ -989,9 +989,9 @@ isplinux_bdr(Scsi_Cmnd *Cmnd)
     isp = XS_ISP(Cmnd);
     arg = XS_CHANNEL(Cmnd) << 16 | XS_TGT(Cmnd);
     ISP_DRIVER_ENTRY_LOCK(isp);
- ISP_LOCKU_SOFTC(isp);
+ ISP_LOCK_SOFTC(isp);
     arg = isp_control(isp, ISPCTL_RESET_DEV, &arg);
- ISP_UNLKU_SOFTC(isp);
+ ISP_UNLK_SOFTC(isp);
     ISP_DRIVER_EXIT_LOCK(isp);
     isp_prt(isp, ISP_LOGINFO, "Bus Device Reset %succesfully sent to %d.%d.%d",
         arg == 0? "s" : "uns", XS_CHANNEL(Cmnd), XS_TGT(Cmnd), XS_LUN(Cmnd));
@@ -1013,9 +1013,9 @@ isplinux_sreset(Scsi_Cmnd *Cmnd)
     isp = XS_ISP(Cmnd);
     arg = XS_CHANNEL(Cmnd);
     ISP_DRIVER_ENTRY_LOCK(isp);
- ISP_LOCKU_SOFTC(isp);
+ ISP_LOCK_SOFTC(isp);
     arg = isp_control(isp, ISPCTL_RESET_BUS, &arg);
- ISP_UNLKU_SOFTC(isp);
+ ISP_UNLK_SOFTC(isp);
     ISP_DRIVER_EXIT_LOCK(isp);
     isp_prt(isp, ISP_LOGINFO, "SCSI Bus Reset on Channel %d %succesful",
         XS_CHANNEL(Cmnd), arg == 0? "s" : "uns");
@@ -1041,7 +1041,7 @@ isplinux_hreset(Scsi_Cmnd *Cmnd)
     isp_prt(isp, ISP_LOGINFO, "Resetting Host Adapter");
 
     ISP_DRIVER_ENTRY_LOCK(isp);
- ISP_LOCKU_SOFTC(isp);
+ ISP_LOCK_SOFTC(isp);
 
     /*
      * Save pending, running, and completed commands.
@@ -1069,7 +1069,7 @@ isplinux_hreset(Scsi_Cmnd *Cmnd)
 
     isplinux_reinit(isp);
 
- ISP_UNLKU_SOFTC(isp);
+ ISP_UNLK_SOFTC(isp);
     ISP_DRIVER_EXIT_LOCK(isp);
 
     /*
diff -puN drivers/scsi/isp/isp_pci.c~isp-update-1 drivers/scsi/isp/isp_pci.c
--- 25/drivers/scsi/isp/isp_pci.c~isp-update-1 2003-02-18 13:19:18.000000000 -0800
+++ 25-akpm/drivers/scsi/isp/isp_pci.c 2003-02-18 13:20:11.000000000 -0800
@@ -377,12 +377,17 @@ isplinux_pci_addhost(Scsi_Host_Template
     isp->isp_next = isplist;
     isplist = isp;
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,4)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,61)
     scsi_set_device(host, &pci_isp->pci_dev->dev);
+#else
+ scsi_set_pci_device(host, pci_isp->pci_dev);
+#endif
 #endif
     return (pci_isp);
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18) && \
+ LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 #include <linux/reboot.h>
 static int
 isp_notify_reboot(struct notifier_block *ispnb, unsigned long Event, void *b)
@@ -513,7 +518,11 @@ isplinux_pci_detect(Scsi_Host_Template *
         }
     }
 #endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18)
+ /*
+ * Don't do reboot notifier stuff for 2.5.X yet
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18) && \
+ LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
     if (isp_nfound) {
         register_reboot_notifier(&isp_notifier);
     }
@@ -551,7 +560,8 @@ isplinux_pci_release(struct Scsi_Host *h
         RlsPages(FCPARAM(isp)->isp_scratch, 1);
     }
 #endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18) && \
+ LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
     if (--isp_nfound <= 0) {
         unregister_reboot_notifier(&isp_notifier);
     }

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:25 EST