Quantcast

Unexpected "Out of memory" on T2000

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Unexpected "Out of memory" on T2000

Meelis Roos
I decided to try OpenBSD-sparc64 on my Sun T2000 (Niagara T1, 32
threads, 16G RAM). CD install of 5.7 went fine, pkg_add installed git
vim and gcc from official mirro fine.

Now as a test (to compare oranges to oranges) I tried to check out Linux
kernel git repository but that ran out of memory:

$ git clone
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Cloning into 'linux'...
remote: Counting objects: 4153047, done.
remote: Compressing objects: 100% (1931/1931), done.
remote: Total 4153047 (delta 1105), reused 0 (delta 0)
Receiving objects: 100% (4153047/4153047), 921.61 MiB | 1.11 MiB/s, done.
fatal: Out of memory, malloc failed (tried to allocate 40960 bytes)
fatal: index-pack failed

The server had more than 15G RAM available. This command fails on 64M
RAM but works on different 128M-256M machines fine (with Linux).

ALso tried hackbench from
http://people.redhat.com/mingo/cfs-scheduler/tools/hackbench.c to run
the same benchmark as in Linux and Solaris:

/hackbench 150 process 1000
Running with 150*40 (== 6000) tasks.
fork() (error: Resource temporarily unavailable)

Out of memory in fork() too.

After that, fork() fail for everything.

dmesg of a fresh boot is included below (nothing in /var/log/messages).

Am I missing something about OpenBSD sparc64 memory management?

I can give a developer access to the machine (and its ILO) via ssh if
this is unique enough.

console is /virtual-devices@100/console@1
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2015 OpenBSD. All rights reserved.  http://www.OpenBSD.org

OpenBSD 5.7 (GENERIC.MP) #489: Sun Mar  8 14:08:49 MDT 2015
    [hidden email]:/usr/src/sys/arch/sparc64/compile/GENERIC.MP
real mem = 17045651456 (16256MB)
avail mem = 16759906304 (15983MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root: Sun Fire T200
cpu0 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu1 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu2 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu3 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu4 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu5 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu6 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu7 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu8 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu9 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu10 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu11 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu12 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu13 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu14 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu15 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu16 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu17 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu18 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu19 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu20 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu21 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu22 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu23 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu24 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu25 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu26 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu27 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu28 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu29 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu30 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
cpu31 at mainbus0: SUNW,UltraSPARC-T1 (rev 0.0) @ 1000 MHz
vbus0 at mainbus0
"flashprom" at vbus0 not configured
cbus0 at vbus0
vldc0 at cbus0
vldcp0 at vldc0 chan 0x0: ivec 0x0, 0x1 channel "hvctl"
"ldom-primary" at vldc0 chan 0x1 not configured
"fmactl" at vldc0 chan 0x3 not configured
vldc1 at cbus0
"ldmfma" at vldc1 chan 0x4 not configured
vldc2 at cbus0
vldcp1 at vldc2 chan 0x14: ivec 0x28, 0x29 channel "spds"
"system-management" at vldc2 chan 0xd not configured
vcons0 at vbus0: ivec 0x111, console
vrtc0 at vbus0
"fma" at vbus0 not configured
"sunvts" at vbus0 not configured
"sunmc" at vbus0 not configured
"explorer" at vbus0 not configured
"led" at vbus0 not configured
"flashupdate" at vbus0 not configured
"ncp" at vbus0 not configured
vpci0 at mainbus0: bus 2 to 7, dvma map 80000000-ffffffff
pci0 at vpci0
ppb0 at pci0 dev 0 function 0 "PLX PEX 8532" rev 0xbc
pci1 at ppb0 bus 3
ppb1 at pci1 dev 1 function 0 "PLX PEX 8532" rev 0xbc
pci2 at ppb1 bus 4
em0 at pci2 dev 0 function 0 "Intel 82571EB" rev 0x06: ivec 0x795, address 00:14:4f:86:99:26
em1 at pci2 dev 0 function 1 "Intel 82571EB" rev 0x06: ivec 0x796, address 00:14:4f:86:99:27
ppb2 at pci1 dev 2 function 0 "PLX PEX 8532" rev 0xbc
pci3 at ppb2 bus 5
ppb3 at pci1 dev 8 function 0 "PLX PEX 8532" rev 0xbc: msi
pci4 at ppb3 bus 6
ppb4 at pci1 dev 9 function 0 "PLX PEX 8532" rev 0xbc
pci5 at ppb4 bus 7
mpi0 at pci5 dev 0 function 0 "Symbios Logic SAS1064E" rev 0x02: msi
mpi0: UNUSED, firmware 1.9.0.0
scsibus1 at mpi0: 63 targets
sym0 at scsibus1 targ 0 lun 0: <FUJITSU, MAY2073RCSUN72G, 0401> SCSI2 0/direct fixed naa.500000e011e2fa70
sd0 at scsibus0 targ 0 lun 0: <FUJITSU, MAY2073RCSUN72G, 0401> SCSI2 0/direct fixed naa.500000e011e2fa70
sd0: 70007MB, 512 bytes/sector, 143374738 sectors
sym1 at scsibus1 targ 1 lun 0: <FUJITSU, MAY2073RCSUN72G, 0401> SCSI2 0/direct fixed naa.500000e01235d850
sd1 at scsibus0 targ 1 lun 0: <FUJITSU, MAY2073RCSUN72G, 0401> SCSI2 0/direct fixed naa.500000e01235d850
sd1: 70007MB, 512 bytes/sector, 143374738 sectors
sym2 at scsibus1 targ 2 lun 0: <SEAGATE, ST973401LSUN72G, 0556> SCSI3 0/direct fixed serial.SEAGATE_ST973401LSUN72G_1011LCEK_3LB1LCEK
sd2 at scsibus0 targ 2 lun 0: <SEAGATE, ST973401LSUN72G, 0556> SCSI3 0/direct fixed serial.SEAGATE_ST973401LSUN72G_1011LCEK_3LB1LCEK
sd2: 70007MB, 512 bytes/sector, 143374738 sectors
sd3 at scsibus1 targ 3 lun 0: <HITACHI, H101473SCSUN72G, SA25> SCSI3 0/direct fixed naa.5000cca000326634
sd3: 70007MB, 512 bytes/sector, 143374738 sectors
vpci1 at mainbus0: bus 2 to 9, dvma map 80000000-ffffffff
pci6 at vpci1
ppb5 at pci6 dev 0 function 0 "PLX PEX 8532" rev 0xbc
pci7 at ppb5 bus 3
ppb6 at pci7 dev 1 function 0 "PLX PEX 8532" rev 0xbc
pci8 at ppb6 bus 4
ppb7 at pci8 dev 0 function 0 "Intel 41210 PCIE-PCIX" rev 0x09
pci9 at ppb7 bus 5
ebus0 at pci9 dev 2 function 0 "Acer Labs M1533 ISA" rev 0x00
com0 at ebus0 addr 3f8-3ff ivec 0x2: ns16550a, 16 byte fifo
ohci0 at pci9 dev 5 function 0 "Acer Labs M5237 USB" rev 0x03: ivec 0x7c1, version 1.0, legacy support
ohci1 at pci9 dev 6 function 0 "Acer Labs M5237 USB" rev 0x03: ivec 0x7c3, version 1.0, legacy support
pciide0 at pci9 dev 8 function 0 "Acer Labs M5229 UDMA IDE" rev 0xc4: DMA, channel 0 configured to native-PCI, channel 1 configured to native-PCI
pciide0: using ivec 0x7c4 for native-PCI interrupt
atapiscsi0 at pciide0 channel 0 drive 0
scsibus2 at atapiscsi0: 2 targets
cd0 at scsibus2 targ 0 lun 0: <MATSHITA, CD-RW CW-8124, DZ15> ATAPI 5/cdrom removable
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
pciide0: channel 1 disabled (no drives)
usb0 at ohci0: USB revision 1.0
uhub0 at usb0 "Acer Labs OHCI root hub" rev 1.00/1.00 addr 1
usb1 at ohci1: USB revision 1.0
uhub1 at usb1 "Acer Labs OHCI root hub" rev 1.00/1.00 addr 1
ppb8 at pci8 dev 0 function 2 "Intel 41210 PCIE-PCIX" rev 0x09
pci10 at ppb8 bus 6
ppb9 at pci7 dev 2 function 0 "PLX PEX 8532" rev 0xbc
pci11 at ppb9 bus 7
em2 at pci11 dev 0 function 0 "Intel 82571EB" rev 0x06: ivec 0x7d6, address 00:14:4f:86:99:28
em3 at pci11 dev 0 function 1 "Intel 82571EB" rev 0x06: ivec 0x7d7, address 00:14:4f:86:99:29
ppb10 at pci7 dev 8 function 0 "PLX PEX 8532" rev 0xbc: msi
pci12 at ppb10 bus 8
ppb11 at pci7 dev 9 function 0 "PLX PEX 8532" rev 0xbc: msi
pci13 at ppb11 bus 9
uhub2 at uhub1 port 1 "Atmel UHB124 hub" rev 1.10/3.00 addr 2
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
bootpath: /pci@780,0/pci@0,0/pci@9,0/scsi@0,0/disk@3,0
root on sd3a (6a202f7af84639b0.a) swap on sd3b dump on sd3b

--
Meelis Roos ([hidden email])

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Unexpected "Out of memory" on T2000

Mark Kettenis
> Date: Mon, 15 Jun 2015 19:05:37 +0300 (EEST)
> From: Meelis Roos <[hidden email]>

Hi Meelis,

> I decided to try OpenBSD-sparc64 on my Sun T2000 (Niagara T1, 32
> threads, 16G RAM). CD install of 5.7 went fine, pkg_add installed git
> vim and gcc from official mirro fine.
>
> Now as a test (to compare oranges to oranges) I tried to check out Linux
> kernel git repository but that ran out of memory:
>
> $ git clone
> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> Cloning into 'linux'...
> remote: Counting objects: 4153047, done.
> remote: Compressing objects: 100% (1931/1931), done.
> remote: Total 4153047 (delta 1105), reused 0 (delta 0)
> Receiving objects: 100% (4153047/4153047), 921.61 MiB | 1.11 MiB/s, done.
> fatal: Out of memory, malloc failed (tried to allocate 40960 bytes)
> fatal: index-pack failed
>
> The server had more than 15G RAM available. This command fails on 64M
> RAM but works on different 128M-256M machines fine (with Linux).
>
> ALso tried hackbench from
> http://people.redhat.com/mingo/cfs-scheduler/tools/hackbench.c to run
> the same benchmark as in Linux and Solaris:
>
> /hackbench 150 process 1000
> Running with 150*40 (== 6000) tasks.
> fork() (error: Resource temporarily unavailable)
>
> Out of memory in fork() too.
>
> After that, fork() fail for everything.
>
> dmesg of a fresh boot is included below (nothing in /var/log/messages).
>
> Am I missing something about OpenBSD sparc64 memory management?

By default OpenBSD has its resource limits set to fairly low values.
For example, the max data size (RLIMIT_DATA) is set to 512M and the
max number of processes per user (RLIMIT_NPROC) is set to 128.  You
can raise them with the ulimit shell builtin (see ksh(1)), but there
are hard limits that depend on the login class of thew user.  The soft
limits can be displayed with "ulimit -a", the hard limits with "ulimit
-aH".  See login.conf(5) for how to change the defaults.

The ultimate hard limits compiled into the OpenBSD/sparc64 GENERIC.MP
kernel are 8G for the maximum data size and 1054 for the maximum
number of processes.  Raising the number of processes to be able to
run your fork bomb benchmark would require changing the "maxusers"
parameter in /usr/src/sys/arch/sparc64/conf/GENERIC and rebuilding
your kernel.  This is not recommended.

Cheers,

Mark

Loading...