2002-02-02 18:01:19

by Douglas Gilbert

[permalink] [raw]
Subject: [PATCH] lk 2.5.3 scsi generic (sg) driver

In lk 2.5.3 the sg driver tries to set up both address
and page+offset in scatterlist entries. Unfortunately
asm-i386/pci.h's pci_map_sg() contains this check:

if (sg[i].address && sg[i].page)
BUG();

which kills that strategy when the sym53c8xx driver
uses pci_map_sg(). This patch has been posted earlier
for lk 2.5.3-pre5 and is still required for lk 2.5.3

Doug Gilbert


--- linux/drivers/scsi/sg.c Thu Jan 24 18:45:01 2002
+++ linux/drivers/scsi/sg.c3523 Thu Jan 24 20:53:28 2002
@@ -19,7 +19,7 @@
*/
#include <linux/config.h>
#ifdef CONFIG_PROC_FS
- static char sg_version_str[] = "Version: 3.5.23 (20020103)";
+ static char sg_version_str[] = "Version: 3.5.23 (20020124)";
#endif
static int sg_version_num = 30523; /* 2 digits for each component */
/*
@@ -76,7 +76,7 @@
#include <linux/version.h>
#endif /* LINUX_VERSION_CODE */

-#define SG_STILL_HAVE_ADDRESS_IN_SCATTERLIST
+/* #define SG_STILL_HAVE_ADDRESS_IN_SCATTERLIST */

#define SG_ALLOW_DIO_DEF 0
#define SG_ALLOW_DIO_CODE /* compile out be commenting this define */



2002-02-05 23:21:43

by Dave Francheski

[permalink] [raw]
Subject: gprof / profiling support ?

I'm trying to profile an application
using the 'gprof' utility, and in particular
get timing information from the profile.

For some reason, the output from gprof
displays

"no time accumulated"

and I see no cumulative/self seconds
at all. However, all of the call counts
appear to be correct.

I suspect that the sampling rate using
by gprof/linux is simply two slow, given
the particular application I'm running.

Can anybody help me obtain timing information
from gprof and/or point me to a better
source for application profiling in general?

Thankyou for your support.
David Francheski

2002-02-06 20:09:31

by Jakob Oestergaard

[permalink] [raw]
Subject: Re: gprof / profiling support ?

On Tue, Feb 05, 2002 at 03:20:47PM -0800, Dave Francheski wrote:
> I'm trying to profile an application
> using the 'gprof' utility, and in particular
> get timing information from the profile.
>
> For some reason, the output from gprof
> displays
>
> "no time accumulated"
>
> and I see no cumulative/self seconds
> at all. However, all of the call counts
> appear to be correct.
>
> I suspect that the sampling rate using
> by gprof/linux is simply two slow, given
> the particular application I'm running.
>
> Can anybody help me obtain timing information
> from gprof and/or point me to a better
> source for application profiling in general?

This is way OT for linux-kernel, but here goes:

If you application runs for a very short amount of time (say, less than a
second) the profile will probably be dominated by glibc startup, application
initializations and exit routines. It's useless. That you don't have
time accumulated is the least of your problems - even with the times, your
profile would be random numbers and random function names.

In order to profile *anything* - you should make sure that it runs for a while
(I would say minutes at least, but it depends very much on the complexity of
your application, eg. number of functions involved, and how their run-time is
affected by data input and the environment (timing-sensitive threaded
applications etc.)). You simply need a good data sample, otherwise any data
you have will be dominated by noise, and your profile will be random.

If it's a very small computational routine, simply put it in a
for (int i = 0; i != 100000; i++) { ... }

--
................................................................
: [email protected] : And I see the elder races, :
:.........................: putrid forms of man :
: Jakob ?stergaard : See him rise and claim the earth, :
: OZ9ABN : his downfall is at hand. :
:.........................:............{Konkhra}...............: