sane-project-website/old-archive/2000-06/0202.html

174 wiersze
6.2 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>sane-devel: Re: scsi command queuing</TITLE>
<META NAME="Author" CONTENT="Wolfgang Rapp (wolfgang@rapp-informatik.de)">
<META NAME="Subject" CONTENT="Re: scsi command queuing">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Re: scsi command queuing</H1>
<!-- received="Wed Jun 28 10:36:49 2000" -->
<!-- isoreceived="20000628173649" -->
<!-- sent="Wed, 28 Jun 2000 20:48:30 +0200" -->
<!-- isosent="20000628184830" -->
<!-- name="Wolfgang Rapp" -->
<!-- email="wolfgang@rapp-informatik.de" -->
<!-- subject="Re: scsi command queuing" -->
<!-- id="395A487E.C6A0BE4C@rapp-informatik.de" -->
<!-- inreplyto="395A191F.E569B9AE@wolfsburg.de" -->
<STRONG>From:</STRONG> Wolfgang Rapp (<A HREF="mailto:wolfgang@rapp-informatik.de?Subject=Re:%20scsi%20command%20queuing&In-Reply-To=&lt;395A487E.C6A0BE4C@rapp-informatik.de&gt;"><EM>wolfgang@rapp-informatik.de</EM></A>)<BR>
<STRONG>Date:</STRONG> Wed Jun 28 2000 - 11:48:30 PDT
<P>
<!-- next="start" -->
<LI><STRONG>Next message:</STRONG> <A HREF="0203.html">Gerald Teschl: "Mustek SE12000SP Plus"</A>
<UL>
<LI><STRONG>Previous message:</STRONG> <A HREF="0201.html">Oliver Rauch: "scsi command queuing"</A>
<LI><STRONG>In reply to:</STRONG> <A HREF="0201.html">Oliver Rauch: "scsi command queuing"</A>
<!-- nextthread="start" -->
<LI><STRONG>Next in thread:</STRONG> <A HREF="0208.html">Oliver Rauch: "Re: scsi command queuing"</A>
<LI><STRONG>Next in thread:</STRONG> <A HREF="0205.html">Henning Meier-Geinitz: "Re: scsi command queuing"</A>
<LI><STRONG>Reply:</STRONG> <A HREF="0208.html">Oliver Rauch: "Re: scsi command queuing"</A>
<!-- reply="end" -->
<LI><STRONG>Messages sorted by:</STRONG>
<A HREF="date.html#202">[ date ]</A>
<A HREF="index.html#202">[ thread ]</A>
<A HREF="subject.html#202">[ subject ]</A>
<A HREF="author.html#202">[ author ]</A>
</UL>
<HR NOSHADE><P>
<!-- body="start" -->
<P>
Oliver Rauch schrieb:
<BR>
<P><EM>&gt; Hi,
</EM><BR>
<EM>&gt;
</EM><BR>
<EM>&gt; has someone experience with a sane backend and scsi command queueing?
</EM><BR>
<EM>&gt;
</EM><BR>
<EM>&gt; I am just working on it for the umax backend.
</EM><BR>
<EM>&gt;
</EM><BR>
<EM>&gt; At first I created some routines that replace the pipe to transfer the
</EM><BR>
<EM>&gt; data from the reader_process to the main process, it uses shared memory
</EM><BR>
<EM>&gt; instead (on systems where shared memory is available, otherwise the pipe is
</EM><BR>
<EM>&gt; used).
</EM><BR>
<EM>&gt;
</EM><BR>
<EM>&gt; Unfortunetly it does not speed up scanning large images. It really looks like
</EM><BR>
<EM>&gt; the comunication via the scsi bus is not fast enough.
</EM><BR>
<EM>&gt;
</EM><BR>
<EM>&gt; So I added scsi command queueing into the umax backend. But I am not
</EM><BR>
<EM>&gt; sure how I can see
</EM><BR>
<EM>&gt; 1) how/if it works (sanei_scsi debug output is not good enough)
</EM><BR>
<EM>&gt; 2) what I can do to speed up the comunication (it also does not help a lot).
</EM><BR>
<EM>&gt;
</EM><BR>
<EM>&gt; Any help is appreciated
</EM><BR>
<EM>&gt;
</EM><BR>
<P>I have done the UnixWare2 port of sane. Bofore this work I wrote a scanner
<BR>
driver for Microtek scanners for Unixware.
<BR>
I compared the scanning speed for A4 600x600 dpi full color scans with both
<BR>
sane and my Microtek solution.
<BR>
The sane scanning speed is much more slow then my singular solution . So whats
<BR>
the difference - I send a scsi command
<BR>
block along with a repeat faktor to a special kernel driver. The driver
<BR>
handles the whole scan internally without returning
<BR>
to the user programm. Original Unixes have a physio kernel funktion to lock
<BR>
user process in memory and the low level
<BR>
scsi drivers can send data direct to the user space even with dma mode . So a
<BR>
driver copy to user like in the linux kernel is also
<BR>
not necessary.
<BR>
But I think the most bottlenek is the interaktion between backends and kernel
<BR>
after every scsi-command. This interaction time by
<BR>
system calls , kernel scheduling etc. at this time is to long to keep the
<BR>
scanner running, the next scan command block should be send
<BR>
by the driver if it receives the completion interrupt from the last.
<BR>
If we talk about scanspeed we should think about extending the sg driver for
<BR>
doublebuffering data pages in kernel memory space
<BR>
and command block repeat count. Filling one buffer by dma from scsi hardware
<BR>
and coping in parallel the other out to the user
<BR>
space instead of waiting for interrupts. My somebody have looked more to the
<BR>
linux sg driver source code then I and knows more
<BR>
about how it works. But so all backends must be changed because not all could
<BR>
be done ins sane_scsi.
<BR>
<P>Bye Wolfgang
<BR>
<P><P><PRE>
--
Source code, list archive, and docs: <A HREF="http://www.mostang.com/sane/">http://www.mostang.com/sane/</A>
To unsubscribe: echo unsubscribe sane-devel | mail <A HREF="mailto:majordomo@mostang.com?Subject=Re:%20scsi%20command%20queuing&In-Reply-To=&lt;395A487E.C6A0BE4C@rapp-informatik.de&gt;">majordomo@mostang.com</A>
</PRE>
<P><!-- body="end" -->
<HR NOSHADE>
<UL>
<!-- next="start" -->
<LI><STRONG>Next message:</STRONG> <A HREF="0203.html">Gerald Teschl: "Mustek SE12000SP Plus"</A>
<LI><STRONG>Previous message:</STRONG> <A HREF="0201.html">Oliver Rauch: "scsi command queuing"</A>
<LI><STRONG>In reply to:</STRONG> <A HREF="0201.html">Oliver Rauch: "scsi command queuing"</A>
<!-- nextthread="start" -->
<LI><STRONG>Next in thread:</STRONG> <A HREF="0208.html">Oliver Rauch: "Re: scsi command queuing"</A>
<LI><STRONG>Next in thread:</STRONG> <A HREF="0205.html">Henning Meier-Geinitz: "Re: scsi command queuing"</A>
<LI><STRONG>Reply:</STRONG> <A HREF="0208.html">Oliver Rauch: "Re: scsi command queuing"</A>
<!-- reply="end" -->
<LI><STRONG>Messages sorted by:</STRONG>
<A HREF="date.html#202">[ date ]</A>
<A HREF="index.html#202">[ thread ]</A>
<A HREF="subject.html#202">[ subject ]</A>
<A HREF="author.html#202">[ author ]</A>
</UL>
<!-- trailer="footer" -->
<HR NOSHADE>
<P>
<SMALL>
<EM>
This archive was generated by <A HREF="http://www.hypermail.org/">hypermail 2b29</A>
: <EM>Wed Jun 28 2000 - 10:38:46 PDT</EM>
</EM>
</SMALL>
</BODY>
</HTML>