linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* aic7xxx
@ 2000-12-17  2:12 Mathias Wiklander
  2000-12-17  7:41 ` aic7xxx stewart
  2000-12-17 10:30 ` aic7xxx Mohammad A. Haque
  0 siblings, 2 replies; 11+ messages in thread
From: Mathias Wiklander @ 2000-12-17  2:12 UTC (permalink / raw)
  To: linux-kernel

Hi!

I have problem using my scsi card. It is an Adaptec 2940 (SCSI2). When
ever I try to load it as a module or if I compile it in the kernel I get
the folowing error messages. The last 4 messages repeats for ever. The
problem is on 3 diffrent machines. Anyone who know what it can be and
how to fix it. 

/Eastbay

(scsi0) <Adaptec AHA-294X SCSI host adapter> found at PCI 0/19/0
(scsi0) Narrow Channel, SCSI ID=7, 16/255 SCBs
(scsi0) Cables present (Int-50 NO, Ext-50 NO)
(scsi0) Downloading sequencer code... 415 instructions downloaded
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.2.1/5.2.0
       <Adaptec AHA-294X SCSI host adapter>
scsi : aborting command due to timeout : pid 0, scsi0, channel 0, id 0,
lun 0 Inquiry 00 00 00 ff 00 
SCSI host 0 abort (pid 0) timed out - resetting
SCSI bus is being reset for host 0 channel 0.
SCSI host 0 channel 0 reset (pid 0) timed out - trying harder
SCSI bus is being reset for host 0 channel 0.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 11+ messages in thread
* Re: aic7xxx
@ 2000-12-18  1:03 Douglas Gilbert
  0 siblings, 0 replies; 11+ messages in thread
From: Douglas Gilbert @ 2000-12-18  1:03 UTC (permalink / raw)
  To: Mohammad A. Haque, linux-kernel

Mohammad A. Haque wrote:
>
> Weird. The modules just give me unresolved symbol errors instead of the
> loop.
> 
> Mathias Wiklander wrote:
> > 
> > Sorry I've forgot that. It is 2.4.0-test12
> >

There was a SCSI Makefile bug in test12 that caused
those unresoved symbols. This patch from Bob Tracy
fixes it.

Doug Gilbert

--- linux/drivers/scsi/Makefile Tue Dec 12 10:49:32 2000
+++ linux/drivers/scsi/Makefile.t12bt   Tue Dec 12 22:46:27 2000
@@ -30,7 +30,7 @@
 CFLAGS_gdth.o    = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS
 CFLAGS_seagate.o =   -DARBITRATE -DPARITY -DSEAGATE_USE_ASM
 
-obj-$(CONFIG_SCSI)             += scsi_mod.o
+obj-$(CONFIG_SCSI)             += scsi_mod.o scsi_syms.o
 
 obj-$(CONFIG_A4000T_SCSI)      += amiga7xx.o   53c7xx.o
 obj-$(CONFIG_A4091_SCSI)       += amiga7xx.o   53c7xx.o
@@ -122,8 +122,7 @@
 scsi_mod-objs  := scsi.o hosts.o scsi_ioctl.o constants.o \
                        scsicam.o scsi_proc.o scsi_error.o \
                        scsi_obsolete.o scsi_queue.o scsi_lib.o \
-                       scsi_merge.o scsi_dma.o scsi_scan.o \
-                       scsi_syms.o
+                       scsi_merge.o scsi_dma.o scsi_scan.o
 
 sr_mod-objs    := sr.o sr_ioctl.o sr_vendor.o
 initio-objs    := ini9100u.o i91uscsi.o

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

^ permalink raw reply	[flat|nested] 11+ messages in thread
* Re: [Lse-tech] Re: RFC: patch to allow lock-free traversal of lists with insertion
@ 2001-10-10 11:54 Keith Owens
  2001-10-10 13:42 ` AIC7XXX war
  0 siblings, 1 reply; 11+ messages in thread
From: Keith Owens @ 2001-10-10 11:54 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel

On Wed, 10 Oct 2001 05:05:10 +0000 (UTC), 
torvalds@transmeta.com (Linus Torvalds) wrote:
>Now, before people get all excited, what is this particular code
>actually _good_ for?
>
>Creating a lock-free list that allows insertion concurrently with lookup
>is _easy_.
>
>But what's the point? If you insert stuff, you eventually have to remove
>it. What goes up must come down. Insert-inane-quote-here.
>
>And THAT is the hard part. Doing lookup without locks ends up being
>pretty much worthless, because you need the locks for the removal
>anyway, at which point the whole thing looks pretty moot.

<pedantic>

It is possible to do completely lock free queue management, I have done
it (once).  There are several major requirements :-

* Storage must never change its type (type stable storage).  Once a
  block has been assigned as struct foo, it must always contain struct
  foo.  This can be relaxed slightly as long as the data types have a
  common header format.

  The biggest problem this causes is that storage can never be released
  and unmapped.  You never know if somebody is going to follow an old
  pointer to access storage that you freed.  You must put the storage
  on a free list for struct foo instead of unmapping it, to maintain
  the type stable storage.

* Every piece of code that traverses the data tree for structure foo
  must take a copy of each struct foo into local storage.  After taking
  a copy it must verify that its local copy is self consistent, via
  validity indicators in each struct.  The validity indicators are
  typically generation numbers, whatever you use, the indicators must
  be atomically updated and atomically read, with suitable wmb and rmb
  barriers for machines with weak memory ordering.

* After following a pointer in your local copy of struct foo to access
  another data area, you must verify that the master version of your
  local copy has not been changed.  If the master copy has changed then
  the pointer you just followed is no longer reliable.  In almost every
  case you have to start the traversal from the beginning.  It makes
  for very convoluted reader and updater code.

</pedantic>

The only reason I used lock free read and update was to hook into an
existing system that mandated sub second responses.  Some of the new
operations that were performed during list traversal and update were
subject to unbounded delays that were completely outside my control.  I
could not afford to lock the data structures during traversal because
any delay in the new operations would completely stall the existing
system, also the existing system had to be able to retrieve and delete
data for the new operations at any time.

I don't recommend doing lock free unless you have absolutely no
alternative.  It requires convoluted code, it is difficult to debug, it
is expensive on memory bandwidth (forget zero copy) and tends to be
expensive on storage as well.

If you are interested in lock free work, take a look at
http://www.cs.pitt.edu/~moir/papers.html, particularly Practical
Implementations of Non-Blocking Synchronization Primitives.  But
beware, that paper has an error which caused intermittent bugs that
took me 5 months to track down.  Section 3.3, proc Copy, line 6 should
be

6:     y := addr->data[i];


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2001-10-10 21:40 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-17  2:12 aic7xxx Mathias Wiklander
2000-12-17  7:41 ` aic7xxx stewart
2000-12-17  9:08   ` aic7xxx Mathias Wiklander
2000-12-17 10:30 ` aic7xxx Mohammad A. Haque
2000-12-17 10:49   ` aic7xxx Mathias Wiklander
2000-12-17 14:41     ` aic7xxx stewart
2000-12-17 21:14     ` aic7xxx Mohammad A. Haque
2000-12-19 21:22       ` aic7xxx Mathias Wiklander
2000-12-18  1:03 aic7xxx Douglas Gilbert
2001-10-10 11:54 [Lse-tech] Re: RFC: patch to allow lock-free traversal of lists with insertion Keith Owens
2001-10-10 13:42 ` AIC7XXX war
2001-10-10 21:40   ` AIC7XXX Luigi Genoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).