Re: Digi AccelePort-USB 2, 4 or 8 port serial terminal server ?

1999-12-05 Thread Nick Hibma

 Nice serial server, anyone working for serial support on USB ?
 Have an 8 port and could help getting support for it or testing
 drivers.

If you are or someone else is willing to write a driver under NDA I can
give you the e-mail address of a guy who can give you the specifications
for it.

I dropped the idea of writing the driver as there were other, open
source projects to be working on.

Nick
--
[EMAIL PROTECTED]
[EMAIL PROTECTED]  USB project
http://www.etla.net/~n_hibma/



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Hardware list idea

1999-12-05 Thread Nick Hibma

 I think openbsd asks users to email them the output of 'dmesg',
 so they can tell which drivers are really of interest to the
 greatest number of their users.  Seems like a reasonable idea.

You might want to include the list of packages installed from the base
CD's as well to prime the packages that need to be there.

Nick
--
[EMAIL PROTECTED]
[EMAIL PROTECTED]  USB project
http://www.etla.net/~n_hibma/



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Basic question about threads and SMP

1999-12-05 Thread Nick Hibma


Being multi-threaded has almost nothing to do with being
multi-processor. Multi-threading means that your application has
multiple threads of execution that are able to run simultaneously.

The multi-processing capability of your box means that 2 threads of
execution, be it a process or a thread within a process, are executed
_literally_ at the same time, and not in simulated concurrency like it
happens on a UP box.

Whether or not any application should be compiled with libc_r depends
solely on the application itself. And, as you suggest, that is decided
at build time. If applications support multi-threading they normally
come with a Makefile using libc_r.

Now, whether you want to multi-thread Apache is totally different issue
...

Nick


On Wed, 1 Dec 1999, Doug Barton wrote:

   You know, a stray thought just occured to me, which hopefully
 won't sound to silly to people who know about this stuff. :) If I have an
 SMP box (using -Current specifically) do I want to be compiling things
 with -lc_r? I'm thinking specifically of mission critical things like
 apache, but in general will other ports and such take advantage of
 libc_r if they are compiled with it, or would a program that _can_ take
 advantage of it already have that built in, say into autoconf or some
 such? What about other parts of the base system? I'm assuming that the
 kernel is covered by virtue of the fact that I've enabled the SMP options,
 yes?
 
   I'm trying to learn more about SMP, threads, and such like in
 general. The recent conversations about those topics on the lists have
 been very educational. I'm still wading through them, but I appreciate
 being able to sit on the sidelines and glean bits here and there.
 
 Thanks,
 
 Doug
 -- 
 "Welcome to the desert of the real." 
 
 - Laurence Fishburne as Morpheus, "The Matrix"
 
 
 
 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with "unsubscribe freebsd-hackers" in the body of the message
 

--
[EMAIL PROTECTED]
[EMAIL PROTECTED]  USB project
http://www.etla.net/~n_hibma/




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Jonathan M. Bresler


[snip]
   I am a good programmer and can fix things :-).  But I've had to deal with
   a number of nightmare situations by commercial entities deploying FreeBSD 
   and at least three (including one very recently) where commercial entities 
   have refused to upgrade past 2.2.x due to perceived stability problems.
[snip]
 
   -Matt
   Matthew Dillon 

we can not identify the specific problem from this message.
without sufficient information to indentify and hopefully reproduce
the problem, we can not address it.  please provide this information
if it is available to you. if it is not, please provide us contact
information for the commercial entities experiencing the problem.

jmb


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Dennis

The "issue" that i first cited is that the core people in FreeBSD seemed
disinterested in 3.x soon after its release. Development on 4.0 shouldnt
even have begun until 3.x was stabilized. 3.0 wasnt ready for prime time
when  it was released and the work needed to get it there hasnt been done
due to the fascination with 4.0.

DB


At 10:46 PM 12/4/99 -0800, Matthew Dillon wrote:

: 
: He didn't say this until after the situation had started to degrade.
: 
: Besides, he's right.  3.x has serious problems.
:
:All running software has serious problems, that's why it is never considered
:done.  Taking the time to enumerate specific problems that are currently 
:plaguing an installation is the only way anyone can possibly hope to help.
:Problems reports of "It don't work" are helpful to absolutely noone.

This simply isn't true.  I have written plenty of software (large
projects) that do not have serious problems and, in fact, some do not
have any known problems at all.  I have written several operating systems
and one of them is least as complex as the FreeBSD core (but not as 
complex if you count drivers) which are bug-free (that is, there have
been no recorded crashes and except for feature updates have never been
rebooted).

FreeBSD can become 'bug free' insofar as it is possible to become bug
free.  You have to believe that it can happen or it won't.   I believe
it can -- my personal goal for the project is to make the core bug free 
and uncrashable (and here I mean only with a network and disk driver, 
and not all the other drivers out there which would be an impossible
task).  Since I've actually *written* bug-free and uncrashable OS cores
I am confident that it is possible to do with FreeBSD.

Many of the issues relating to FreeBSD's instability and the many bugs
in the core have nothing to do with continuing development work
per-say, but instead has to do with an attitude that allows major
pollution to be introduced into the code to optimize very specific
cases (which destabilizes the source at the same time), and the lack of 
proper documention within the source code.  It is precisely these two
things which I have concentrated on the most - by rewriting where 
necessary, generalizing optimizations (and ripping quite a few out of
the VM system entirely), and documenting the hell out of any procedure
I modify with succinct comments.

There are two good examples of code pollution and, needless to say, they
have been responsible for a huge number of bugs over the years.  Hundreds
of bugs at least.  The first example is all the VM hacking that was
done to accomodate partial cache instantiation and, most noteably,
partial byte-range writes for NFS.  So far this year I have managed to
rip about half of those hacks out at relatively little cost (a few 
esoteric NFS write cases will be slower is all and buffer cache writing
is slightly slower due to the extra system process, but hopefully made up
by the move to an O(1) algorithm (previously an O(N^2) algorithm).

The second example is the VFS layer implemenation and, most especially, 
VOP_LOOKUP(). VOP_LOOKUP() has caused no end of trouble but the VFS layer
implementation with all of its locking assumptions and return
requirements
has made filesystem design problematic at best.  There is enormous 

complexity in the lookup, directory scanning, VFS cache code that hides
bugs and that could be removed with a rewrite.

In general, it is possible to fix these problems but some of those fixes
require significant rewriting.  You have to be willing to rewrite and
take your lumps up front or you may be faced with a situation where
new problems are found with a subsystem for years to come.  The best 
example of this in my case is the getnewbuf() code.  The code was 
originally optimized with so many 'hacks' that it created at least half
a dozen serious bugs in the system.  When I first rewrote it I
encountered
a huge amount of resistance from certain people who believed (wrongly)
that
rewriting would create more bugs then it fixed.  While a few bugs were
introduced (that's the 'taking your lumps part), the generalization of
the code made finding and fixing them much, much easier and this will
ultimately lead to a better track record down the road.

I applaud the removal of dead code that has been going on, though I have
major problems with the way some of it has been gone about.  Compared
to what some committers have been doing recently, the dead code removal
that Alan and I had done to the VM system earlier in the year was a walk
in the part.  I am dead set against 'hiding' bugs by trying to cache
around them instead of fixing them, which is essentially the category 
in which I put most of the recent changes to procfs and /bin/ps.

Re: Inverting a gdb -k mapping?

1999-12-05 Thread Greg Lehey

On Thursday,  2 December 1999 at 22:32:44 -0500, David Gilbert wrote:
 I can grep through the vmcore.x file and find the offset of the string
 I put on the stack by

 strings -t x vmcore.9 | grep dgilbert_

 ... but how do I associate that back with an address inside gdb -k?

With utmost difficult.

 My problem is that vinum (or something related to it) is trashing
 the stack and trying to return to 0x0 is panic'ing the kernel (of
 course).

 ... now... bt in gdb -k on this shows the series of trap calls and
 ends with frame 5 as:

 #5  0x0 in ?? ()

I think I probably should take a look at this.  I don't know what I'll
find, but there are a number of possibilities.  I don't think that
mapping the physical memory image to the virtual memory address is one
of them.  What might help is searching the area round frame 5 for a
likely looking ebp value which would point further back down the
stack.  You can also help it, of course, by setting a static variable,
say "dgilbert_last_stack" to the ebp value every time you enter a
function.  You don't need any other information; the backtrace will
take you straight back.  Use the 'btr' command (in
/usr/src/sys/modules/vinum/.gdbinit.kernel).

You'll get faster response from me if you copy me on messages like
this; I read them eventually (usually), but I read messages sent
directly to me sooner.

Greg
--
Finger [EMAIL PROTECTED] for PGP public key
See complete headers for address and phone numbers


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tmpfs .. ?

1999-12-05 Thread Ronald F. Guilmette


In message [EMAIL PROTECTED], 
Matthew Dillon [EMAIL PROTECTED] wrote:

Mail queue files are persistant enough (upwards of 5 days if a destination
is down)  that you run a real risk of losing something important if 
you crash and wipe.  I would not use MFS at all and I would only use VN
with persistant store, but the performance is going to be similar to
using a normal filesystem so it may not be worth doing.

Yea, someone else I was talking with about this said the same thing.

I just can't get over the nagging feeling that (for the mail spool
directory) there ought to be something that is ultra-super-deluxe
fast that I should be using. :-)

  Normal 
  filesystems with softupdates turned on make pretty good mail spools though

OK, I've seen several mentions now of `softupdates', and I think that I
have a general (vague?) notion of what `softupdates' is all about, but
allow me to disaply my ignorance one more time and ask which man page
(or document) I should be looking at to learn all of the specifics
regarding `softupdates'.  (I looked at `man tunefs' and I don't see
nuttin' there, so where exactly is/are `softupdates' documented?)



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Brian Fundakowski Feldman

On Mon, 6 Dec 1999, Dennis wrote:

 The "issue" that i first cited is that the core people in FreeBSD seemed
 disinterested in 3.x soon after its release. Development on 4.0 shouldnt
 even have begun until 3.x was stabilized. 3.0 wasnt ready for prime time
 when  it was released and the work needed to get it there hasnt been done
 due to the fascination with 4.0.
 
 DB

It was never stated that 3.0 was ready for prime-time, and in fact, quite
the opposite was stated.  Development on 4.0 did start when 3.X was stable,
but that doesn't mean bugs which cause instability under very specific
conditions still weren't found.  MANY of the things done in 4.0 by Matt,
for instance, cannot be merged into RELENG_3 without making huge,
sweeping changes.  These changes wouldn't have been made in the "stable",
non-development branch.  They weren't.  They were made in the development
branch, HEAD, 4.0.

-- 
 Brian Fundakowski Feldman   \  FreeBSD: The Power to Serve!  /
 [EMAIL PROTECTED]`--'



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Ed Hall

You write:
:   we can not identify the specific problem from this message.
: without sufficient information to indentify and hopefully reproduce
: the problem, we can not address it.  please provide this information
: if it is available to you. if it is not, please provide us contact
: information for the commercial entities experiencing the problem.

I work at Yahoo.  My address there is "[EMAIL PROTECTED]".

On a recent project I encountered two show-stopping bugs with 3.3-release
that did not exist in 2.2.8-release:

1) Random crashes in FXP interrupt or low-level IP code.  Something is
   clobbering the kernel stack--possibly the NCR driver, since using an
   Adaptec made the problem stop, as did a backport of the CAM driver
   Peter Wemm tried.  This was on an N440BX, which is becoming quite
   common in server applications.  Other installations are apparantly
   seeing the same problem on this hardware.

2) A hard loop in the pagedaemon.  This was especially egregious, since
   it meant the system had to be rebooted from the console--and since
   the application could elicit the problem within a few minutes.
   Disabling the use of mmap() for file update in the application
   prevented the problem.  After spending a day trying to cook up a
   test program that elicited the same behavior that the application
   did, I gave up for lack of time.  But there have been other reports
   of late that sound like this problem, mostly in high VM/RAM situations.

That's two serious bugs that exist in 3.3-release but not in 2.2.8-release.
Looking back through the archives, I can see that I'm not the only one who
has experienced them.  I came away from the experience with the feeling that
the FreeBSD project has some serious Q/A problems... and I can assure you,
I'm not alone in this feeling.

-Ed




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Ronald F. Guilmette


In message [EMAIL PROTECTED], 
Matthew Dillon [EMAIL PROTECTED] wrote:

So, I think it *IS* possible to make FreeBSD sufficiently bug-free that
people become 'surprised' when they are able to crash a box running it.

FYI - Part of the reason that _I_ jumped onto the FreeBSD bandwagon
(not that long ago) was that FreeBSD was advertised as being basically
uncrashable.

As you might imagine, I was rather disappointed to learn that the
``never crashes'' claims that I had read (on www.freebsd.org?) were
not always true in practice... at least not on the heavily-stressed
2.2.8 system that I was running awhile back.  (That system has now
been taken out of service for reasons entirely unrelated to the OS.)

Having said that however, I guess that I should also clarify that
the crashes I had been experiencing with that 2.2.8 system might
perhaps have been easily solved (at the time) if it had not been
for an unfortunate combination of factors (i.e. swap partition
having been allocated too small, more memory being added to the
system) that made it impossible for me to get any sort of a system
crash dump to analyze.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tmpfs .. ?

1999-12-05 Thread David Scheidt

On Sun, 5 Dec 1999, Ronald F. Guilmette wrote:

   Normal 
   filesystems with softupdates turned on make pretty good mail spools though
 
 OK, I've seen several mentions now of `softupdates', and I think that I
 have a general (vague?) notion of what `softupdates' is all about, but
 allow me to disaply my ignorance one more time and ask which man page
 (or document) I should be looking at to learn all of the specifics
 regarding `softupdates'.  (I looked at `man tunefs' and I don't see
 nuttin' there, so where exactly is/are `softupdates' documented?)

See src/sys/ufs/ffs/README.softupdates, which tells you what you need to get
them to work, and 
http://www.ece.cmu.edu/~ganger/CSE-TR-254-95/

David Scheidt



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Bill Fumerola

On Sun, 5 Dec 1999, Ronald F. Guilmette wrote:

 The controller is an AHA-2940U (not wide).  The da0 disk is a Quantum
 Viking 4.5GB SCSI.  I have never had any problem with this drive before,
 even though I used it on Linux for several months.
 
 This (FreeBSD) system has been running just fine, with no problems, for
 several weeks.  And now this!

Before throwing the "this worked in Linux!" crap around, please consider
that it is possible Linux just didn't report the errors.

just a possibility...

-- 
- bill fumerola - [EMAIL PROTECTED] - BF1560 - computer horizons corp -
- ph:(800) 252-2421 - [EMAIL PROTECTED] - [EMAIL PROTECTED]  -






To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Dan Seguin





On Sun, 5 Dec 1999, Bill Fumerola wrote:

 On Sun, 5 Dec 1999, Ronald F. Guilmette wrote:
 
  The controller is an AHA-2940U (not wide).  The da0 disk is a Quantum
  Viking 4.5GB SCSI.  I have never had any problem with this drive before,
  even though I used it on Linux for several months.
  
  This (FreeBSD) system has been running just fine, with no problems, for
  several weeks.  And now this!
 
 Before throwing the "this worked in Linux!" crap around, please consider
 that it is possible Linux just didn't report the errors.
 
 just a possibility...
 
 -- 
 - bill fumerola - [EMAIL PROTECTED] - BF1560 - computer horizons corp -
 - ph:(800) 252-2421 - [EMAIL PROTECTED] - [EMAIL PROTECTED]  -


"... even though I used it on Linux for several months."

I read that as meaning "the drive worked despite the fact that it was on
Linux".



Dan Seguin  Texar Software, Corporation.

The trouble with doing something right the first time is that nobody
appreciates how difficult it was.







To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



NFS server bound to specific local address

1999-12-05 Thread Joe Abley

Hi,

I've just noticed that (on STABLE, at least) it doesn't seem possible
to run an NFS server on a machine, and have it service requests from
clients talking to anything other than the base address.

For example, if I

  ifconfig fxp0 inet 192.168.0.11
  ifconfig fxp0 inet 192.168.0.16 alias

and then have clients attempt to mount 192.168.0.16:/foo, the clients
will not successfully mount the shared volume; this is (according to
some posts on the subject I found in the -questions archive) because
the client is expecting replies from 192.168.0.16, but the server
is sending them from 192.168.0.16.

This is correct behaviour by the client, since trusting NFS replies
from any old address would be silly.

It seems to me that _my_ requirements would be satisfied if an NFS
request from a client could have its destination address recorded, so
that any replies to that specific request could be sourced from the
address expected by the client.

  Would this obviously break anything else?

  Would this be a security-conscious modification?

  Does -current already do this?

If "no, yes, no" I'll have a look myself. Just keen not to overlap with
anybody else's effort.

-- 
Ua lawa küpono ka hakahaka pä o këia pä malule


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Sendmail (was Re: tmpfs .. ?)

1999-12-05 Thread Dan Nelson

In the last episode (Dec 05), Ronald F. Guilmette said:
 Matthew Dillon [EMAIL PROTECTED] wrote:
  Mail queue files are persistant enough (upwards of 5 days if a
  destination is down) that you run a real risk of losing something
  important if you crash and wipe.  I would not use MFS at all and I
  would only use VN with persistant store, but the performance is
  going to be similar to using a normal filesystem so it may not be
  worth doing.
 
 Yea, someone else I was talking with about this said the same thing.
 
 I just can't get over the nagging feeling that (for the mail spool
 directory) there ought to be something that is ultra-super-deluxe
 fast that I should be using. :-)

Sendmail 8.10 seems to have some performance enhancements, including
"memory-buffered files to reduce file system overhead by not creating
temporary files on disk", "New queue file naming system which uses a
filename guaranteed to be unique for 60 years.  This allows queue IDs
to be assigned without fancy file system locking", and
"QueueSortOrder=Filename will sort the queue by filename.  This avoids
opening and reading each queue file when preparing to run the queue".

I don't know if any of them really help, but it's worth looking at.

-- 
Dan Nelson
[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tmpfs .. ?

1999-12-05 Thread Ronald F. Guilmette


In message [EMAIL PROTECTED], you 
wrote:

See src/sys/ufs/ffs/README.softupdates, which tells you what you need to get
them to work

Thank you.  I'll definitely be looking at that.

P.S.  The other reference you gave:

http://www.ece.cmu.edu/~ganger/CSE-TR-254-95/

seem to no longer be useful/functional.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Jordan K. Hubbard

 "... even though I used it on Linux for several months."
 
 I read that as meaning "the drive worked despite the fact that it was on
 Linux".

Well, just to inject a note of reality into this discussion:

1. It's quite possible that the drive and/or the cabling in this
   system has been defective all along.

2. It's equally possible that the linux driver simply doesn't report
   the errors but, as FreeBSD does, retries the failing operations.
   This would result in a system which appeared to work just fine,
   just more slowly at times (which would probably not even be
   noticed).

3. Any system I saw spitting out errors like this would get the following
   treatment, in roughly this order:

   3a) Complete check of all cables and the seating of connectors.

   3b) Examination of the drive(s) in question for any cooling or
   mounting deficiencies.  Depending on the SCSI errors in question,
   I might even investigate firmware updates for the drive(s).

   3c) Examination of the controller for correct seating and bus slot
   (in older PCI mobos, this makes a difference) as well as its
   firmware revision level.

I'd also, obviously, look into any recent FreeBSD driver updates to
see if I was running afoul of something recently added.  If nothing in
software appeared to be the culprit and I was still seeing the errors
after doing steps 3a-3c above, I'd then pop in another drive and copy
my data to it, removing the old drive afterwards and setting it aside
in my "suspect" pile.  If the errors still occurred, I'd replace the
SCSI cabling and move the old drive from the "suspect" to the "spare"
pile.  If it still didn't work, I'd move the old SCSI cabling to my
spare pile as well and replace the controller.

After that I can't tell you what I'd do next since I've never had a
problem persist after going all the way down this road. :-)

- Jordan


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Kelly Yancey

 
3b) Examination of the drive(s) in question for any cooling or
mounting deficiencies.  Depending on the SCSI errors in question,
I might even investigate firmware updates for the drive(s).
 

  I actually used to get these *exact* errors a couple of years ago on
various 2.x systems. At first, I had assumed a bug in the driver (the ahc
driver was noted as still having some bugs at the time, if I recall
correctly). The errors would rare (every month or so, but they would come 
in batches). I kept upgrading, from 2.1.5, through 2.2.5 hoping that the
errors would go away. Now, my ignorance being point out, it turned out
that the errors were actually heat-induced.
  I had 2 5-year old 7200RPM drives in each of the systems, that besides
being noisy, got pretty hot. Of course, they weren't hot when I mounted
them :), and I had mounted them right next to each other in the case.
It helped a little when I spaced the drives apart from each other. Then
I found these neat full-length expansion cards which have 2 fans mounted
on them. Got that situated to circulate additional air across the drives
and never had any problem since (those systems have been running for over
a year since without incident).

  Kelly
--
Kelly Yancey  -  [EMAIL PROTECTED]  -  Richmond, VA
Director of Technical Services, ALC Communications  http://www.alcnet.com/
Maintainer, BSD Driver Database   http://www.posi.net/freebsd/drivers/
Coordinator, Team FreeBSDhttp://www.posi.net/freebsd/Team-FreeBSD/



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Matthew Jacob

 3. Any system I saw spitting out errors like this would get the following
treatment, in roughly this order:
 
3a) Complete check of all cables and the seating of connectors.
 
3b) Examination of the drive(s) in question for any cooling or
mounting deficiencies.  Depending on the SCSI errors in question,
I might even investigate firmware updates for the drive(s).
 
3c) Examination of the controller for correct seating and bus slot
(in older PCI mobos, this makes a difference) as well as its
firmware revision level.
 

3d) Any system experiencieng scsi parity errors should have all components
power cycled (for self healing termpwr- fuses) and any pluggable
termpwr fuses checked (these are exceedingly rare now- but if you
had a SparcStation, they'd be the first thing to check- they're next
to the ethernet connector on the motherboard). If you're not using
an active terminator, you should be. Check for multiple termination-
both ends of the bus must have termination enabled, nothing else-
check drive and hba. If necessary, derate off of Ultra to Fast to
see if this was the source of problems.

[ a parity error indicates trashed signals. a parity error in data phase
indicates signal reflection, skew, or rise time problems. signal quality
is greatly affected by: bus length, termination, cable impedance mismatches ]



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Ronald F. Guilmette


In message [EMAIL PROTECTED],
Bill Fumerola [EMAIL PROTECTED] wrote:

On Sun, 5 Dec 1999, Ronald F. Guilmette wrote:

 The controller is an AHA-2940U (not wide).  The da0 disk is a Quantum
 Viking 4.5GB SCSI.  I have never had any problem with this drive before,
 even though I used it on Linux for several months.
 
 This (FreeBSD) system has been running just fine, with no problems, for
 several weeks.  And now this!

Before throwing the "this worked in Linux!" crap around, please consider
that it is possible Linux just didn't report the errors.

just a possibility...

Ummm Hello!

Is it just vaguely possible that you are perhaps just a little bit touchy
about anything that might even perversely be (mis-)construed as a compari-
son between FreeBSD and Linux?

Please read what I wrote.  No comparison of any kind between these two OSes
was either expressed or implied.

In order to help clarify the problem, I merely noted that this specific
*DISK DRIVE* has been operating with no problems (under *both* FreeBSD and
Linux) for some time now.

If anything, I believe that this combined evidence strongly points to a
newly-developed *HARDWARE* problem in the *DISK DRIVE*.

To reiterate, no OS comparisons were either expressed or implied.

Furthermore, having just witnessed (here) someone else being roasted over
an open flame for having FAILED to provide all relevant details regarding
the background of some problem, I find it rather inexplicable that _I_
should now be roasted for having done the exact opposite, i.e. having
provided as much potentially useful background information about my
specific problem as possible.

P.S.  I'm a complete agnostic with regards to OSes.  I have neither any
specific religious beliefs with regards to OSes, nor any desire whatsoever
to engage in religious flame wars about them.  I have better things to do.

P.P.S.  Since joining the -hackers list only a short time ago, I've made
every effort to restrain myself from my natural tendency to either begin,
or to participate in flame wars.  I've done that despite the fact that at
about half of the traffic here on -hackers since I joined seem to consist
of flames (of one form or another) that I have been tempted to jump into
the middle of, _and_ despite the fact that I myself have a well and widely
known propensity to start or participate in flaming myself.

I came here only to learn and to benefit from the combined wisdom here...
not to read flames or to be flamed.

A simple plea:  Can we all just get along?



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tmpfs .. ?

1999-12-05 Thread David Scheidt

On Sun, 5 Dec 1999, Ronald F. Guilmette wrote:

 
 In message [EMAIL PROTECTED], you 
 P.S.  The other reference you gave:
 
 http://www.ece.cmu.edu/~ganger/CSE-TR-254-95/
 
 seem to no longer be useful/functional.

That is because it should be ~ganger/CSE-TR-254-95/
 
 




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Ronald F. Guilmette


In message [EMAIL PROTECTED], 
"Jordan K. Hubbard" [EMAIL PROTECTED] wrote:

 "... even though I used it on Linux for several months."
 
 I read that as meaning "the drive worked despite the fact that it was on
 Linux".

Well, just to inject a note of reality into this discussion:

1. It's quite possible that the drive and/or the cabling in this
   system has been defective all along.

I suspect not, based upon the history.

I think that the drive and/or controler has just developed this sickness
within the past 24 hours.

2. It's equally possible that the linux driver simply doesn't report
   the errors but, as FreeBSD does, retries the failing operations.
   This would result in a system which appeared to work just fine,
   just more slowly at times (which would probably not even be
   noticed).

FreeBSD was also perfectly happy with this drive (and controller) for
weeks... up until last night.

3. Any system I saw spitting out errors like this would get the following
   treatment, in roughly this order:

(I now think that my first order of business should be to start making
backup tapes as quick as I can. :-)

   3a) Complete check of all cables and the seating of connectors.

   3b) Examination of the drive(s) in question for any cooling or
^^^

The drive is mounted in a crappy external box with perfectly lousy
ventilation.

I just touched the drive and guess what... It's hot as Hades.

I think I found my answer.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



No Subject

1999-12-05 Thread kvandel

Question,

I am a graduate student at Duke University.  Currently, I am part of a team to
build a terabit router using a cluster connected with Myrinet.  One aspect of
the project is to tune the devices  drivers to perform cooperatively... In a
routing situation, the 1500B dma takes roughly 11us over PCI 32/33Mhz.  If the
processor (driver) is checking the command accept status of a NIC, it can
take a "long" time to get a response from the NIC.  For gigabit routing, you
have to roughly processes 1pkt/ 8-10us .  For starters, I  changed up the
driver code in fxp_start to break up a large dma transactions into smaller
chunks,.. to make bus arbitration work using a finer grain time slice. Hence,
the processor stalls less when it checks if a NIC command was accepted.  

The question: Why doesn't this work... it seem so straight forward...
using netperf, the driver works when the message size is less than
FXP_MAX_SEGMENT_SIZE, .. I am using FXP_MAX_SEGMENT_SIZE  of 1024

--
fxp_start()
/*
 * Go through each of the mbufs in the chain and initialize
 * the transmit buffer descriptors with the physical address
 * and size of the mbuf.
 */
tbdinit:

for (m = mb_head, segment = 0; m != NULL; m = m-m_next) {
  if (m-m_len != 0) {
unsigned int  sub_segments,
  counter;
uint8_t  *mbuf_data_addr = mtod(m,uint8_t *);

sub_segments = (m-m_len / FXP_MAX_SEGMENT_SIZE)
  + (((m-m_len % FXP_MAX_SEGMENT_SIZE) != 0)?1:0);

if (segment + sub_segments = FXP_NTXSEG)
  break;

for(counter = 0;counter  sub_segments;counter++)
  {
txp-tbd[segment].tb_addr =
  vtophys(mbuf_data_addr + (counter * FXP_MAX_SEGMENT_SIZE));

  txp-tbd[segment].tb_size
= (sub_segments  == (counter+1))?(m-m_len % 
FXP_MAX_SEGMENT_SIZE):FXP_MAX_SEGMENT_SIZE;

  /*
 vtophys(mtod(m, vm_offset_t))
 + (counter * FXP_MAX_SEGMENT_SIZE);
  */
  segment++;
  }
  }
}
if (m != NULL) {
 
  .

-

Unfortunately, I don't have the intel docs on the card, which requires a NDA...
If you can help, it would be much appreciated.

thanks,
kurt
-- 

Some output when it's running

/*if(mb_head-m_pkthdr.len  FXP_MAX_SEGMENT_SIZE)
printf("Pha %u, Kva %u, counter %u,segment %u, length %u, subs %u, tbs %u, mss %u\n",
txp-tbd[segment].tb_addr,
mbuf_data_addr + (counter * FXP_MAX_SEGMENT_SIZE),
counter, segment, m-m_len,
sub_segments, txp-tbd[segment].tb_size,
FXP_MAX_SEGMENT_SIZE);
*/
Pha 39110690, Kva 3229624354, counter 0,segment 0, length 34, subs 1, tbs 34, mss 1024
Pha 129788744, Kva 3229076296, counter 0,segment 1, length 1208, subs 2, tbs 1024, mss 
1024
Pha 129789768, Kva 3229077320, counter 1,segment 2, length 1208, subs 2, tbs 184, mss 
1024
Pha 131485696, Kva 3229200384, counter 0,segment 3, length 272, subs 1, tbs 272, mss 
1024
Pha 39637282, Kva 3229626658, counter 0,segment 0, length 34, subs 1, tbs 34, mss 1024




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: NFS server bound to specific local address

1999-12-05 Thread David Malone

On Mon, Dec 06, 1999 at 09:15:55AM +1300, Joe Abley wrote:

 I've just noticed that (on STABLE, at least) it doesn't seem possible
 to run an NFS server on a machine, and have it service requests from
 clients talking to anything other than the base address.

We've some patches which Matt Dillon just applied to -current which
allow this to work correctly. The patches are quite simple and were
developed here for a 3.3-STABLE machine, so it should be easy to
backport them. It is probably too late to get them into 3.4 at this
stage.

(The pr was kern/13049 but something slightly different got committed
in the end).

David.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tmpfs .. ?

1999-12-05 Thread Peter Jeremy

On Sat, 04 Dec 1999 15:44:49 -0800, "Ronald F. Guilmette" [EMAIL PROTECTED] wrote:
Specifically, I'm planning a large mail server... which will use Sendmail...
and I'd really like to allocate the Sendmail queue files... which typically
have a rather short lifespan... on/in some sort of filesystem (e.g. an
mfs or else this VN thing you are talking about) that would tend to give
petter performance than just using an ordinary disk-based filesystem.

This doesn't sound like a good application for a temporary filesystem.
Whilst the files do typically have a short lifetime, and there are lots
of them, they represent mail items which your server has accepted
responsibility for delivering.  Also, the queue files can potentially
exist for several days (the default timeout is 5 days).

I would suggest that UFS with softupdates represents a better performance/
reliability tradeoff than MFS or a swap-backed vnode.

The main problem is that sendmail places all queue files (and there
are several for each undelivered message) in one directory - and very
large directories are not handled particularly efficently by UFS.  The
simple solutions are:
1) switch to an alternative MTA that doesn't display this behaviour.
2) hack sendmail to have multiple subdirectories within the main
   queue directory - with the subdirectory chosen by hashing the
   sendmail job id.

Peter


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Wilko Bulte

As Kelly Yancey wrote ...
  
 3b) Examination of the drive(s) in question for any cooling or
 mounting deficiencies.  Depending on the SCSI errors in question,
 I might even investigate firmware updates for the drive(s).
  
 
   I actually used to get these *exact* errors a couple of years ago on
 various 2.x systems. At first, I had assumed a bug in the driver (the ahc
 driver was noted as still having some bugs at the time, if I recall
 correctly). The errors would rare (every month or so, but they would come 
 in batches). I kept upgrading, from 2.1.5, through 2.2.5 hoping that the
 errors would go away. Now, my ignorance being point out, it turned out
 that the errors were actually heat-induced.

Another interesting cause for problems is duff powersupplies. As the
proverb goes "every machine is as good as it's PSU". E.g. I just struggeled
with a DLT tape unit that inexplicable reset itself. After examining the
5Volts rail with a scope I found glitches on it whenever the drive did a 
bit of rewinding (dropping out of streaming mode). Had me stumped for a
while.

W/
-- 
|   / o / /  _  Arnhem, The Netherlands   - The FreeBSD Project 
|/|/ / / /( (_) Bulte   WWW : http://www.tcja.nl  http://www.freebsd.org


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Matthew Jacob


 Another interesting cause for problems is duff powersupplies. As the
 proverb goes "every machine is as good as it's PSU". E.g. I just struggeled
 with a DLT tape unit that inexplicable reset itself. After examining the
 5Volts rail with a scope I found glitches on it whenever the drive did a 
 bit of rewinding (dropping out of streaming mode). Had me stumped for a
 while.
 

That's pretty rare these days. It used to happen all the time when
switching power supplies first appeared (motorboating is what we called
it), but even recently I had a marginal supply that supplied 4.4VDC-
*just* enough to function *most* of the time.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Strange SCSI sickness

1999-12-05 Thread Ronald F. Guilmette


In message [EMAIL PROTECTED], 
Kelly Yancey [EMAIL PROTECTED] wrote:

 
3b) Examination of the drive(s) in question for any cooling or
mounting deficiencies.  Depending on the SCSI errors in question,
I might even investigate firmware updates for the drive(s).
 

  I actually used to get these *exact* errors a couple of years ago on
various 2.x systems. At first, I had assumed a bug in the driver (the ahc
driver was noted as still having some bugs at the time, if I recall
correctly). The errors would rare (every month or so, but they would come 
in batches). I kept upgrading, from 2.1.5, through 2.2.5 hoping that the
errors would go away. Now, my ignorance being point out, it turned out
that the errors were actually heat-induced.
  I had 2 5-year old 7200RPM drives in each of the systems, that besides
being noisy, got pretty hot. Of course, they weren't hot when I mounted
them :), and I had mounted them right next to each other in the case.
It helped a little when I spaced the drives apart from each other. Then
I found these neat full-length expansion cards which have 2 fans mounted
on them. Got that situated to circulate additional air across the drives
and never had any problem since (those systems have been running for over
a year since without incident).

Yowza.

I found two web sites recently where a nice veriety of different types of
useful cooling devices (mostly for PeeCee type systems) are available:

http://www.3dcool.com/

and:

http://www.icedmocha.com/

I bought two ``slot fans'' from www.icedmocha.com recently, and I think I'm
sure now where one of those two fans is going. :-)



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: natd is jumpy

1999-12-05 Thread Brian Dean

Hi,

 and disable natd and the firewall code, these delays go away so I am
 assuming that it is natd/firewall/divert that is responsible for this
 delay.
 
 I think that is a bad assumption.

[snip]

 I'm running FreeBSD 3.3 with IPFIREWALL, IPDIVERT, and natd also over a
 56k modem, and I _never_ have seen the kind of slow echo effect you
 are speaking of, except on very rare occasions when _somebody_ between
 me and whichever machine I'm talking to happens to be dropping a lot of
 packets.  And obviously, in those cases, it ain't the fault of my FreeBSD
 box.
 
 Is there a parameter or anything that I can tune to eliminate or
 reduce this affect?
 
 But seriously, next time it happens, try doing some pings to the remote
 system that you are telnetting to.  Look for dropped packets.  Doing a
 couple of traceroutes to the remote system from your location might pro-
 vide some useful info also.

OK, here's a little snippet from 'ping':

[bsd@vger]:/conf- ping dean
PING dean (10.26.2.60): 56 data bytes
64 bytes from 10.26.2.60: icmp_seq=0 ttl=252 time=3146.649 ms
64 bytes from 10.26.2.60: icmp_seq=1 ttl=252 time=2172.951 ms
64 bytes from 10.26.2.60: icmp_seq=2 ttl=252 time=1184.808 ms
64 bytes from 10.26.2.60: icmp_seq=3 ttl=252 time=198.578 ms
64 bytes from 10.26.2.60: icmp_seq=4 ttl=252 time=1725.051 ms
64 bytes from 10.26.2.60: icmp_seq=5 ttl=252 time=737.457 ms
64 bytes from 10.26.2.60: icmp_seq=6 ttl=252 time=128.368 ms
64 bytes from 10.26.2.60: icmp_seq=7 ttl=252 time=127.593 ms
64 bytes from 10.26.2.60: icmp_seq=8 ttl=252 time=160.611 ms
64 bytes from 10.26.2.60: icmp_seq=9 ttl=252 time=148.561 ms
64 bytes from 10.26.2.60: icmp_seq=10 ttl=252 time=138.905 ms
64 bytes from 10.26.2.60: icmp_seq=11 ttl=252 time=194.196 ms
64 bytes from 10.26.2.60: icmp_seq=12 ttl=252 time=226.685 ms
64 bytes from 10.26.2.60: icmp_seq=13 ttl=252 time=1194.855 ms
64 bytes from 10.26.2.60: icmp_seq=14 ttl=252 time=127.343 ms
64 bytes from 10.26.2.60: icmp_seq=15 ttl=252 time=138.772 ms

No dropped packets, but definitely some occasional long delays before
I get the echo.  However, I must concede, based on other respondants,
that something else must be going on and I cannot necessarily
attribute this to divert/firewall/natd.

However, the above numbers don't really illustrate the long response
times that I experience while typing at the shell prompt, or in elm.
It's really frustrating.

I have an external US Robotics Sportster modem and I can see the rx/tx
leds which are both off during the times when there was a delay, so I
can confirm that there was no other line-contention on my end.

Currently, I am connected from my home into work via a ppp link.  I
notice the delays primarily when connected into work.  Here's a
traceroute from my home machine to my work machine:

[bsd@vger]:/bsd- traceroute dean
traceroute to dean (10.26.2.60), 30 hops max, 40 byte packets
 1  R09d016Rb410nc0.net.sas.com (172.16.0.1)  120.659 ms  139.603 ms  121.679 ms
 2  R01r025Rb319nc0.net.sas.com (172.25.1.2)  116.139 ms  113.945 ms  119.767 ms
 3  R42axxxRb319nc0.net.sas.com (10.19.0.3)  118.763 ms  125.350 ms  184.147 ms
 4  dean (10.26.2.60)  132.987 ms  119.363 ms  120.193 ms

Using netstat, I see 6 input errors on my ppp0 interface.  I can't
account for the cause of these, maybe they are a clue:

Name  Mtu   Network   AddressIpkts IerrsOpkts Oerrs  Coll
ppp0  1500  Link   68826 673148 0 0
ppp0  1500  172.16brdean 68826 673148 0 0

Thanks for the suggestions.  I'll keep looking.

-Brian
-- 
Brian Dean  [EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Portable way to compare struct stat's?

1999-12-05 Thread Garance A Drosihn

At 3:17 PM -0500 12/4/99, Robert Watson wrote:
On 4 Dec 1999, Assar Westerlund wrote:

  Garance A Drosihn [EMAIL PROTECTED] writes:
   In the case of AFS, I think you'd want to expand the size of st_dev.
   All files in an AFS volume are "one device", I would think.  If the
   "device" is gone (ie, the volume is not mounted), then all files in
   that "device" (volume) will not be available.
 
  I'm confused.  Did you mean `st_ino' there?  I agree that you want to
  see the whole AFS space as a single device.

I agree.

Well, I'm happy to have it that way if everyone prefers that, but I
really did mean to suggest that each AFS volume would be a separate
device.  Not "all of AFS" as one device, or even "all of one AFS cell"
as one device.  Do we have one device for "all NFS filesystems from all
hosts"?(my assumption is "no", but maybe I'm wrong (*)).

In local filesystems, a device is a partition on one hard disk.  That
one partition could be unavailable (ie, "not mounted"), in which case
all files in that partition are not available.  In AFS, the "mountable
quantity" is a volume.  You can mount the same volume in multiple
places in AFS-land, in fact.  If there's an AFS problem, you can be
in a situation where "most" of an AFS cell is up, but particular
volumes are not available because they are being salvaged.  To me,
all of this seems to indicate that AFS volumes are pretty analogous
to what are used for devices on a local file system.

But really, any way we could arrange it would be fine with me...

(*) - I'm told that SGI's claim that all mounts (except lofs) will
   have a unique st_dev, including NFS mounts.  On the other hand,
   I'm also told that linux seems to use the same st_dev value for
   all NFS mounts from a given host.  In my mind, the linux behavior
   would suggest one st_dev value per AFS cell...


---
Garance Alistair Drosehn   =   [EMAIL PROTECTED]
Senior Systems Programmer  or  [EMAIL PROTECTED]
Rensselaer Polytechnic Institute


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



new Intel 100Mbps card

1999-12-05 Thread Mohit Aron

Hi,
I got some new Intel 10/100Mbps network interfaces recently, but
unfortunately found that FreeBSD (version 4.0-19990827-CURRENT) doesn't
recognize them. These are called the "Intel InBusiness 10/100 PCI Network
Adaptor". Unfortunately, these are the only ones supported in the stores now,
so I can't find the older 10/100+ and 10/100B kind.

After looking at the boot messages, I found that these cards have a device_id
of 0x1030 - which is different than the one supported by the fxp driver in
FreeBSD (0x1229 - defined in /sys/pci/if_fxpreg.h as FXP_DEVICEID_i82557). 
I changed the driver (fxp_probe() function in /sys/pci/if_fxp.c) to also
recognize the device_id 0x1030. The cards now work, but I haven't stress tested
them for performance.

Can someone tell me if the fxp driver is compatible with these cards (at least
it seems to work). If so, it'll be nice if the future releases of the driver
also support this card.


- Mohit


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Sv: Strange SCSI sickness

1999-12-05 Thread Leif Neland


 
 If it already hasn't been done, we should capture the procedure that
 Jordan posted, added to by Matt and maybe post it to the troubleshooting
 part of the guide(s).
 
 
 Unlike some of us who've been fooling with computers since pre-1985, this
 standard operating procedure may not be second nature.
 

Perhaps the order of checking could be weighted(sp?) against the price of equipment, 
eg feeling the temperature of the drive before replacing a $0.50 termpwr fuse before 
replacing $xx cable or a $xxx diskdrive...

Leif




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: natd is jumpy

1999-12-05 Thread Archie Cobbs

Brian Dean writes:
 No dropped packets, but definitely some occasional long delays before
 I get the echo.  However, I must concede, based on other respondants,
 that something else must be going on and I cannot necessarily
 attribute this to divert/firewall/natd.
 
 However, the above numbers don't really illustrate the long response
 times that I experience while typing at the shell prompt, or in elm.
 It's really frustrating.
 
 I have an external US Robotics Sportster modem and I can see the rx/tx
 leds which are both off during the times when there was a delay, so I
 can confirm that there was no other line-contention on my end.

Could be you have a noisy line and your modem error correction is
kicking in.  Try configuring your modem to disable error correction
and see if it changes things.

This is consistent with your rx/tx lights -- typically they only light
up when there's traffic on the serial line (not the telephone line).

-Archie

___
Archie Cobbs   *   Whistle Communications, Inc.  *   http://www.whistle.com


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



vfs_bio questions/nfs cluster commit

1999-12-05 Thread Alfred Perlstein


I've been trying to workout mega-clusters for NFS, since afaik the
vfs_cluster code will only do 64k chunks and we can benifit greatly
by compacting ranges for commit RPCs.

The problem, is that it seems that NFS has been having issues, doing
large appends on my box (lptest 80 10  /nfsmount/foo) seems
to just get stuck even without my new code.  Is anyone else having
this problem on a recent -current?

It seems that taking out the sync rpc commit in nfs_writebp may
have been a mistake, it appears that it allows a buffer that _must_
be free'd to be delayed for commit, i'm not sure if the code makes
sure that the buffer is written sync if we need it to be?

I'm not sure it's ok to do this becasue afaik a written but uncommitted
bp is marked as delay-write? (B_DELWRI)  We don't really get our
buffers back until a buffer is committed.

Anyhow back to the commit clustering..
Does anyone want to take a look at this?

When a buffer is scheduled to be committed from nfs_doio() the
nfs_cluster_commit() function trys to find adjacent buffers and
include them in one giant mega-commit, then it frees the buffers.

Last thing, the paranioa check in nfs_subr.c looks bogus because
we are at splbio(), or is it essential that this check be done?

XXX: this code _almost_ works :)

Index: nfs_bio.c
===
RCS file: /home/ncvs/src/sys/nfs/nfs_bio.c,v
retrieving revision 1.80
diff -u -u -r1.80 nfs_bio.c
--- nfs_bio.c   1999/10/29 18:09:11 1.80
+++ nfs_bio.c   1999/12/06 05:01:33
@@ -62,6 +62,8 @@
 #include nfs/nqnfs.h
 #include nfs/nfsnode.h
 
+static int nfs_cluster_commit __P((struct vnode *vp, struct buf *bp, 
+   struct proc *p));
 static struct buf *nfs_getcacheblk __P((struct vnode *vp, daddr_t bn, int size,
struct proc *p));
 
@@ -1006,6 +1008,10 @@
nmp = VFSTONFS(mp);
 
if (nmp-nm_flag  NFSMNT_INT) {
+   /* 
+* don't spin on signals not applicable to interupting an
+* NFS operation, try short term non-interuptable requests
+*/
bp = getblk(vp, bn, size, PCATCH, 0);
while (bp == (struct buf *)0) {
if (nfs_sigintr(nmp, (struct nfsreq *)0, p))
@@ -1347,27 +1353,9 @@
/* 
 * If we only need to commit, try to commit
 */
-   if (bp-b_flags  B_NEEDCOMMIT) {
-   int retv;
-   off_t off;
-
-   off = ((u_quad_t)bp-b_blkno) * DEV_BSIZE + bp-b_dirtyoff;
-   bp-b_flags |= B_WRITEINPROG;
-   retv = nfs_commit(
-   bp-b_vp, off, bp-b_dirtyend-bp-b_dirtyoff,
-   bp-b_wcred, p);
-   bp-b_flags = ~B_WRITEINPROG;
-   if (retv == 0) {
-   bp-b_dirtyoff = bp-b_dirtyend = 0;
-   bp-b_flags = ~B_NEEDCOMMIT;
-   bp-b_resid = 0;
-   biodone(bp);
+   if (bp-b_flags  B_NEEDCOMMIT  
+   nfs_cluster_commit(vp, bp, p) == 0)
return (0);
-   }
-   if (retv == NFSERR_STALEWRITEVERF) {
-   nfs_clearcommit(bp-b_vp-v_mount);
-   }
-   }
 
/*
 * Setup for actual write
@@ -1460,4 +1448,172 @@
nfs_clearcommit(vp-v_mount);
biodone(bp);
return (error);
+}
+
+/*
+ * nfs_cluster_commit(vp, bp, p)
+ *
+ * This function is called on a NFS buffer that needs a commit RPC
+ * Even though the buffer may already be clustered, clustering is limited
+ * to 64k chunks, try to grab an even bigger range by scanning forward and
+ * backward in the file.
+ */
+static int
+nfs_cluster_commit(vp, bp, p)
+   struct vnode*vp;
+   struct buf  *bp;
+   struct proc *p;
+{
+   struct buf *cbufs[16], *holdbp;
+   int commit_idx, retv, flags, pass, i, dirty_off, dirty_end, s, gap;
+   int pre_count=0, post_count=0;
+   u_quad_tsblkno, eblkno, lblkno;
+   /* start, end, logical block number */
+
+   KASSERT(bp-b_flags  B_NEEDCOMMIT, ("NFS commit without B_NEEDCOMMIT"));
+
+   flags = B_DELWRI | B_NEEDCOMMIT;
+   gap = 0;
+   commit_idx = 0;
+   pass = 0;
+   sblkno = eblkno = (u_quad_t)bp-b_blkno;
+   dirty_end = bp-b_dirtyend;
+   dirty_off = bp-b_dirtyoff;
+   
+   s = splbio();
+   /*
+* first pass scan forward, second backwards from bp
+*/
+pass:
+   lblkno = bp-b_blkno;
+   holdbp = bp;
+
+   /* 
+* don't scan too much and don't overflow buf pointer array 
+*/
+   while (gap  4  commit_idx  (sizeof(cbufs)/sizeof(cbufs[0]))) {
+
+   /* scan forward or backward */
+   

Re: vfs_bio questions/nfs cluster commit

1999-12-05 Thread Alfred Perlstein


oh, one more thing... (replying to myself)

On Sun, 5 Dec 1999, Alfred Perlstein wrote:

 
 I've been trying to workout mega-clusters for NFS, since afaik the
 vfs_cluster code will only do 64k chunks and we can benifit greatly
 by compacting ranges for commit RPCs.

My code seems to have the strange side-effect that it also fixes normal
commit clustering for NFS which afaik is broken.

can anyone confirm this?

-Alfred



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Wes Peters

Matthew Dillon wrote:
 :
 :All running software has serious problems, that's why it is never considered
 :done.  Taking the time to enumerate specific problems that are currently
 :plaguing an installation is the only way anyone can possibly hope to help.
 :Problems reports of "It don't work" are helpful to absolutely noone.
 
 This simply isn't true.  I have written plenty of software (large
 projects) that do not have serious problems and, in fact, some do not
 have any known problems at all.  I have written several operating systems
 and one of them is least as complex as the FreeBSD core (but not as
 complex if you count drivers) which are bug-free (that is, there have
 been no recorded crashes and except for feature updates have never been
 rebooted).

So you haven't discovered the rest of the bugs in the system.  Software
is created by humans, and humans are fallible, therefore the software
is also fallible.  Any claims of divinity on your part will be summarily
rejected.

-- 
"Where am I, and what am I doing in this handbasket?"

Wes Peters Softweyr LLC
[EMAIL PROTECTED]   http://softweyr.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



3c589d w/ freebsd 3.3 works badly.

1999-12-05 Thread Darren Reed


How reliable should the ep0 driver be with 3c389d pcmcia cards ?  It gets
detected by pccardd without any problems and a driver is attached to it,
but I'm not getting much in the way of performance from it with "link2"
selected for UTP (doesn't work with "media 10baset/utp").  It's being
used in conjunction with cardbus on a gateway solo 9100.  I suspect that
it isn't getting interrupted properly, although nothing is telling me
what IRQ is being given to it.

Darren


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



ejecting card with 3.3 causes hang ?

1999-12-05 Thread Darren Reed


ejecting a modem pcmcia card caused 3.3 to do the following:

/kernel: sio2 unload,gone
/kernel: Return IRQ=11
/kernel: Card removed, slot 1
/kernel: Card inserted, slot 0

and then it was frozen.

Will there be a 3.4 with things like this fixed ?

Darren


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Basic question about threads and SMP

1999-12-05 Thread Russell L. Carter

%Nick Hibma wrote:
% 
% Being multi-threaded has almost nothing to do with being
% multi-processor. Multi-threading means that your application has
% multiple threads of execution that are able to run simultaneously.
% 
% The multi-processing capability of your box means that 2 threads of
% execution, be it a process or a thread within a process, are executed
% _literally_ at the same time, and not in simulated concurrency like it
% happens on a UP box.
%
%Note that this happens ONLY if both threads of execution are processor
%mobile.  If your system supports user-space threads as part of a 
%process and the process can't be split across CPUs, you might as well
%have a UP system.  (Except everything else can run on the other
%processor, so SMP is still a small win.)
%
%This is the situation with threads and SMP in -current.
%

The LinuxThreads port is currently busted for SMP but when it
is fixed it will indeed use multiple processors:


last pid:   395;  load averages:  0.50,  0.11,  0.04 up 
0+00:13:00  20:00:40
37 processes:  6 running, 31 sleeping
CPU states: 65.8% user,  0.0% nice,  0.0% system,  0.0% interrupt, 34.2% idle
Mem: 8780K Active, 9116K Inact, 19M Wired, 68K Cache, 7000K Buf, 466M Free
Swap: 1024M Total, 1024M Free

  PID USERNAME PRI NICE  SIZERES STATE  C   TIME   WCPUCPU COMMAND
  393 rcarter   31   0   876K   152K CPU1   1   0:01 17.16%  2.39% ex3
  394 rcarter   29   0   876K   152K RUN0   0:00 15.76%  2.20% ex3
  391 rcarter   30   0   876K   152K RUN1   0:01 14.71%  2.05% ex3
  395 rcarter   30   0   876K   152K RUN0   0:01 14.01%  1.95% ex3
  392 rcarter   30   0   876K   152K RUN0   0:00 13.66%  1.90% ex3


Russell

%-- 
%"Where am I, and what am I doing in this handbasket?"
%
%Wes Peters Softweyr LLC
[EMAIL PROTECTED]   http://softweyr.com/
%
%
%To Unsubscribe: send mail to [EMAIL PROTECTED]
%with "unsubscribe freebsd-hackers" in the body of the message
%




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PCI DMA lockups in 3.2 (3.3 maybe?)

1999-12-05 Thread Ed Hall

Mike,

So I'm to blame that my project schedule didn't happen to coincide
with the FreeBSD release schedule?  Give me a break.  The project hasn't
even gone into production yet.  And I think you'll find that your apparent
assumption that no one was told about the problems is equally rash.  I
posted a note here, and spent a considerable amount of time working with
one of the core members in outlining the problems and finding workarounds.
Yahoo devoted six machines to a series of experiments to characterize the
problems and seek solutions even though using 2.2.8 was always a ready
option.

I think you'll find that people's willingness to contribute to your
"volunteer-developed project" depends upon a little forbearance and
understanding on your part.  Communication is neither going to be as
timely nor as well-formed as you might like.  Scan the archives and you'll
find ample evidence for phenomena like both issues I described, but never
in a form that says, "here's your bug--now fix it."  If you take a
defensive attitude, you'll never see such things.

Believe it or not, I'm on your side.

-Ed




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: 3c589d w/ freebsd 3.3 works badly.

1999-12-05 Thread Matthew N. Dodd

On Mon, 6 Dec 1999, Darren Reed wrote:
 How reliable should the ep0 driver be with 3c389d pcmcia cards ?  It gets
 detected by pccardd without any problems and a driver is attached to it,
 but I'm not getting much in the way of performance from it with "link2"
 selected for UTP (doesn't work with "media 10baset/utp").  It's being
 used in conjunction with cardbus on a gateway solo 9100.  I suspect that
 it isn't getting interrupted properly, although nothing is telling me
 what IRQ is being given to it.

I'm still trying to track down a watchdog timeout problem with if_ep.

-- 
| Matthew N. Dodd  | '78 Datsun 280Z | '75 Volvo 164E | FreeBSD/NetBSD  |
| [EMAIL PROTECTED] |   2 x '84 Volvo 245DL| ix86,sparc,pmax |
| http://www.jurai.net/~winter | This Space For Rent  | ISO8802.5 4ever |



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tmpfs .. ?

1999-12-05 Thread Ronald G. Minnich

Sorry I missed this question. Check www.acl.lanl.gov/~rminnich for v9fs
and see if you can use it.

ron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Sv: Strange SCSI sickness

1999-12-05 Thread Matthew Jacob



On Mon, 6 Dec 1999, Leif Neland wrote:

 
  
  If it already hasn't been done, we should capture the procedure that
  Jordan posted, added to by Matt and maybe post it to the troubleshooting
  part of the guide(s).
  
  
  Unlike some of us who've been fooling with computers since pre-1985, this
  standard operating procedure may not be second nature.
  
 
 Perhaps the order of checking could be weighted(sp?) against the price
 of equipment, eg feeling the temperature of the drive before replacing
 a $0.50 termpwr fuse before replacing $xx cable or a $xxx diskdrive...

How about using a VOM to check the fuse?

 
 Leif
 
 
 
 
 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with "unsubscribe freebsd-hackers" in the body of the message
 



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



No Subject

1999-12-05 Thread Mike Smith

 Question,
 
 I am a graduate student at Duke University.  Currently, I am part of a team to
 build a terabit router using a cluster connected with Myrinet.  One aspect of
 the project is to tune the devices  drivers to perform cooperatively... In a
 routing situation, the 1500B dma takes roughly 11us over PCI 32/33Mhz.  If the
 processor (driver) is checking the command accept status of a NIC, it can
 take a "long" time to get a response from the NIC.  For gigabit routing, you
 have to roughly processes 1pkt/ 8-10us .  For starters, I  changed up the
 driver code in fxp_start to break up a large dma transactions into smaller
 chunks,.. to make bus arbitration work using a finer grain time slice. Hence,
 the processor stalls less when it checks if a NIC command was accepted.  
 
 The question: Why doesn't this work... it seem so straight forward...

I'm not sure about the code in question, but the basic assumptions you're 
making about PCI's behaviour are flawed.  To achieve the goal you're 
trying to, you need to reduce the value of the PCI bus latency timer for 
the peripheral(s) that you're hoping to interrupt.

Breaking up the DMA transactions leaves you vulnerable to the PCI 
peripheral noticing that the two segments are contiguous and coalescing 
them again into a single master write.  Also, you don't want the (high) 
overhead of forcing a re-arbitration all the time, rather you want to 
guarantee the worst-case cycle time involved in polling the peripheral.  
Again, to achieve this, you want to look at how the PCI bus latency timer 
works and use it instead.

You will always get the best performance out of PCI by avoiding 
_anything_ that involves arbitrating for the bus.  PCI bus transactions 
are reasonably expensive to start.  8(




-- 
\\ Give a man a fish, and you feed him for a day. \\  Mike Smith
\\ Tell him he should learn how to fish himself,  \\  [EMAIL PROTECTED]
\\ and he'll hate you for a lifetime. \\  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread Mike Smith

   I got some new Intel 10/100Mbps network interfaces recently, but
 unfortunately found that FreeBSD (version 4.0-19990827-CURRENT) doesn't
 recognize them. These are called the "Intel InBusiness 10/100 PCI Network
 Adaptor". Unfortunately, these are the only ones supported in the stores now,
 so I can't find the older 10/100+ and 10/100B kind.

 After looking at the boot messages, I found that these cards have a device_id
 of 0x1030 - which is different than the one supported by the fxp driver in
 FreeBSD (0x1229 - defined in /sys/pci/if_fxpreg.h as FXP_DEVICEID_i82557). 
 I changed the driver (fxp_probe() function in /sys/pci/if_fxp.c) to also
 recognize the device_id 0x1030. The cards now work, but I haven't stress tested
 them for performance.

Bah.  It sounds like an Intel ploy so that they can trivially identify 
these cards and put the "right" name up in the Windows network setup box.
This isn't quite what the idea was with PCI IDs originally. 8(

 Can someone tell me if the fxp driver is compatible with these cards (at least
 it seems to work). If so, it'll be nice if the future releases of the driver
 also support this card.

It's probably reasonable to assume that if the driver works at all, it'll 
work just fine.  You can help us out here by looking closely at the large 
funny-looking chip on the card and telling us what the part numbers on it 
are, since that's the only way for us to work out what the part actually 
is.  There's quite a good chance that it's a part we already support, and 
all that Intel have done is change the PCI device ID in the EEPROM.



-- 
\\ Give a man a fish, and you feed him for a day. \\  Mike Smith
\\ Tell him he should learn how to fish himself,  \\  [EMAIL PROTECTED]
\\ and he'll hate you for a lifetime. \\  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: tty level buffer overflows

1999-12-05 Thread Mike Smith

 
  Er, you should read the sio(4) manpage too.  tty-level buffer overflows 
  have nothing to do with interrupt latency/execution time.
 
 You mean this:
 
  sio%d: tty-level buffer overflow.  Problem in the application.  Input has
  arrived faster than the given module could process it and some has been
  lost.

Yup. Ignore the "problem in the application" part, as that predicates 
that the kernel and driver are working properly, which doesn't seem to be 
the case.  The problem here is that the buffer between the top side of 
the driver and the application isn't being drained fast enough.  It would 
be educational to know what the app is sleeping on when these messages 
are emitted; just dropping to ddb and using 'ps' would probably be 
enough.  There has to be some reason that the process is either not being 
woken when data arrives, or is being held up somewhere else for long 
enough that the clist overflows.  

Does the problem still manifest with the recent scheduler changes?  
Perhaps the comms processes are being unfairly scheduled against for some 
reason?


 Normally I might agree with this, but I use a tty line on a 150Mhz i386 to
 be a serial console for another freebsd box. This is a NS16550A with a 16
 byte fifo. This systems is effectively idle except for this task. So, I'm
 running tip and I get constant tty-level buffer overflows at 9600 baud.
 
 I also have a 8 (well, 6 now since I moved and one of the system boards
 blew a backplane interface chip) 50 Mhz processor SS1000 running Solaris
 2.6. It has 5 Zilog (2 byte fifo) 8530 chips running constant console
 sessions with regular large amounts of output (debugging and panicing
 other solaris systems for Fibre Channel work) via tip. There has never
 been a lost character that I can see except due to power outage. I am
 convinced to a moral certainty and beyond a reasonable doubt that if I had
 a single 50Mhz processor I'd have the same experience.
 
 Since the Solaris tip and the FreeBSD tip are essentially identical (both
 derive from BSD 4.X tip), I'd like to try and understand how this is an
 application problem :-).
 
 -matt
 
 
 
 



-- 
\\ Give a man a fish, and you feed him for a day. \\  Mike Smith
\\ Tell him he should learn how to fish himself,  \\  [EMAIL PROTECTED]
\\ and he'll hate you for a lifetime. \\  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread Mohit Aron


 
 It's probably an 82558 chip.  Does it support Wake-on-LAN?
 

Not sure what Wake-on-LAN means. I believe there are some cards out there
now that support some kind of network management. This is not that if that 
helps.

 
 Add the device IDs to the list in the driver and recompile.  If it works, 
 send me the diffs and I'll commit it for you.  I might even be able to beat 
 one of the cards out of Intel, I used to work for the InBusiness (formerly 
 Dayna Communications) crowd.  ;^)
 

Like I said in my last mail, I've already done that. It works. Here are the
patches for FreeBSD-4.0-19990827-CURRENT. Please note that I tested it out
on FreeBSD-2.2.6 and ported it to FreeBSD-4.0-19990827-CURRENT (I don't have
root on a FreeBSD-4.0-19990827-CURRENT machine). Also please read the results
of some tests that I've done on the card - they're discussed after the patch
below.
---  Cut Here -
diff -ur /sys/pci/if_fxp.c pci/if_fxp.c
--- /sys/pci/if_fxp.c   Tue Jul  6 14:23:25 1999
+++ pci/if_fxp.cSun Dec  5 22:33:33 1999
@@ -501,10 +501,20 @@
 static int
 fxp_probe(device_t dev)
 {
-   if ((pci_get_vendor(dev) == FXP_VENDORID_INTEL) 
-   (pci_get_device(dev) == FXP_DEVICEID_i82557)) {
-   device_set_desc(dev, "Intel EtherExpress Pro 10/100B
Ethernet");
-   return 0;
+   if (pci_get_vendor(dev) == FXP_VENDORID_INTEL) {
+   switch (pci_get_device(dev)) {
+   case FXP_DEVICEID_i82557:
+   device_set_desc(dev,
+   "Intel EtherExpress Pro 10/100B Ethernet");
+   return 0;
+
+   case FXP_DEVICEID_i82558:
+   device_set_desc(dev,
+   "Intel InBusiness 10/100 Ethernet");
+
+   return 0;
+   }
+   
}
 
return ENXIO;
diff -ur /sys/pci/if_fxpreg.h pci/if_fxpreg.h
--- /sys/pci/if_fxpreg.hThu Feb 11 17:41:21 1999
+++ pci/if_fxpreg.h Sun Dec  5 22:29:13 1999
@@ -29,6 +29,7 @@
 
 #define FXP_VENDORID_INTEL 0x8086
 #define FXP_DEVICEID_i825570x1229
+#define FXP_DEVICEID_i825580x1030
 
 #define FXP_PCI_MMBA   0x10
 #define FXP_PCI_IOBA   0x14
---  Cut Here -


I tested out the card by doing some long TCP transfers over it on a LAN.  It
seems to work fine but once in a while (1 in 1000 packets approximately), it
seems to receive truncated IP packets. I have thoroughly tested this out - the
sending host is not sending any truncated packets. The problem only lies on the
receiving host - the one that's using the new card. Also, it seems that the
packet in question is finally received correctly - however the sending host
never transmitted the packet again. It seems the receiving host (the one with
the new card) first gets a truncated packet and then gets the full packet.
I'm attaching a segment of tcpdump trace that demonstrates this problem. The
first and the last packets in this trace are the truncated and full versions
in question. Finally, I must add that I repeated the experiment with two hosts
both having the old 10/100B cards - I didn't see any truncated IP packets. 
However, each time I used the new card, I saw truncated IP packets. I've also
the other Intel InBusiness cards - they all give the same problem (this rules
out the possibility that any one card has a hardware problem).


22:19:26.072982 truncated-ip - 8 bytes missing!192.168.12.103.6500  
192.168.12.106.1030: . ack 3661249462 win 7920 nop,nop,timestamp 376766 
38388,nop,[|tcp] (DF)
22:19:26.072995 192.168.12.106.1030  192.168.12.103.6500: . 
3661250902:3661252342(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073031 192.168.12.106.1030  192.168.12.103.6500: . 
3661252342:3661253782(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073057 192.168.12.106.1030  192.168.12.103.6500: . 
3661253782:3661255222(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073082 192.168.12.106.1030  192.168.12.103.6500: . 
3661255222:3661256662(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073108 192.168.12.106.1030  192.168.12.103.6500: . 
3661256662:3661258102(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073132 192.168.12.106.1030  192.168.12.103.6500: . 
3661258102:3661259542(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073158 192.168.12.106.1030  192.168.12.103.6500: . 
3661259542:3661260982(1440) ack 1511615746 win 17280 nop,nop,timestamp 38388 
376766,nop,nop,eol,[|tcp] (DF)
22:19:26.073182 192.168.12.106.1030  192.168.12.103.6500: . 
3661260982:3661262422(1440) ack 

Re: fxp, xl driver question .. (routing)

1999-12-05 Thread kvandel

On Sun, 05 Dec 1999, you wrote:

  The question: Why doesn't this work... it seem so straight forward...
 
 I'm not sure about the code in question, but the basic assumptions you're 
 making about PCI's behaviour are flawed.  To achieve the goal you're 
 trying to, you need to reduce the value of the PCI bus latency timer for 
 the peripheral(s) that you're hoping to interrupt.
I don't want to interrupt the devices.. which would require the 
transaction to reoccur...  I do agree(from the book PCI System Architecture), 
the Master Latency Timer should be decreased, but I still need the DMA
transactions to complete sooner from the time GNT# is removed by the 
arbiter.

 Breaking up the DMA transactions leaves you vulnerable to the PCI 
 peripheral noticing that the two segments are contiguous and coalescing 
 them again into a single master write. 
I don't think the NIC will do this... However it it possible... From 3com docs,
the 3c509bs don't... But I could probably reorder the dma requests to force
seperate transactions... maybe, maybe not.

 Also, you don't want the (high) 
 overhead of forcing a re-arbitration all the time, rather you want to 
 guarantee the worst-case cycle time involved in polling the peripheral.  

 Again, to achieve this, you want to look at how the PCI bus latency timer 
 works and use it instead.
I understand how it is working, but the I still beleive smaller DMA
transactions, while somewhat inefficient, will shorten the latency to something
reasonable.

  You will always get the best performance out of PCI by avoiding  
 _anything_ that involves arbitrating for the bus.  PCI bus transactions  
 are reasonably expensive to start.  8(  
I agree.  If I knew I could avoid handshaking the device, I would skip it...
It takes 20+% of the forwarding time..

I have another question:  Is there a way to get the compiler to do a non
blocking mem read ? load to a hardwired zeroed register? 

thanks a bunch,
kurt
 
 
 
 -- 
 \\ Give a man a fish, and you feed him for a day. \\  Mike Smith
 \\ Tell him he should learn how to fish himself,  \\  [EMAIL PROTECTED]
 \\ and he'll hate you for a lifetime. \\  [EMAIL PROTECTED]
-- 

uname -a  Linux wookie.vandelden.com 2.2.13 #1 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread David Greenman

 #define FXP_VENDORID_INTEL 0x8086
 #define FXP_DEVICEID_i825570x1229
+#define FXP_DEVICEID_i825580x1030

   This wouldn't be correct. The 82558 has been used for years on Pro/100+
boards and they ID as 0x1229.

-DG

David Greenman
Co-founder/Principal Architect, The FreeBSD Project - http://www.freebsd.org
Creator of high-performance Internet servers - http://www.terasolutions.com
Pave the road of life with opportunities.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread Mohit Aron


 
  #define FXP_VENDORID_INTEL 0x8086
  #define FXP_DEVICEID_i825570x1229
 +#define FXP_DEVICEID_i825580x1030
 
This wouldn't be correct. The 82558 has been used for years on Pro/100+
 boards and they ID as 0x1229.
 


Sorry, I forgot to say about the above. Since Wes Peters suggested that it
might be a 82558, it put the above name. Please correct it to whatever the
name should be.



- Mohit


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread Mohit Aron


 
 Bah.  It sounds like an Intel ploy so that they can trivially identify 
 these cards and put the "right" name up in the Windows network setup box.
 This isn't quite what the idea was with PCI IDs originally. 8(


Probably. One of our faculty actually bought what seems like a slightly
different version of this card. That had some kind of network management on it.
The difference is that it has the same device_id as the earlier 82557 and is
recognized by FreeBSD without any changes. However, upon looking at the two
cards (the one that I got and the on that that faculty member got) they look
pretty much the same (except for some small chips missing on my card that seem
to control the network management features). I tried the other card out too -
it also seems to give the IP truncated packet errors (I just posted about that
in my last mail to freebsd-hackers list).


 
 It's probably reasonable to assume that if the driver works at all, it'll 
 work just fine.  You can help us out here by looking closely at the large 
 funny-looking chip on the card and telling us what the part numbers on it 
 are, since that's the only way for us to work out what the part actually 
 is.  There's quite a good chance that it's a part we already support, and 
 all that Intel have done is change the PCI device ID in the EEPROM.
 

This time there is no "large" chip on the card. The older cards that I have
do have a large chip with 82557 etched on them. There is a thin, square and
rather small (compared to the older cards) chip that says GD82559 on it.
The same chip seems to be also there on the card that I mentioned above (from
the faculty member). Please let me know if I can help in any other way with
the cards - there are several chips on it and I'm not sure which one you're
really looking for.



- Mohit


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread David Greenman


 
  #define FXP_VENDORID_INTEL 0x8086
  #define FXP_DEVICEID_i825570x1229
 +#define FXP_DEVICEID_i825580x1030
 
This wouldn't be correct. The 82558 has been used for years on Pro/100+
 boards and they ID as 0x1229.
 


Sorry, I forgot to say about the above. Since Wes Peters suggested that it
might be a 82558, it put the above name. Please correct it to whatever the
name should be.

   From your other email it sounds like it has an 82559. Intel has been
shipping that for more than a year as well on boards that ID as 0x1229,
so apparantly the chip being used doesn't correlate with the ID number.
In this case I'd recommend changing the above defines to "FXP_DEVICE_ID_1"
and "FXP_DEVICE_ID_2" respectively. If you are confident that your 0x1230
Pro/100 is working correctly, including stuff related to manual selection
of the speed and duplex, then I'll take care of making the changes to
the driver.

-DG

David Greenman
Co-founder/Principal Architect, The FreeBSD Project - http://www.freebsd.org
Creator of high-performance Internet servers - http://www.terasolutions.com
Pave the road of life with opportunities.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread Wes Peters

Mohit Aron wrote:
 
 
   #define FXP_VENDORID_INTEL 0x8086
   #define FXP_DEVICEID_i825570x1229
  +#define FXP_DEVICEID_i825580x1030
 
 This wouldn't be correct. The 82558 has been used for years on Pro/100+
  boards and they ID as 0x1229.
 
 
 Sorry, I forgot to say about the above. Since Wes Peters suggested that it
 might be a 82558, it put the above name. Please correct it to whatever the
 name should be.

If you can't find the id on the chip, I'll see what I can track down at 
Intel tomorrow.

-- 
"Where am I, and what am I doing in this handbasket?"

Wes Peters Softweyr LLC
[EMAIL PROTECTED]   http://softweyr.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Per CPU timekeeping for SMP

1999-12-05 Thread Arun Sharma

Here's a reimplementation of my earlier per cpu time keeping patch
on SMP.  The attached patch is against a 11/20/99 -current that I
cvsup'ed.

1. On UP, 

sys_time is a global and contains the system wide stats
cpu_time is a global and is essentially the same as sys_time.

2. On SMP

sys_time contains the system wide stats
cpu_time has been changed to a pointer in the per-cpu space.
On BSP, this pointer points to a static array cpu0_cpu_time
On APs, this space is kmem_alloc'ed

Perhaps I should wrap cpu_time in a structure (cpu_info ?), which 
could be the right place to store all per CPU info.

3. I've taken the liberty of changing CP_* to CPU_*. I hope the new names
   better convey the meaning of the variables and are acceptable.

4. I've gotten sysctls working for sys_time -

$ sysctl -A | grep kern.stats
kern.stats.systime.user: 25150
kern.stats.systime.nice: 3878
kern.stats.systime.sys: 14071
kern.stats.systime.intr: 7395
kern.stats.systime.idle: 5326029

I'm working on generating the per cpu sysctls. 

5. The machine specific code for Alpha will need some changes - which I
   can implement, but have no way of compiling or testing.

6. All the existing utilties which depended on peeking at cp_time will
   break (which is a good thing, IMO - so that I can fix them. :-) They 
   will all be converted to use sysctl, as time permits. 

Now, about the release schedule for this work - am I too late for the
12/15 feature freeze ? I'd appreciate some comments on the implementation,
so that if there are any issues, I can fix them before 12/15.

-Arun


Index: i386/i386/genassym.c
===
RCS file: /home/adsharma/cvs_root/freebsd-sys/i386/i386/genassym.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 genassym.c
--- genassym.c  1999/11/20 23:46:06 1.1.1.4
+++ genassym.c  1999/12/05 19:45:42
@@ -205,6 +205,7 @@
printf("#define\tGD_PRV_PADDR1 %#x\n", OS(globaldata, gd_prv_PADDR1));
printf("#define\tPS_IDLESTACK %#x\n", OS(privatespace, idlestack));
printf("#define\tPS_IDLESTACK_TOP %#x\n", sizeof(struct privatespace));
+   printf("#define\tGD_CPU_TIME %#x\n", OS(globaldata, gd_cpu_time));
 #endif
 
printf("#define\tKCSEL %#x\n", GSEL(GCODE_SEL, SEL_KPL));
Index: i386/i386/globals.s
===
RCS file: /home/adsharma/cvs_root/freebsd-sys/i386/i386/globals.s,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 globals.s
--- globals.s   1999/08/31 05:12:09 1.1.1.2
+++ globals.s   1999/12/05 19:46:11
@@ -79,6 +79,7 @@
.setgd_currentldt,globaldata + GD_CURRENTLDT
 #endif
 
+
 #ifndef SMP
.globl  _curproc, _curpcb, _npxproc
.globl  _common_tss, _switchtime, _switchticks
@@ -122,6 +123,9 @@
.setgd_prv_CADDR2,globaldata + GD_PRV_CADDR2
.setgd_prv_CADDR3,globaldata + GD_PRV_CADDR3
.setgd_prv_PADDR1,globaldata + GD_PRV_PADDR1
+
+   .globl  gd_cpu_time
+   .setgd_cpu_time,globaldata + GD_CPU_TIME
 #endif
 
 #if defined(SMP) || defined(APIC_IO)
Index: i386/i386/machdep.c
===
RCS file: /home/adsharma/cvs_root/freebsd-sys/i386/i386/machdep.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 machdep.c
--- machdep.c   1999/11/20 23:46:07 1.1.1.4
+++ machdep.c   1999/12/05 21:59:13
@@ -114,6 +114,7 @@
 #ifdef SMP
 #include machine/smp.h
 #include machine/globaldata.h
+#include sys/dkstat.h/* For cpu_time */
 #endif
 #ifdef PERFMON
 #include machine/perfmon.h
@@ -143,6 +144,10 @@
 
 static MALLOC_DEFINE(M_MBUF, "mbuf", "mbuf");
 
+#ifdef SMP
+static cpu0_cpu_time[NCPUSTATES];
+#endif
+
 int_udatasel, _ucodesel;
 u_int  atdevbase;
 
@@ -1964,6 +1969,11 @@
proc0.p_addr-u_pcb.pcb_mpnest = 1;
 #endif
proc0.p_addr-u_pcb.pcb_ext = 0;
+
+#ifdef SMP
+   /* Setup cpu0's cpu_time */
+   cpu_time = cpu0_cpu_time;
+#endif
 }
 
 #if defined(I586_CPU)  !defined(NO_F00F_HACK)
Index: i386/i386/mp_machdep.c
===
RCS file: /home/adsharma/cvs_root/freebsd-sys/i386/i386/mp_machdep.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 mp_machdep.c
--- mp_machdep.c1999/11/20 23:46:07 1.1.1.4
+++ mp_machdep.c1999/12/05 19:48:29
@@ -243,6 +243,11 @@
 /** XXX FIXME: what system files declare these??? */
 extern struct region_descriptor r_gdt, r_idt;
 
+extern long sys_time[NCPUSTATES];
+#ifndef SMP
+extern long cpu_time[NCPUSTATES];
+#endif
+
 intbsp_apic_ready = 0; /* flags useability of BSP apic */
 intmp_ncpus;   /* # of CPUs, including BSP */
 intmp_naps;/* # of Applications processors */
@@ -1798,6 +1803,9 @@
SMPpt[pg + 3] = 0;  /* *prv_CMAP3 */
SMPpt[pg + 4] = 0; 

Re: new Intel 100Mbps card

1999-12-05 Thread Wes Peters

David Greenman wrote:
 
 
 Sorry, I forgot to say about the above. Since Wes Peters suggested that it
 might be a 82558, it put the above name. Please correct it to whatever the
 name should be.
 
From your other email it sounds like it has an 82559. Intel has been
 shipping that for more than a year as well on boards that ID as 0x1229,
 so apparantly the chip being used doesn't correlate with the ID number.
 In this case I'd recommend changing the above defines to "FXP_DEVICE_ID_1"
 and "FXP_DEVICE_ID_2" respectively. If you are confident that your 0x1230
 Pro/100 is working correctly, including stuff related to manual selection
 of the speed and duplex, then I'll take care of making the changes to
 the driver.

This might be the new 82559ER; I'm downloading the datasheet now.  Have
a peek at:

http://developer.intel.com/design/network/datashts/index.htm

-- 
"Where am I, and what am I doing in this handbasket?"

Wes Peters Softweyr LLC
[EMAIL PROTECTED]   http://softweyr.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: new Intel 100Mbps card

1999-12-05 Thread Wes Peters

Wes Peters wrote:
 
 This might be the new 82559ER; I'm downloading the datasheet now.  Have
 a peek at:
 
 http://developer.intel.com/design/network/datashts/index.htm

Nope, that one is apparently device ID 0x1209.  Too bad they don't have
a PCI device ID cross-reference on the web site.  Bleh.

-- 
"Where am I, and what am I doing in this handbasket?"

Wes Peters Softweyr LLC
[EMAIL PROTECTED]   http://softweyr.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message