Re: hardware Dell or BSDi
http://www.psi-domain.co.uk/ alot cheaper and better. -- Jamie Heckford Chief Network Engineer Psi-Domain - Innovative Linux Solutions. Ask Us How. = email: [EMAIL PROTECTED] web:http://www.psi-domain.co.uk/ tel:+44 (0)1737 789 246 fax:+44 (0)1737 789 245 mobile: +44 (0)7779 646 529 = On Wed, 13 Dec 2000, you wrote: Hello all, We are going to buy our first 1U 19" rack server (pizzacarton size), and probably there will be more in the future, they have to run FreeBSD 4.1-stable. Normally we buy all our hardware at Dell, they also have this kind of servers, for instance the PowerApp Web 100, we have also seen this kind of servers form BSDi.com, they have FreeBSD preinstalled, and say they are completely optimized. But they are considerably more expensive. Can anyone tell me more about both these servers, how good is the BSDi machine (and the organization), does FreeBSD install on the Dell and so on? tia Jeroen Heijungs Het Muziektheater Amsterdam, The Netherlands To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-stable" in the body of the message To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: very big mail spool directory
Gustavo Vieira Goncalves Coelho Rios [EMAIL PROTECTED] writes: The functions that will hash the id, accepts an id as input and returns a string for the user dir, like: IdString returned 0 0/0/0/0/0/0/0/0 [..] That gives you 2^32 leaf directories plus approximately 2^28 intermediate directories, which is a helluva lot of inodes (4581298448 to be exact), and your files will be spread all over your disk(s), throwing performance down the drain. If you only have half a million users, pick a prime number K close to the square root of the expected number of users (724 in your case - closest primes are 719 and 727), create that many bucket directories, and place each user in bucket ID mod K. DES -- Dag-Erling Smorgrav - [EMAIL PROTECTED] To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Tun driver?
[root@elrond conf]# ifconfig tun0 1.1.1.1 up ifconfig: interface tun0 does not exist [root@elrond conf]# ls -al /dev/tun0 crw--- 1 uucp dialer52, 0 Dec 12 13:30 /dev/tun0 [root@elrond conf]# this is confusing metrying to get vtund working in ports collection. tun device is in GENERIC kernel when i checked and exist in /dev as per test above.yet it tells me it does not exist! Ideas? -- Dan +---+ | - Daniel Phoenix Mail to:[EMAIL PROTECTED]| | | | / ___ | | | | | /|/ /| \ / |\ |\|\__|__ | | | \| | | \/|/ | | |/ | | | | / | | |\ / || | | | | | |__/| \\ \/ \ | |\ | | +___+ mv /lib/ld.so /lib/ld.so.old;echo "Damnit" To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Tun driver?
You need to open the "device-side" of the tunnel (/dev/tun0) before the interface is created. Poul-Henning In message [EMAIL PROTECTED], Dan Phoenix writes: [root@elrond conf]# ifconfig tun0 1.1.1.1 up ifconfig: interface tun0 does not exist [root@elrond conf]# ls -al /dev/tun0 crw--- 1 uucp dialer52, 0 Dec 12 13:30 /dev/tun0 [root@elrond conf]# this is confusing metrying to get vtund working in ports collection. tun device is in GENERIC kernel when i checked and exist in /dev as per test above.yet it tells me it does not exist! Ideas? -- Dan +---+ | -Daniel Phoenix Mail to:[EMAIL PROTECTED]| | | | / ___ | | | | | / |/ /| \ / |\ |\|\__|__ | | | \ | | | \/|/ | | |/ | | | | / | | |\ / || | | | | | |__/ | \\ \/ \ | |\ | | +___+ mv /lib/ld.so /lib/ld.so.old;echo "Damnit" To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 [EMAIL PROTECTED] | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
New European Promotional Contest
Dear Sirs, We are very pleased to welcome you and present a new economic initiative for producers from all European countries - both western and eastern. FOR THE FIRST TIME - ON SUCH A LARGE SCALE - IN THE VERY HEART OF EUROPE! "EURO LEADER 2001" This is an honourable title and prestigious Promotional Emblem in European Promotional Contest. This is an effective tool of promotion and marketing in Europe by means of which it is much easier to reach western markets, increase export and gain new partners for cooperation in the field of production and investment. The contest is a Polish initiative. It will be settled in March, 2001 in Warsaw. Therefore it will bring the best commercial effects on a stable, almost 40-million prospective customers Polish market, having over 5% economic growth, which will soon become an integral market of European Union. Click http://www.euroleader.org/ and get acquainted with the details of the contest, enter for the European competition. It will bring you success and a good start in the XXI century! You are good but are you well-known? You will be well-known! Join us. Yours faithfully, INTERRES International Building Fair and Promotion - from Poland B2B - Internet Portal Tadeusz Ziobro - President.
RE: Accessing the Video Bios on a PCI card?? (vm_map ?)
Well, I never did get that to work last night. Any maps outside of the memory range on the machine (which only has 128 meg) turned up all 1s in all bits. I dropped the issue for the moment and looked at AGP ... I'm currently doing DMA transfers, but it's an AGP card, and I'm wondering a) how to detect AGP (how does the AGP register differ on PCI cards as opposed to AGP cards -- read as 0L?) and b) once detected, how to use AGP to improve capture performance. Not much progress was made -- still on the learning curve (looked alot at the agp* stuff in the /sys/pci dir). Back to the BIOS_BASE subject, I fired off a message to ATI developer support about it. And yes, suprisingly enough they _HAVE_ been very helpfull in the past about information on this card (I got the full register set refrence and the programmers manual and sample code from them). We'll see what they say. In the meantime, if you can think of anything else that might work (mapping BIOS), lemme know. - Steve -Original Message- From: Mike Smith [mailto:[EMAIL PROTECTED]] Sent: Tuesday, December 12, 2000 6:45 PM To: [EMAIL PROTECTED] Subject: Re: Accessing the Video Bios on a PCI card?? (vm_map ?) (this is a winblows system with my work-related email on it - you expect sane wrapping?) It *is* possible, actually. 8) Anyway ... I got the size of the bios using the method you suggested. I used malloc to get a chunk of memory, turned the ptr into a physical addr, then used free to get rid of it. I then used pmap_mapdev to map the phsy to virt. That won't work. The physical pointer you referenced there is still backed by physical pages (since they were the pages allocated to you!). You suggested using the resource manager to find a block ... how do I go about doing that? I've tried bus_alloc_resource with the MEMORY type, but it always fails... Any hints? For now, try just using 0x8000. Unless you have 2GB of RAM, that should work fine. (ie. stuff 0x8001 into the bios base address register). When you've got it working doing this, I'll work out how to get you a better number. 8) Oh, and yes, the card is my primary adapter. I just want my driver to work even if the card is not the primary adapter. Ok. It doesn't matter, since expansion ROMs are never executed in-place, they're always shadowed. -- ... every activity meets with opposition, everyone who acts has his rivals and unfortunately opponents also. But not because people want to be opponents, rather because the tasks and relationships force people to take different points of view. [Dr. Fritz Todt] V I C T O R Y N O T V E N G E A N C E To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
RE: hardware Dell or BSDi
We've got a couple BSDI machines in our lab in addition to Micron's, HP's, and some black boxes we build ourselves. The BSDI box is by far the most economical (as far as buying rackmount) and perform as well as anything else. They are also using good "standard" parts which means you can find replacement components at CompUSA, Fryes, or wherever. The BSDI boxes are made by Telenet systems, a most respected hardware company (in many unix circles) who was recently purchase by BSDI. I'm pleased to say that even after the purchase they still make mighty fine servers. Matt On Wed, 13 Dec 2000, you wrote: Hello all, We are going to buy our first 1U 19" rack server (pizzacarton size), and probably there will be more in the future, they have to run FreeBSD 4.1-stable. Normally we buy all our hardware at Dell, they also have this kind of servers, for instance the PowerApp Web 100, we have also seen this kind of servers form BSDi.com, they have FreeBSD preinstalled, and say they are completely optimized. But they are considerably more expensive. Can anyone tell me more about both these servers, how good is the BSDi machine (and the organization), does FreeBSD install on the Dell and so on? tia Jeroen Heijungs Het Muziektheater Amsterdam, The Netherlands To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
PPP failures in 4.2-STABLE
Hi all, After updating to 4.2-STABLE (previous version was 4.1.1-RELEASE) I'm having some strange problem with ppp. When I try to connect for the first time to an ISP the following occurs: ppp[177]: tun0: Chat: Send: ATDT22334455^M ppp[177]: tun0: Chat: Expect(120): CONNECT ppp[177]: tun0: Chat: Received: ATDT22334455^M^M ppp[177]: tun0: Chat: Received: +FHS:11^M ppp[177]: tun0: Chat: Received: ^M ppp[177]: tun0: Chat: Received: OK^M ppp[177]: tun0: Chat: Parent notified of failure (I press ^c here because nothing happens) Then, I try again and it works fine, but If the time between the first and the second connection is too long I receive the same error again, so I can't wait too much to do the second try. Another error that I got these days is the following (a bit like the previous one but with something more): ppp[315]: tun0: Chat: Send: ATDT22335040^M ppp[315]: tun0: Chat: Expect(120): CONNECT ppp[315]: tun0: Chat: Received: ATDT22335040^M^M ppp[315]: tun0: Chat: Received: +FCO^M ppp[315]: tun0: Chat: Received: ^M ppp[315]: tun0: Chat: Received: +FHS:11^M ppp[315]: tun0: Chat: Received: ^M ppp[315]: tun0: Chat: Received: OK^M ppp[315]: tun0: Chat: Parent notified of failure (I press ^C here because nothing happens) When dialing to this particular ISP other strange thing happens, cause even if I try for the second time (without spending too much time bet- ween the two tries) ppp aborts the operation: ppp[325]: tun0: Chat: Send: ATDT22335040^M ppp[325]: tun0: Chat: Expect(120): CONNECT ppp[325]: tun0: Chat: Received: ATDT22335040^M^M ppp[325]: tun0: Chat: Received: CONNECT 50666/ARQ/V90/LAPM/V42BIS^M ppp[325]: tun0: Chat: Parent notified of failure (I didn't press ^C this time) The relevant parts of my ppp.conf follows: # ppp.conf default: set log command chat tun connect set device /dev/cuaa1 set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 15 \"\" AT OK-AT-OK ATE1Q0 OK isp1: set redial 1 50 set phone 22334455 set authname isp1-user set authkey isp1-pass set timeout 80 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR isp2: set phone 22335040 set authname isp2-user set authkey isp2-pass set timeout 100 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR # EOF My modem is a internal USRobotics 56k (x2/v90) and as additional information this doesn't happen in Linux (2.2.17). If this isn't the correct mailing list forgive me please (perhaps -stable would be the one, but anyway). Thanks in advance, Giovanni P. Tirloni mail: [EMAIL PROTECTED] mail: [EMAIL PROTECTED] fone: +55 44 225 6267 To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
changing the way mail spools are permissioned (for using web-based email service)
I'm currently messing around with neomail, and it seems to do everything I need it to, but it doesn't read the mail spools properly. It needs to establish a write lock on /var/mail/someuser. I currently have the script set to run suid/sgid 'mail', but all the spools are set to user:logingroup for ownership. Since some users have different login groups than others; this convention leaves me with two possible options, (as I see it anyhow -suggestions welcomed): 1 - change neomail too be run as suid root, which leaves me sceptical as to it's security; should something screw up I could have a big problem on my hands. 2 - (prefered), change sendmail to have all the mail spools as group writeable for the group 'mail'. This is the way I'd prefer to do things, but I have little to no clue as to exactly how to accomplish this. Seeing as how the machine this is being done on is in production, and under constant use; downtime is also an issue; (If I change it, and something else don't work...I better have it back the way it was, and quickly so). Any comments, suggestions, or otherwise would be greatly appreciated. For the record, my system information is as follows: Running: FreeBSD 4.1-2729-STABLE (no, I don't want to cvsup/update the machine...it works fine now, and that would cause downtime) Sendmail version: ESMTP Sendmail 8.9.3/8.9.3; Wed, 13 Dec 2000 13:38:08 -0500 (EST) -- Nathan Vidican [EMAIL PROTECTED] Windsor Match Plate Tool Ltd. http://www.wmptl.com/ To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
su root hangs when logged in via SSH
I've got a strange problem on two of my FreeBSD machines (4.1R and 4.2-STABLE 20001207). Whenever I try to su to root it (su) just hangs and does not execute the login. Also when supplying the wrong password after emitting the message it will just hang and I have to kill it with ^C. Su'ing to another normal user works. Also su'ing to root works when logged in via telnet. On -current all this works fine. Does this ring any bells? -- Andre To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Patches available (was Re: Extreme high load with 12/7 4-releng)
[ freebsd-stable removed from cc: list just cuz ] : sysctl -w vm.debug_pageout_stats=1 : This output would be invaluable to me coming from people who still have : major performance problems on heavily loaded machines. : :Okay, I'm gathering data as we speak, but, would you still want to see :this data from a news box, if I had *not* been noticing major performance Well, sure! Ego-stuffing is what we programmers live for :-) Great, I'll gladly help you to get stuffed. Watch yer mailbox, no good point in cluttering up the list with an hour+ of logs... What I would be most interested in on your particular system is how this patchset performs with your madvise() hack removed and comparing that with your original numbers (prior to when you add the madvise()). I'm going to guess that you mean the mlock() userland hack here. If so you're in luck, as I updated everything to incorporate the latest fixes to the BerkeleyDB overview method, which means that in error, I compiled the binary without the mlock() call. I caught that after a few minutes and restarted things with the binary that does mlock(), so you'll see these two sets of conditions in the logs I'll be sending. Comments are added between the two sets of stats. More details: I had been running with 02.Dec vm kernel-kode; before applying your patch I sup'ed to what was available this morning. Meaning if something broke over the last week, as the mailing list leads me to believe, I missed out on the fun. I've had to increase the size of the two history database files slightly as they were overflowing, so now they are about 135M (updated on disk) and 90M (disk timestamp never changes) in size. I still haven't researched why the larger of the two isn't acting the way I want (its on-disk updates cause noticeable lags in responsiveness, in spite of the mlock() call and other calls succeeding, and the timestamps on this file stabilize on a different transit-only machine, although on a smaller file)... I haven't made any attempts as were suggested to run helper programs to lock both files' data in memory rather than use the mlock() userland hack, yet. Mostly I've just ignored the machine since it went down last weekend. It's presently in the process of catching up since Saturday. When this is complete and it's operating normally, I'll try reverting things to closer to the default INN source k0dez. As a reminder, the changes I've made have been to... * first, enable mmap() MAP_NOSYNC on both database .index/.hash files * secondly, adding madvise() WILL_NEED for the two files, in addition to the program-supplied RANDOM * finally, cheating by enabling userland mlock() for INN only on these. There's pretty heavy disk activity on the overview BerkeleyDB database as well, and if for some reason you want more than the 1+ hour of debug numbers I'll be sending you from startup, until I start messing around with mmap/mlock/madvise options, I'll be happy to send them too. thanks, barry bouwsma To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
syscall assembly
Considering the following C code: #include fcntl.h int main() { open("file", O_RDONLY); return 0; } compiled with gcc -S -O2, the following assembly code is generated: main: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open xorl %eax,%eax leave What is the purpose of the subl and addl instructions? On Linux, they are simply unexistent.. Notes: FreeBSD fbsd.b0x.com 4.2-RELEASE gcc version 2.95.2 19991024 (release) To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
* Marc Tardif [EMAIL PROTECTED] [001213 13:30] wrote: Considering the following C code: #include fcntl.h int main() { open("file", O_RDONLY); return 0; } compiled with gcc -S -O2, the following assembly code is generated: main: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open xorl %eax,%eax leave What is the purpose of the subl and addl instructions? On Linux, they are simply unexistent.. FreeBSD passes syscall args on the stack, Linux uses registers. -- -Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
On Wed, 13 Dec 2000, Alfred Perlstein wrote: * Marc Tardif [EMAIL PROTECTED] [001213 13:30] wrote: [ snip ] subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open FreeBSD passes syscall args on the stack, Linux uses registers. So why is %esp displaced by 16 bytes when only 8 bytes are necessary (4 for $0 and 4 for $.LC0)? And couldn't the compiler use a single instruction such as subl $16,%esp or addl $-16,%esp? Are two instructions used for pipelining purposes, where subl is synchro- nised with the first pushl and addl with the second pushl? To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
David, can you look at this? #include fcntl.h int foo() { open("file", O_RDONLY); return 0; } int main() { int x; x = foo(); return 0; } results in: foo: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open xorl %eax,%eax leave ret why the subl then addl? ~ % gcc -v Using builtin specs. gcc version 2.95.2 19991024 (release) ~ % uname -a 4.2-STABLE FreeBSD 4.2-STABLE #1: Wed Dec 6 02:49:24 PST 2000 * Drew Eckhardt [EMAIL PROTECTED] [001213 14:21] wrote: In message [EMAIL PROTECTED], [EMAIL PROTECTED] write s: subl $8,%esp addl $-8,%esp What is the purpose of the subl and addl instructions? On Linux, they are simply unexistent.. FreeBSD passes syscall args on the stack, Linux uses registers. The 'C' compiler doesn't know open is a syscall, and treats it like any other code. The pushls put the arguments on the stack. The subl/addl are there because your version of GCC is broken. -- -Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
On Wed, 13 Dec 2000, Alfred Perlstein wrote: David, can you look at this? #include fcntl.h int foo() { open("file", O_RDONLY); return 0; } int main() { int x; x = foo(); return 0; } results in: foo: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open xorl %eax,%eax leave ret why the subl then addl? Well, as a thoroughly rough guess, the subl is probably to create space on the stack for the args, and the addl is to align the stack to a 16 byte address? I know that the PowerPC ABI wants that, but no idea about x86. Iain To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
In message [EMAIL PROTECTED] Marc Tardif writes: : So why is %esp displaced by 16 bytes when only 8 bytes : are necessary (4 for $0 and 4 for $.LC0)? And couldn't : the compiler use a single instruction such as : subl $16,%esp or addl $-16,%esp? Are two instructions : used for pipelining purposes, where subl is synchro- : nised with the first pushl and addl with the second : pushl? gcc tries to align stack to 16 byte boundaries as a speed optiminzation. Why it doesn't do this in one instruction is beyond me. Warner To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
On Thu, 14 Dec 2000, Iain Templeton wrote: On Wed, 13 Dec 2000, Alfred Perlstein wrote: subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open why the subl then addl? Well, as a thoroughly rough guess, the subl is probably to create space on the stack for the args, and the addl is to align the stack to a 16 byte address? Perhaps, but no matter the degree of optimisation, the 16 byte of space is performed in two instructions. This leads me to believe is it most likely a pipelining issue for the following pushl instructions. As for subl'ing and addl'ing 8 bytes instead of 4, as required by each pushl, that can very well be an aligning issue which would seem to make more sense for the x86. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
In message [EMAIL PROTECTED], [EMAIL PROTECTED] writes: In message [EMAIL PROTECTED] Marc Tar dif writes: : So why is %esp displaced by 16 bytes when only 8 bytes : are necessary (4 for $0 and 4 for $.LC0)? And couldn't : the compiler use a single instruction such as : subl $16,%esp or addl $-16,%esp? Are two instructions : used for pipelining purposes, where subl is synchro- : nised with the first pushl and addl with the second : pushl? gcc tries to align stack to 16 byte boundaries as a speed optiminzation. Why it doesn't do this in one instruction is beyond me. Kocking 16 bytes off the stack pointer won't put it any closer to a 16 byte boundary. -- a href="http://www.poohsticks.org/drew/"Home Page/a For those who do, no explanation is necessary. For those who don't, no explanation is possible. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
In message [EMAIL PROTECTED], intmktg@ CAM.ORG writes: Perhaps, but no matter the degree of optimisation, the 16 byte of space is performed in two instructions. This leads me to believe is it most likely a pipelining issue for the following pushl instructions. As for subl'ing and addl'ing 8 bytes instead of 4, as required by each pushl, that can very well be an aligning issue which would seem to make more sense for the x86. pushl puts the operand on the stack and then decrements %esp by an appropriate quantity. Nothing needs to be done to the stack before it. My best guess (if it isn't a bug) would be that it's there to keep the stack on a 32 byte (IIRC, this sounds like cache line size for the newer Intel chips) boundary when the program gets to open (4 for saved %ebp, 4 for the char * arg, 4 for the int arg, and 4 for the %eip call pushes requires 16 bytes more to preserve a 32 byte alignment) so that in a "normal" function without a lot of locals all of the locals are on the same cache line. Two instructions instead of 1 would help to facilitate alignment of the return address (I think 16 bytes is a good alignment for a jmp, and I can't see why a ret wouldn't the same), and a subl + addl combination would prevent interferance by a stupid peephole optimizer looking to combine addls with the same destination register. -- a href="http://www.poohsticks.org/drew/"Home Page/a For those who do, no explanation is necessary. For those who don't, no explanation is possible. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
: :gcc tries to align stack to 16 byte boundaries as a speed :optiminzation. Why it doesn't do this in one instruction is beyond :me. : :Kocking 16 bytes off the stack pointer won't put it any closer to a :16 byte boundary. This is precisely my problem with gcc's 'optimization'. It's utterly stupid for it to assume that the stack is already 16-byte aligned... it makes it impossible to mix aligned and non-aligned code and still have a reasonably optimal result (e.g. like third party libraries or older libraries or whatever). And it's a huge, unnecessary waste of space when most of the time all you are storing on the stack are ints. -Matt To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: su root hangs when logged in via SSH
Mike Tancsa wrote: Yeah, I had a similar problem to this in the past where syslogd was kind of hung, and the su was blocking waiting for I guess syslog to return. If you can login as root on the console, kill syslogd, restart it and see if su works once again. Nope, it does not work again. But after a couple of seconds after restarting syslogd I've got this messages on the console: "syslogd: timed out waiting for child" Another note, syslogd does not go with a normal kill, it needs a kill -9 to make it into heaven. Could this be related to having a serial console? -- Andre To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
drew writes: My best guess (if it isn't a bug) would be that it's there to keep the stack on a 32 byte (IIRC, this sounds like cache line size for the newer Intel chips) This discussion piqued my curiosity, so I popped up the Pentium III optomization manual. To quote it: On Pentium II and Pentium III processors, a misaligned access that crosses a cache line boundary does incure a penalty. A Data Cache Unit (DCU) split is a memory access that crosses a 32-byte line boundary. Unaligned accesses may cause a DCU split and stall Pentium II and Pentium III processors. For best performance, make sure that in data structures and arrays greater than 32 bytes, the structure or array elements are 32-byte-aligned and that access patterns to data structure and array elements do not break the alignment rules. IOW, the stack pointer adjustment is there so that doubles (and 80-bit floats, if GCC supports those. Does it do a long double for Intel targets?) in the called function don't cross a 32 byte data cache line boundary. Two instructions instead of 1 would help to facilitate alignment of the return address (I think 16 bytes is a good alignment for a jmp, and I can't see why a ret wouldn't the same) PII/PIII processors prefetch on 16 byte boundaries, so having the return address on such a boundary may cut the number of prefetches and (marginally) improve performance. -- a href="http://www.poohsticks.org/drew/"Home Page/a For those who do, no explanation is necessary. For those who don't, no explanation is possible. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: syscall assembly
#include fcntl.h int foo() { open("file", O_RDONLY); return 0; } int main() { int x; x = foo(); return 0; } results in: foo: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-8,%esp pushl $0 pushl $.LC0 call open xorl %eax,%eax leave ret why the subl then addl? Well, as a thoroughly rough guess, the subl is probably to create space on the stack for the args, and the addl is to align the stack to a 16 byte address? I know that the PowerPC ABI wants that, but no idea about x86. You guess about addl maintaining 16 byte alignment is right. The first subl is required to keep the initial alignment to 16 bytes due to the call to foo and saving of %ebp on the stack. Try compiling the following: extern g(); f1() { g(1,2); } f2() { g(1,2,3,4); } f3() { g(1,2,3,4,5); } f4() { g(1,2); g(1,2); } f2() does not have the addl since it has exactly 4 args. f3() has an addl $-12 to maintain 16 byte alignment (5 args take 20 bytes). f4() shows why the first subl is needed (assembly shown below). .p2align 2,0x90 .globl f4 .typef4,@function f4: pushl %ebp movl %esp,%ebp subl $8,%esp addl $-8,%esp ; g(1,2); pushl $2 pushl $1 call g addl $16,%esp addl $-8,%esp ; g(1,2); pushl $2 pushl $1 call g addl $16,%esp .L5: leave ret .Lfe4: .sizef4,.Lfe4-f4 The intermediate addl $16 followed by addl$-8 is optimized when the -O flag is used but not the initial subl followed by addl. Probably because gcc treats proc prolog/epilog code specially (or it lacks a proper peephole optimizer). Note that the alignment boundary is 16 bytes, not 32 bytes as someone else claimed (see the code for f3()). But I don't see the point of this optimization -- it seems to want to put the return address on a 16 byte boundary but modern caches should be able to fetch any asked for word in a cache line first before filling in the rest of the cache.[but PIII is not exactly modern:-) In fact by allocating 16 bytes per frame you are using up more cache lines (and more space). Its impact is worse when you compile with -fomit-frame-pointer to avoid saving/restoring the frame pointer. Now there is an unnecessary subl $12 and addl $12 on procedure entry and exit. [You don't need a framepointer *unless* you are debugging your code or doing alloca() so in well behaved code -fomit-frame-pointer savings can add up quite a bit] I guess one reason may be to make sure doubles and larger structs are aligned on 16 byte boundary but seems the cost of doing this likely outweighs the benefit. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
StrongARM support?
Hi all, Is there any work in progress to support running FreeBSD on ARM processors? If not, are there any plans to? I would be very interested in helping out with such an effort. I would love to have FreeBSD running on my iPAQ PocketPC. :) I know that linux is already running well on ARM but I would really like to see FreeBSD running in its place. -- Regards, Devin. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: StrongARM support?
There was somone looking at the NetBSD code with hungry eyes but I never heard anything more... check the archives. Pedro. Devin Butterfield wrote: Hi all, Is there any work in progress to support running FreeBSD on ARM processors? If not, are there any plans to? I would be very interested in helping out with such an effort. I would love to have FreeBSD running on my iPAQ PocketPC. :) I know that linux is already running well on ARM but I would really like to see FreeBSD running in its place. -- Regards, Devin. 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: su root hangs when logged in via SSH
Mike Tancsa wrote: Yeah, I had a similar problem to this in the past where syslogd was kind of hung, and the su was blocking waiting for I guess syslog to return. If you can login as root on the console, kill syslogd, restart it and see if su works once again. Nope, it does not work again. But after a couple of seconds after restarting syslogd I've got this messages on the console: "syslogd: timed out waiting for child" Another note, syslogd does not go with a normal kill, it needs a kill -9 to make it into heaven. Could this be related to having a serial console? This sounds very familiar to me. I had a problem like this in the past, and it was a case of syslog blocking trying to write to /dev/console and blocking. The comconsole port starts a getty on /dev/console, which might be surprising if you also had one running on ttyd0. I don't recall the details, but I think that the serial console is definately related to your problem. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: very big mail spool directory
In message [EMAIL PROTECTED] Tony Finch writes: : Dag-Erling Smorgrav [EMAIL PROTECTED] wrote: : : If you only have half a million users, pick a prime number K close to : the square root of the expected number of users (724 in your case - : closest primes are 719 and 727), create that many bucket directories, : and place each user in bucket ID mod K. : : Why a prime number? All you need is an even spread, and given that : user IDs are usually allocated sequentially any modulus will do. Because Knuth has shown that prime numbers give the best spread in hash lookup tables. Warner To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: StrongARM support?
In message [EMAIL PROTECTED] "Pedro F. Giffuni" writes: : There was somone looking at the NetBSD code with hungry eyes but I : never heard anything more... check the archives. Last I heard, only the MIPS based PDAs were supported by NetBSD/hpcmips. I know that there are some efforts to make things run on sh3 machines and there's been talk about the arm as well, but I don't think they have been committed to the tree just yet. Warner To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: PPP failures in 4.2-STABLE
Hi, The only thing that comes to mind here is that perhaps you've got something like hylafax or mgetty running against the same port and something's gone wrong with the port locking code. It *looks* like something's writing fax commands to your modem at the same time as you're trying to dial Hi all, After updating to 4.2-STABLE (previous version was 4.1.1-RELEASE) I'm having some strange problem with ppp. When I try to connect for the first time to an ISP the following occurs: ppp[177]: tun0: Chat: Send: ATDT22334455^M ppp[177]: tun0: Chat: Expect(120): CONNECT ppp[177]: tun0: Chat: Received: ATDT22334455^M^M ppp[177]: tun0: Chat: Received: +FHS:11^M ppp[177]: tun0: Chat: Received: ^M ppp[177]: tun0: Chat: Received: OK^M ppp[177]: tun0: Chat: Parent notified of failure (I press ^c here because nothing happens) Then, I try again and it works fine, but If the time between the first and the second connection is too long I receive the same error again, so I can't wait too much to do the second try. Another error that I got these days is the following (a bit like the previous one but with something more): ppp[315]: tun0: Chat: Send: ATDT22335040^M ppp[315]: tun0: Chat: Expect(120): CONNECT ppp[315]: tun0: Chat: Received: ATDT22335040^M^M ppp[315]: tun0: Chat: Received: +FCO^M ppp[315]: tun0: Chat: Received: ^M ppp[315]: tun0: Chat: Received: +FHS:11^M ppp[315]: tun0: Chat: Received: ^M ppp[315]: tun0: Chat: Received: OK^M ppp[315]: tun0: Chat: Parent notified of failure (I press ^C here because nothing happens) When dialing to this particular ISP other strange thing happens, cause even if I try for the second time (without spending too much time bet- ween the two tries) ppp aborts the operation: ppp[325]: tun0: Chat: Send: ATDT22335040^M ppp[325]: tun0: Chat: Expect(120): CONNECT ppp[325]: tun0: Chat: Received: ATDT22335040^M^M ppp[325]: tun0: Chat: Received: CONNECT 50666/ARQ/V90/LAPM/V42BIS^M ppp[325]: tun0: Chat: Parent notified of failure (I didn't press ^C this time) The relevant parts of my ppp.conf follows: # ppp.conf default: set log command chat tun connect set device /dev/cuaa1 set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 15 \"\" AT OK-AT-OK ATE1Q0 OK isp1: set redial 1 50 set phone 22334455 set authname isp1-user set authkey isp1-pass set timeout 80 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR isp2: set phone 22335040 set authname isp2-user set authkey isp2-pass set timeout 100 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR # EOF My modem is a internal USRobotics 56k (x2/v90) and as additional information this doesn't happen in Linux (2.2.17). If this isn't the correct mailing list forgive me please (perhaps -stable would be the one, but anyway). Thanks in advance, Giovanni P. Tirloni mail: [EMAIL PROTECTED] mail: [EMAIL PROTECTED] fone: +55 44 225 6267 -- Brian [EMAIL PROTECTED]brian@[uk.]FreeBSD.org http://www.Awfulhak.org brian@[uk.]OpenBSD.org Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: su root hangs when logged in via SSH
"Louis A. Mamakos" wrote: Mike Tancsa wrote: Yeah, I had a similar problem to this in the past where syslogd was kind of hung, and the su was blocking waiting for I guess syslog to return. If you can login as root on the console, kill syslogd, restart it and see if su works once again. Nope, it does not work again. But after a couple of seconds after restarting syslogd I've got this messages on the console: "syslogd: timed out waiting for child" Another note, syslogd does not go with a normal kill, it needs a kill -9 to make it into heaven. Could this be related to having a serial console? This sounds very familiar to me. I had a problem like this in the past, and it was a case of syslog blocking trying to write to /dev/console and blocking. The comconsole port starts a getty on /dev/console, which might be surprising if you also had one running on ttyd0. I don't recall the details, but I think that the serial console is definately related to your problem. Yep, that seems to be the problem. As soon as I remove the getty it works. Interestingly enough syslogd doesn't matter at all, running or not it will not work as long as getty is active. Is there any work-around known? -- Andre To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: very big mail spool directory
Warner Losh [EMAIL PROTECTED] wrote: In message [EMAIL PROTECTED] Tony Finch writes: : Dag-Erling Smorgrav [EMAIL PROTECTED] wrote: : : If you only have half a million users, pick a prime number K close to : the square root of the expected number of users (724 in your case - : closest primes are 719 and 727), create that many bucket directories, : and place each user in bucket ID mod K. : : Why a prime number? All you need is an even spread, and given that : user IDs are usually allocated sequentially any modulus will do. Because Knuth has shown that prime numbers give the best spread in hash lookup tables. Yes, I know that, but we aren't talking about normal hash tables. The aim of the prime number is to avoid hash collisions, but in this application you are deliberately aiming for about 700 items in each bucket instead of about one. Whether the modulus is prime or not will make no detectable difference with this degree of hash collision. Tony. -- f.a.n.finch[EMAIL PROTECTED][EMAIL PROTECTED] "If I didn't see it with my own eyes I would never have believed it!" To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: question about fixed headers on FreeBSD
David O'Brien wrote: Hi Bruce, Can you explain why fixinc needs to do this change of stdlib.h? Also why GCC needs to install its own version of assert.h? What is wrong with the base one? Obviously, nothing is really wrong with any of these files. The real question is, "Why is fixincl fixing files that ain't broke?" Fundamentally, the problem is is that the header files, as a whole, are a joint domain of the compiler and the OS. Some compiler vendors solve the problem by shipping their own headers for every approved target system. That was deemed inconvenient for GCC. Systems vendors ship headers that play well with their own compiler. GCC isn't a system vendor, either. So, GCC fixes the native headers so that it can do its job and it can emit code that talks to the local OS. This does not answer your question, but it sets the stage and it explains why it is appropriate for GCC to diddle with headers that are used for its own purposes. In the open source OS environment, the headers are generally properly formed. For one thing, they uniformly use GCC as the system compiler, so there is extra incentive to make the headers GCC-friendly. But that is only "generally" true. Buggy headers *have* been released. Furthermore, what were not bugs before have become bugs now, and what are not now bugs may become so in the future. So, GCC cannot blindly rely on correct headers, even for open source OSes. But why fix it if it is not broken? Because fixincludes could not tell that it was not broken. Fixincludes is a compromise between total processing time for all users, wasted disk space and available programmer time for putting smarts into it. It is pretty much restricted to regular expression pattern processing, but you are more than welcome to write additional methods. They will plug into the system fairly seamlessly. See "fixfixes.c", "fixtests.c" and "README" in the gcc/fixinc directory for more information. So, if you want fixincludes to stop fixing unbroken headers, *please* feel free and even encouraged to submit patches. Thank you. Regards, Bruce P.S. Does anyone think we can hack this into an appropriate FAQ? To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: StrongARM support?
Is there any work in progress to support running FreeBSD on ARM processors? If not, are there any plans to? I would be very interested in helping out with such an effort. I would love to have FreeBSD running on my iPAQ PocketPC. :) No work in progress, no plans. Would you be interested in heading such a project? That's what's needed. :) - Jordan To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: StrongARM support?
Jordan Hubbard wrote: Is there any work in progress to support running FreeBSD on ARM processors? If not, are there any plans to? I would be very interested in helping out with such an effort. I would love to have FreeBSD running on my iPAQ PocketPC. :) No work in progress, no plans. Would you be interested in heading such a project? That's what's needed. :) - Jordan To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message Unfortunately, I don't think that I have enough knowledge to "head" such a project. I can certainly help in the effort though. I'm familiar with the FreeBSD kernel and have written drivers but I really know little about ARM or what it would take to get the FreeBSD kernel to boot on an ARM. I guess we could start by using the data collected by the NetBSD group's effort to run on ARM. Is there anyone here who is familiar with NetBSD's ARM project? Anyone here interested in such a project (and perhaps who has some prior knowledge of what would be involved in realizing such a beast)? -- Regards, Devin. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Patches available (was Re: Extreme high load with 12/7 4-releng)
I have made a patchset available for both -current and -stable on my site: http://apollo.backplane.com/FreeBSD4/ sysctl -w vm.debug_pageout_stats=1 The debugging code prints a line to dmesg and /var/log/messages each time the pageout daemon runs a scan, and tells you how many clean pages, [...] This output would be invaluable to me coming from people who still have major performance problems on heavily loaded machines. I would appreciate wide testing, especially by anyone running heavily loaded -stable boxes. I am especially interested in how this patchset performs on news boxes. Okay, I'm gathering data as we speak, but, would you still want to see this data from a news box, if I had *not* been noticing major performance problems, just to have some numbers to drool over? Regardless, I'll keep running the patchset on this lightly-loaded news box (-stable) which seems to be pretty responsive... thanks! barry bouwsma, lame-duck newsmangler at tele danmark internet To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Patches available (was Re: Extreme high load with 12/7 4-releng)
: : I have made a patchset available for both -current and -stable on my site: : http://apollo.backplane.com/FreeBSD4/ : sysctl -w vm.debug_pageout_stats=1 : The debugging code prints a line to dmesg and /var/log/messages each : time the pageout daemon runs a scan, and tells you how many clean pages, :[...] : This output would be invaluable to me coming from people who still have : major performance problems on heavily loaded machines. : : I would appreciate wide testing, especially by anyone running heavily : loaded -stable boxes. I am especially interested in how this patchset : performs on news boxes. : :Okay, I'm gathering data as we speak, but, would you still want to see :this data from a news box, if I had *not* been noticing major performance :problems, just to have some numbers to drool over? : :Regardless, I'll keep running the patchset on this lightly-loaded news :box (-stable) which seems to be pretty responsive... : :thanks! :barry bouwsma, lame-duck newsmangler at tele danmark internet Well, sure! Ego-stuffing is what we programmers live for :-) What I would be most interested in on your particular system is how this patchset performs with your madvise() hack removed and comparing that with your original numbers (prior to when you add the madvise()). -Matt To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message