Re: mmap() question

2013-10-13 Thread Dmitry Sivachenko

On 12.10.2013, at 18:14, Konstantin Belousov kostik...@gmail.com wrote:

 
 First I tried with some swap space configured.  The OS started to swap out 
 my process after it reached about 20GB which is also not what I expected:  
 what is the reason to swap out regions of read-only mmap()ed files?  Is it 
 the expected behaviour?
 
 How did you concluded that the pages from your r/o mappings were paged out ?
 VM never does this.  Only anonymous memory could be written to swap file,
 including the shadow pages for the writeable COW mappings.  I suspect that
 you have another 20GB of something used on the machine meantime.
 


Yes, sorry, I tried again with swap space configured and it is really some 
other processes which are swapping out:
sshd, other user's shells, etc.


 
 
 Below is the prototype patch, against HEAD.  It is not applicable to
 stable, please use HEAD kernel for test.
 



I tried your patch with stable/10 system and I can confirm that my process is 
not killed anymore because of OOM.


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: mmap() question

2013-10-12 Thread Dmitry Sivachenko

On 12.10.2013, at 13:59, Konstantin Belousov kostik...@gmail.com wrote:
 
 I was not able to reproduce the situation locally. I even tried to start
 a lot of threads accessing the mapped regions, to try to outrun the
 pagedaemon. The user threads sleep on the disk read, while pagedaemon
 has a lot of time to rebalance the queues. It might be a case when SSD
 indeed makes a difference.
 


With ordinary SATA drive it will take hours just to read 20GB of data from disk 
because of random access, it will do a lot of seeks and reading speed will be 
extremely low.

SSD dramatically improves reading speed.


 Still, I see how this situation could appear. The code, which triggers
 OOM, never fires if there is a free space in the swapfile, so the
 absense of swap is neccessary condition to trigger the bug.  Next, OOM
 calculation does not account for a possibility that almost all pages on
 the queues can be reused. It just fires if free pages depleted too much
 or free target cannot be reached.


First I tried with some swap space configured.  The OS started to swap out my 
process after it reached about 20GB which is also not what I expected:  what is 
the reason to swap out regions of read-only mmap()ed files?  Is it the expected 
behaviour?


 
 Below is the prototype patch, against HEAD.  It is not applicable to
 stable, please use HEAD kernel for test.


Thanks, I will test the patch soon and report the results.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: mmap() question

2013-10-11 Thread Dmitry Sivachenko

On 11.10.2013, at 9:17, Konstantin Belousov kostik...@gmail.com wrote:

 On Wed, Oct 09, 2013 at 03:42:27PM +0400, Dmitry Sivachenko wrote:
 Hello!
 
 I have a program which mmap()s a lot of large files (total size more that 
 RAM and I have no swap), but it needs only small parts of that files at a 
 time.
 
 My understanding is that when using mmap when I access some memory region OS 
 reads the relevant portion of that file from disk and caches the result in 
 memory.  If there is no free memory, OS will purge previously read part of 
 mmap'ed file to free memory for the new chunk.
 
 But this is not the case.  I use the following simple program which gets 
 list of files as command line arguments, mmap()s them all and then selects 
 random file and random 1K parts of that file and computes a XOR of bytes 
 from that region.
 After some time the program dies:
 pid 63251 (a.out), uid 1232, was killed: out of swap space
 
 It seems I incorrectly understand how mmap() works, can you please clarify 
 what's going wrong?
 
 I expect that program to run indefinitely, purging some regions out of RAM 
 and reading the relevant parts of files.
 
 
 You did not specified several very important parameters for your test:
 1. total amount of RAM installed


24GB


 2. count of the test files and size of the files

To be precise: I used 57 files with size varied form 74MB to 19GB.
The total size of these files is 270GB.

 3. which filesystem files are located at


UFS @ SSD drive

 4. version of the system.


FreeBSD 9.2-PRERELEASE #0 r254880M: Wed Aug 28 11:07:54 MSK 2013
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


mmap() question

2013-10-09 Thread Dmitry Sivachenko
Hello!

I have a program which mmap()s a lot of large files (total size more that RAM 
and I have no swap), but it needs only small parts of that files at a time.

My understanding is that when using mmap when I access some memory region OS 
reads the relevant portion of that file from disk and caches the result in 
memory.  If there is no free memory, OS will purge previously read part of 
mmap'ed file to free memory for the new chunk.

But this is not the case.  I use the following simple program which gets list 
of files as command line arguments, mmap()s them all and then selects random 
file and random 1K parts of that file and computes a XOR of bytes from that 
region.
After some time the program dies:
pid 63251 (a.out), uid 1232, was killed: out of swap space

It seems I incorrectly understand how mmap() works, can you please clarify 
what's going wrong?

I expect that program to run indefinitely, purging some regions out of RAM and 
reading the relevant parts of files.

Thanks!

#include err.h
#include fcntl.h
#include math.h
#include stdio.h
#include stdlib.h
#include sys/mman.h
#include sys/stat.h
#include sys/types.h
#include unistd.h

struct f_data {
char *beg;
off_t size;
};

int
main(int argc, char* argv[]) {
if (argc  2) {
fprintf(stderr, Usage: %s file ...\n, argv[0]);
exit(0);
}
int i, j, fd;
struct stat st;
struct f_data FILES[500];
int NUM_FILES;
void *p;
NUM_FILES = argc - 1;
for (i=1; i  argc; i++) {
printf(%s... , argv[i]);
if ((fd = open(argv[i], O_RDONLY))  0)
errx(1, open);
if (fstat(fd, st) != 0)
errx(1, fstat);
if ((p = mmap(NULL, st.st_size, PROT_READ, MAP_NOCORE, fd, 0)) == 
MAP_FAILED)
errx(1, mmap);
FILES[i-1].beg = (char*)p;
FILES[i-1].size = st.st_size;
if (msync(p, st.st_size, MS_INVALIDATE) != 0)
errx(1, msync);
printf(Ok.\n);
}
char chk = 0;
while(1) {
int rf = floor((double)random() / 2147483647 * NUM_FILES);
off_t offs = floor((double)random() / 2147483647 * (FILES[rf].size - 
1024));
for (j=0; j1024; j++)
chk ^= *(FILES[rf].beg + offs + j);
}
return 0;
}

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


About CPU cores numbering an processor affinity

2013-08-23 Thread Dmitry Sivachenko
Hello!

I am using FreeBSD-9-STABLE on the following hardware:

FreeBSD/SMP: Multiprocessor System Detected: 24 CPUs
FreeBSD/SMP: 2 package(s) x 6 core(s) x 2 SMT threads

So I have 2 physical CPUs with 6 core each.

# cpuset -g
pid -1 mask: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
19, 20, 21, 22, 23


So each of 24 cores are numbered 0..23.

1) In what particular order are these cores numbered?  Can I assume that 0..11 
correspond to 1st physical CPU and 12..23 to second?  How SMT threads are 
numbered within each core?

2) This machine has Intel network adapter (em driver).  I want to pin network 
interrupt thread and proxy software to the same processor so they share at 
least L2 or L3 cache.  How can I do this?  From the one hand, I see the 
following processes:

   11 root -92- 0K   720K WAIT   19 146:38  0.00% intr{irq260: 
em1:rx 0}
   11 root -92- 0K   720K WAIT   19  15:11  0.00% intr{irq261: 
em1:tx 0}

From the other hand, the following processes seems to be unrelated to network 
but they share same PID:
   11 root -60- 0K   720K WAIT1 131:20  0.00% intr{swi4: 
clock}
   11 root -88- 0K   720K WAIT   17  40:03  0.00% intr{irq263: 
ahci0}
   11 root -72- 0K   720K WAIT   22  17:35  0.00% intr{swi1: 
netisr 0}
   11 root -88- 0K   720K WAIT3   3:08  0.00% intr{irq256: 
mfi0}

Should I use -x option of cpuset for that purpose (to bind irq 260 and 261 in 
my example)?

Thanks in advance!

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: /bin/sh question

2004-05-11 Thread Dmitry Sivachenko
On Sun, May 09, 2004 at 09:53:50PM -0400, Martin Cracauer wrote:
 Dmitry Sivachenko wrote on Fri, Apr 30, 2004 at 03:28:29PM +0400: 
  
  We use recent -STABLE.
  We observed /bin/sh looping forever executing a script.
  We run this script with -T option to sh(1).
  When sh(1) receives a HUP, we entering our trap handler which spawns
  child process.  When this process exits, sh(1) loops.
 
 Need a test script.  I committed a bogus change some time ago but that
 never made it into -stable, except maybe somebody else merged :-/
 
 I am not sure you are allowed to fork in a trap handler, can't check
 right now.
 

A simple test script is provided in bin/66242.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]


/bin/sh question

2004-04-30 Thread Dmitry Sivachenko
Hello!

We use recent -STABLE.
We observed /bin/sh looping forever executing a script.
We run this script with -T option to sh(1).
When sh(1) receives a HUP, we entering our trap handler which spawns
child process.  When this process exits, sh(1) loops.

The backtrace is the following: 

(gdb) bt
#0  0x80763fc in wait4 ()
#1  0x8075941 in wait3 ()
#2  0x8051f8a in waitproc (block=1, status=0xbfbffa0c)
at /mnt/backup/releng_4/src/bin/sh/jobs.c:1025
#3  0x8051cbd in dowait (block=1, job=0x80c6000)
at /mnt/backup/releng_4/src/bin/sh/jobs.c:926
#4  0x8051b8a in waitforjob (jp=0x80c6000, origstatus=0xbfbffa88)
at /mnt/backup/releng_4/src/bin/sh/jobs.c:870
#5  0x804be33 in evalcommand (cmd=0x80b6d6c, flags=0, backcmd=0x0)
at /mnt/backup/releng_4/src/bin/sh/eval.c:904
#6  0x804acc0 in evaltree (n=0x80b6d6c, flags=0)
at /mnt/backup/releng_4/src/bin/sh/eval.c:281
#7  0x804aafa in evaltree (n=0x80b6e04, flags=0)
at /mnt/backup/releng_4/src/bin/sh/eval.c:199
#8  0x804aafa in evaltree (n=0x80b6e38, flags=0)
at /mnt/backup/releng_4/src/bin/sh/eval.c:199
#9  0x804aa73 in evalstring (
s=0x80c5100 rm -f /tmp/st28742.box221.zecke.demos.su; _clean SIGHUP /dev/tt
yph.28742.zecke.demos.su 28742;  exit)
at /mnt/backup/releng_4/src/bin/sh/eval.c:171
#10 0x80598da in dotrap () at /mnt/backup/releng_4/src/bin/sh/trap.c:401
#11 0x804acf6 in evaltree (n=0x80b6d00, flags=0)
at /mnt/backup/releng_4/src/bin/sh/eval.c:290
#12 0x80528f4 in cmdloop (top=1) at /mnt/backup/releng_4/src/bin/sh/main.c:250


The waitproc() at jobs.c:926 returns -1 and sets errno to ECHILD (because
the child does not exist at that time).
Since (pid = 0) condition is true at jobs.c:935, -1 is returned and we are
entering dotrap() at jobs.c:870.  dotrap() never alters (struct job *)state.

So we get an infinite loop around jobs.c:869.

Unfortunatelly I can't provide a simple enough how-to-observe script for
this, but the above logic seems weird for me.  I can provide additional
details or coredump if needed.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: struct ipc_perm

2003-06-19 Thread Dmitry Sivachenko
On Thu, Jun 19, 2003 at 10:56:41AM +0200, Gary Jennejohn wrote:
 
 Dmitry Sivachenko writes:
  On Wed, Jun 18, 2003 at 06:08:37PM +0200, Gary Jennejohn wrote:
   
   Dmitry Sivachenko writes:
Hello!

Is there any reason why struct ipc_perm is not protected by #ifdef _KERNE
  L
in ipc.h?  Is it supposed to be used from userland?

   
   It's needed by ipcs.
   
  
  Ah, I see.  It is visible via struct msqid_ds.
  
  I developed a patch which requires addition of custom field to ipc_perm.
  I am trying to imagine which problems can it cause to userland programs.
  
  Any ideas?
  
 
 The usual way to handle this sort of change is to put any new structure
 elements at the end so that existing applications don't get confused.
 They simply aren't aware the new elements were added.

Yes, that is exactly how I did it.


 
 Of course, this can cause problems when the kernel does a copyout()
 using the new size but the application passed a pointer to
 storage which can only hold the old, smaller structure.

I didn't guess that.  Probably this is why X-server crashed on my machine
after that change.  Recompilation fixed the problem.

Thank you.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]


struct ipc_perm

2003-06-18 Thread Dmitry Sivachenko
Hello!

Is there any reason why struct ipc_perm is not protected by #ifdef _KERNEL
in ipc.h?  Is it supposed to be used from userland?

Thanks!
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: struct ipc_perm

2003-06-18 Thread Dmitry Sivachenko
On Wed, Jun 18, 2003 at 06:08:37PM +0200, Gary Jennejohn wrote:
 
 Dmitry Sivachenko writes:
  Hello!
  
  Is there any reason why struct ipc_perm is not protected by #ifdef _KERNEL
  in ipc.h?  Is it supposed to be used from userland?
  
 
 It's needed by ipcs.
 

Ah, I see.  It is visible via struct msqid_ds.

I developed a patch which requires addition of custom field to ipc_perm.
I am trying to imagine which problems can it cause to userland programs.

Any ideas?

Thanks!
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]


Repeated similar panics on -STABLE

2003-04-02 Thread Dmitry Sivachenko
Hello!

We have three machines under relatively high load.  They are running -STABLE
on the same hardware with 2 processors (and SMP kernel).
Periodically (approximately once a week) they panic with similar symptoms:

# gdb -k kernel.debug vmcore.2
GNU gdb 4.18 (FreeBSD)
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for details.
This GDB was configured as i386-unknown-freebsd...Deprecated bfd_read called a
t /mnt/se3/releng_4/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbx
read.c line 2627 in elfstab_build_psymtabs
Deprecated bfd_read called at /mnt/se3/releng_4/src/gnu/usr.bin/binutils/gdb/../
../../../contrib/gdb/gdb/dbxread.c line 933 in fill_symbuf
SMP 2 cpus
IdlePTD at phsyical address 0x0034f000
initial pcb at physical address 0x002bd6a0
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
mp_lock = 0102; cpuid = 1; lapic.id = 
fault virtual address   = 0x5cdd8000
fault code  = supervisor read, page not present
instruction pointer = 0x8:0xc015daff
stack pointer   = 0x10:0xeb278e44
frame pointer   = 0x10:0xeb278e68
code segment= base 0x0, limit 0xf, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags= interrupt enabled, resume, IOPL = 0
current process = 65648 (cronolog)
interrupt mask  = net tty bio cam  - SMP: XXX
trap number = 12
panic: page fault
mp_lock = 0102; cpuid = 1; lapic.id = 
boot() called on cpu#1
syncing disks...
Fatal trap 12: page fault while in kernel mode
mp_lock = 0103; cpuid = 1; lapic.id = 
fault virtual address   = 0x5cdd8000
fault code  = supervisor read, page not present
instruction pointer = 0x8:0xc015daff
stack pointer   = 0x10:0xeb278b68
frame pointer   = 0x10:0xeb278b8c
code segment= base 0x0, limit 0xf, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags= interrupt enabled, resume, IOPL = 0
current process = 65648 (cronolog)
interrupt mask  = net tty bio cam  - SMP: XXX
trap number = 12
panic: page fault
mp_lock = 0103; cpuid = 1; lapic.id = 
boot() called on cpu#1
Uptime: 5d0h48m54s
dumping to dev #da/0x20001, offset 2097280
dump 1023 1022 1021 1020 1019 1018 1017 1016 1015 1014 1013 1012 1011 1010 1009
snip
---
#0  dumpsys () at /mnt/se3/releng_4/src/sys/kern/kern_shutdown.c:487
487 if (dumping++) {
(kgdb) bt
#0  dumpsys () at /mnt/se3/releng_4/src/sys/kern/kern_shutdown.c:487
#1  0xc01620c6 in boot (howto=260)
at /mnt/se3/releng_4/src/sys/kern/kern_shutdown.c:316
#2  0xc0162549 in panic (fmt=0xc028e3b9 %s)
at /mnt/se3/releng_4/src/sys/kern/kern_shutdown.c:595
#3  0xc0251b1a in trap_fatal (frame=0xeb278b28, eva=1558020096)
at /mnt/se3/releng_4/src/sys/i386/i386/trap.c:974
#4  0xc0251775 in trap_pfault (frame=0xeb278b28, usermode=0, eva=1558020096)
at /mnt/se3/releng_4/src/sys/i386/i386/trap.c:867
#5  0xc02512b7 in trap (frame={tf_fs = -65512, tf_es = -941031408,
  tf_ds = -942997488, tf_edi = -1070937504, tf_esi = -730301488,
  tf_ebp = -349729908, tf_isp = -349729964, tf_ebx = -1070870564,
  tf_edx = 1558020096, tf_ecx = 7, tf_eax = 128, tf_trapno = 12,
  tf_err = 0, tf_eip = -1072309505, tf_cs = 8, tf_eflags = 66054,
  tf_esp = 33281, tf_ss = -730301488})
at /mnt/se3/releng_4/src/sys/i386/i386/trap.c:466
#6  0xc015daff in malloc (size=128, type=0xc02aca60, flags=2)
at /mnt/se3/releng_4/src/sys/kern/kern_malloc.c:243
#7  0xc02085e1 in initiate_write_inodeblock (inodedep=0xc8e69400,
bp=0xd4787bd0) at /mnt/se3/releng_4/src/sys/ufs/ffs/ffs_softdep.c:3091
#8  0xc02083b3 in softdep_disk_io_initiation (bp=0xd4787bd0)
at /mnt/se3/releng_4/src/sys/ufs/ffs/ffs_softdep.c:2965
#9  0xc019d51a in spec_strategy (ap=0xeb278c0c)
at /mnt/se3/releng_4/src/sys/miscfs/specfs/spec_vnops.c:453
#10 0xc0188cab in bwrite (bp=0xd4787bd0) at vnode_if.h:944
#11 0xc018e98f in vop_stdbwrite (ap=0xeb278c6c)
at /mnt/se3/releng_4/src/sys/kern/vfs_default.c:344
#12 0xc018e791 in vop_defaultop (ap=0xeb278c6c)
at /mnt/se3/releng_4/src/sys/kern/vfs_default.c:152
#13 0xc0189ce5 in vfs_bio_awrite (bp=0xd4787bd0) at vnode_if.h:1193
#14 0xc019d33f in spec_fsync (ap=0xeb278cd4)
at /mnt/se3/releng_4/src/sys/miscfs/specfs/spec_vnops.c:391
#15 0xc020ca4d in ffs_sync (mp=0xc7ea1a00, waitfor=2, cred=0xc1c6e900,
p=0xc02d25e0) at vnode_if.h:558
#16 0xc01941b7 in sync (p=0xc02d25e0, uap=0x0)
at /mnt/se3/releng_4/src/sys/kern/vfs_syscalls.c:576
#17 0xc0161e7c in boot (howto=256)
at /mnt/se3/releng_4/src/sys/kern/kern_shutdown.c:235
#18 0xc0162549 in 

Re: Repeated similar panics on -STABLE

2003-04-02 Thread Dmitry Sivachenko
On Wed, Apr 02, 2003 at 05:44:28PM +0400, Dmitry Sivachenko wrote:
 Hello!
 
snip

 Fatal trap 12: page fault while in kernel mode
 mp_lock = 0102; cpuid = 1; lapic.id = 
 fault virtual address   = 0x5cdd8000
 fault code  = supervisor read, page not present
 instruction pointer = 0x8:0xc015daff


BTW,

(kgdb) list *0xc015daff
0xc015daff is in malloc (/mnt/se3/releng_4/src/sys/kern/kern_malloc.c:244).
239 freep-next = savedlist;
240 if (kbp-kb_last == NULL)
241 kbp-kb_last = (caddr_t)freep;
242 }
243 va = kbp-kb_next;
244 kbp-kb_next = ((struct freelist *)va)-next;
245 #ifdef INVARIANTS
246 freep = (struct freelist *)va;
247 savedtype = (const char *) freep-type-ks_shortdesc;
248 #if BYTE_ORDER == BIG_ENDIAN
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to [EMAIL PROTECTED]


ffsfsn

2001-04-06 Thread Dmitry Sivachenko

Hello!

What does 'ffsfsn' state (shown in top(1) output) mean?
I am inserting records in Postgres, and the process is going very slowly
probably due to postgres is in this state...

Thanks,
--dima

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



Problem with K6-2/500 CPU

2001-03-10 Thread Dmitry Sivachenko

Hello!

I use recent FreeBSD-4-STABLE.
When I changed my processor from Intel Pentium 200 MMX to AMD K6-2 500,
I can neither recompile operating system nor compile other programs.

From kernel compilation:

cc -c -O -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -ansi  
-nostdinc -I- -I. -I../.. -I../../../include  -D_KERNEL -include opt_global.h -elf  
-mpreferred-stack-boundary=2  ../../ufs/ffs/ffs_softdep.c
cc: Internal compiler error: program cc1 got fatal signal 11
*** Error code 1

Stop in /usr/src/sys/compile/CAVIA.



From compilation of base system:

cc -O -pipe -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/share/locale\"  
-I/usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo 
-I/usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/lib   
-I/usr/obj/usr/src/i386/usr/include -c 
/usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/makeinfo/node.c
cc: Internal compiler error: program cc1 got fatal signal 4
*** Error code 1

Stop in /usr/src/gnu/usr.bin/texinfo/makeinfo.
*** Error code 1

Stop in /usr/src/gnu/usr.bin/texinfo.
*** Error code 1


What should I do in order to use FreeBSD on K6-2/500 processor?

Please find my kernel config file attached.

I'll be glad to provide futher information if necessary.

Thank you in advance,
Dima.


#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.8 2000/07/20 02:51:02 msmith Exp $

machine i386
#cpuI386_CPU
#cpuI486_CPU
cpu I586_CPU
cpu I686_CPU
ident   CAVIA
maxusers32

#makeoptionsDEBUG=-g#Build kernel with gdb(1) debug symbols

options CPU_WT_ALLOC

options MATH_EMULATE#Support for x87 emulation
options INET#InterNETworking
#optionsINET6   #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
options FFS_ROOT#FFS usable as root device [keep this!]
options SOFTUPDATES #Enable FFS soft updates support
options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root device
#optionsNFS #Network Filesystem
#optionsNFS_ROOT#NFS usable as root device, NFS required
options MSDOSFS #MSDOS Filesystem
options CD9660  #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 required
options PROCFS  #Process filesystem
options COMPAT_43   #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15000#Delay (in ms) before probing SCSI
options UCONSOLE#Allow users to grab the console
options USERCONFIG  #boot -c editor
options VISUAL_USERCONFIG   #visual boot -c editor
options KTRACE  #ktrace(1) support
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options P1003_1B#Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM#Rate limit bad replies
options KBD_INSTALL_CDEV# install a CDEV entry in /dev

# To make an SMP kernel, the next two are needed
#optionsSMP # Symmetric MultiProcessor Kernel
#optionsAPIC_IO # Symmetric (APIC) I/O
# Optionally these may need tweaked, (defaults shown):
#optionsNCPU=2  # number of CPUs
#optionsNBUS=4  # number of busses
#optionsNAPIC=1 # number of IO APICs
#optionsNINTR=24# number of INTs

device  isa
device  eisa
device  pci

# Floppy drives
device  fdc0at isa? port IO_FD1 irq 6 drq 2
device  fd0 at fdc0 drive 0
device  fd1 at fdc0 drive 1

# ATA and ATAPI devices
device  ata0at isa? port IO_WD1 irq