[Home]Latency-Test

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Latency-test comes with LinuxCNC, you can run it with 'latency-test' from the prompt. For details, see WhatLatencyTestDoes.

Let the test run for at least 15 minutes (it has been suggested that the longer the better let it run for a day or overnight for instance) while you run glxgears or a similar application to stress the cpu. Move around windows, surf the web, copy files, play music etc.

If you have a multi-cpu machine, it is helpful to report results with the isolcpus boot parameter set appropriately (see elsewhere in this wiki).

Note that the numbers reported in this test are extremely precise but not necessarily extremely reproducible. Results may vary by 1000 ns from one invocation to another (e.g., by a few microseconds).

If you want to add information to this page or add a new page, follow some BasicSteps.

So, what do the results mean? If your "Max Jitter" number is less than about 15-20 microseconds (15000-20000 nanoseconds), the computer should give very nice results with software stepping. If the Max Jitter is more like 30-50 microseconds, you can still get good results, but your maximum step rate might be a little disappointing, especially if you use microstepping or have very fine pitch leadscrews. If the numbers are 100 uS or more (100,000 nanoseconds), then the PC is not a good candidate for software stepping. Numbers over 1 millisecond (1,000,000 nanoseconds) mean the PC is not a good candidate for LinuxCNC, regardless of whether you use software stepping or not.

What can be done about improving latency? See these pages:
FixingSMIIssues
TroubleShooting
If you are going to use software stepping, then read this:
TweakingSoftwareStepGeneration

Hardware that works

MotherboardCPUOther hardware commentsMax Interval (1.0 ms thread)Max Jitter(ns) 1.0 ms threadMax Interval (25 us thread)Max Jitter (25 us thread)Realtime flavour
ABIT KT7A-RAID AMD Athlon Thunderbird 1200+ (1.2GHz) ATI Radeon RV100 QY (VE/7000) AGP Card. Disable RAID in BIOS. SIIG LPT2 ISA Card. 3COM Fast Etherlink XL PCI. 2x 256MB Kingston RAM (512 MB). Sinlge HDD and CD-ROM. VESA driver. 1006741 10815 40234 17746
ABIT KT7A-RAID AMD Athlon Thunderbird 1200+ (1.2GHz) ATI 3D Rage IIC AGP Card. Disable RAID in BIOS. SIIG LPT2 ISA Card. 3COM Fast Etherlink XL PCI. 2x 256MB Kingston RAM (512 MB). Sinlge HDD and CD-ROM. VESA driver. 1006520 10206 39454 16567
Acer 5900pro PC Intel P4 1.8GHz dual core 4GB RAM, Ubuntu 10.04 LTS, EIST off, C1E off, Spread Spectrum off, Disable Audio and network support, On-board video, Running GLXGEARS and reading PDFs 1001347 5347 29795 5001
Acer M3970G Intel i5-2320 @ 3.0 GHz 4GB Ram, Radeon HD 7350, Seagate Barracuda 1TB 7200rpm, Ubuntu 12.04.4 LTS, GRUB 1.99-21ubuntu3.14, "isolcpus=1,2,3", with "cpu hog" running, 3 GLXGEARS, surfing web, listening to music, system monitor running, and making this entry. Roughly 2 hour test. Also tested with no CPUs isolated, but running four "cpu hogs". That performed about twice as good as no "cpu hogs", but it performed best as shown here with one CPU maxed out. 995395 1275 27350 2497 3.4.55-rtai-2
Advantech PCM-9588 Celeron @ 1.0 GHz Intel 910GMLE Video Card, 1g RAM, Mesa 4i65, Award BIOS 1004842 8337 36363 12058
ASRock K10N78FullHD-hSLI R3.0 Athlon 64 X2 6000+ and NVidia 9800GTX+ 4GB Ram + Booted from 8.04 LiveCD + 10*Glxgears + 1hour 1005000 6811 39818 15513
ASRock H61M-HVS Intel Celeron G530 4GB Ram, isolcpus=1, C1E/C3/C6 suspend states disabled in BIOS, ATI Radeon 2400HD w/ "radeon" driver.
Full details: http://sourceforge.net/mailarchive/forum.php?thread_name=5b3301cccd23%241a33e5e0%244e9bb1a0%24%40d-silva.org&forum_name=emc-users
992204 4364 29631 4935
ASRock P4i65G Intel Pentium 4 @ 3.0 Ghz using onboard video
1 GB RAM
1007169 11193 36043 11738
ASRock PV530A-ITX VIA PV530@1.8GHz, 4GB Ram ATI Radeon 9200 Pro (256 MB) PCI card. Networking OFF. Ubuntu 10.04. Kingston SSD. glxgears running @ 390 fps. Note: Axis choked using on-board video. Measured 33 Watts total power draw by Mini-ITX computer running LinuxCNC 1001094 5934 33281 9325
ASRock FM2A88M-HD+ AMD A4-4000 Dual Core 3.2GHZ Max Turbo, 3.0 GHZ Base, 10.04, All Power saving features disabled in BIOS, Bios updated to VER 2.40, ISOLCPUS Enabled, IRQBalance un-installed, Disabled/Turned? Off spread spectrum, turbo core, APM, C6, cool'n'quiet, SVM, cpu throttle, suspend to RAM1011623 13758 32252 7966
ASRock E350M1 mini-itx AMD Dual-Core Zacate E350/E350D APU 1.6GHz 12.04, 3.4.55 RTAI, All power management disabled in BIOS, Disabled Spread Spectrum, Turbo Core, APM, C6, Cool'n'quiet, SVM, Cpu Throttle, Suspend to RAM, Kernel options "isolcpus=1 acpi_irq_nobalance noirqbalance", Upstart script "irq-affinity.conf" to /etc/init 998163 5365 2714 2176
ASRock E350M1 mini-itx AMD Dual-Core Zacate E350/E350D APU 1.6GHz 12.04, 3.4.9 RTAI, default BIOS, default kernel options. SSD, 2 GB 667 MHz RAM. Multiple YouTube? videos, glxgears, file operations, etc for approx 20 min 1005722 13553 37753 13358
ASUS AT5NM10-I Intel D510 1.66GHz Ubuntu10.04LTS 2.6.32-122-rtai kernel 2GB RAM, 30GB SATA/SSD, hyperthreading disabled, PS/2 keyboard and mouse, no isolcpus parameter, test ran 15m with 2Xglxgears, web surfing, taking directory listing of external USB HD, playing movie from external HD in VLC 1005425 12225 39555 15616
ASUS AT5NM10-I Intel D510 1.66GHz Ubuntu10.04LTS 2.6.32-122-rtai kernel 2GB RAM, 30GB SATA/SSD, hyperthreading disabled, PS/2 keyboard and mouse, isolcpus=1 parameter, same test as above - 6395 - 9073
ASUS AT5NM10-I Intel D510 1.66GHz Ubuntu10.04LTS 2.6.32-122-rtai kernel 2GB RAM, 30GB SATA/SSD, hyperthreading disabled, no keyboard and mouse, isolcpus=1 parameter, running headless with Gnome and X shut down, same test as above while logged in via ssh -Y from remote computer 996411 3211 27885 3222
ASUS M4N78-SE AMD Athlon II X2 250 - 3.0GHz Asus HDATI 3450 256MB graphics card10048558403 38677 14372
ASUS P4P800-VM Intel Pentium 4 - 3.0GHz Bios A.M. 1014.006, 1GB SDRam, Intel 82865 controller
on board video/network/serial/parallel/usb/AC97 sound
1006527101963576812023
ASUS P4S800D-X 2.6GHZ Pentium 4 GeForce MX4000 AGP 100549389883536812443
ASUS P3C2000 600MHZ Pentium III ATI Rage AGP (might be on the edge) 1029886333814922124916
ASUS P5B DELUXEINTEL PENTIUM D915 2800MhzASUS ATI RADEON EAH2400XT, 1Gb RAM1021102245975513530830
ASUS P5B DELUXE Core2Duo E6600 2x2.4 GHz Radeon X300 with 128MB, 4 GB Corsair PC2-800 CL4 RAM, 80GB Samsung IDE HDD, applied tweaks for multicore IRQ remapping (http://www.linuxcnc.org/index.php/german/forum/18-computer/25927-reducing-latency-on-multicore-pcs-success?start=10#36865), tested for 1 hour with 5 glxgears and full HD video playback 998780 3313 28048 3206
ASUS PC-DLDual Xeon 3.06 (HT Off,P4 style)Nvidia 6600GT with binary driver, on SMP kernel, Note there is a ~40k latency spike when *starting* openGL windows, all results are with GLX gears running, as well as xchat and firefox while installing a bunch of software9935626471270112458
ASUS E35M1-IAMD Fusion E-350 Dual Core 1.6GHz8GB RAM, LinuxCNC liveCD 10.04, BIOS disabled auto over clocking & C6 (aggressive sleep mode), burn in with 4 hour stress test (I'm a programmer) stress -c 16 -i 16 -m 16 -t 14400"100151212009340039198
Asus M488T-M AMD Athlon II X4 640 3GHz 10.04LTS installed from LiveCD, onboard ATI Radeon 4250 video, 4GB RAM, C1E off in bios, 3-hour latency-test run with usual torture tests 1004378 7258 29312 4384
Asus M488T-M AMD Athlon II X4 640 3GHz 10.04LTS installed from LiveCD, onboard ATI Radeon 4250 video, 4GB RAM, C1E off in bios, isolcpus=3, 3-hour latency-test run with usual torture tests 1001521 4401 27306 2378
Asus M5A88-M EVO AMD Athlon II X2 250 3GHz 10.04LTS, ATI/AMD Radeon XFX HD 5450 512MB C1E off in bios, instances of "gzip -c /dev/urandom > /dev/null" to load up CPUs to 100% 1002993 4513 27267 2305
Asus M5A88-M EVO AMD Athlon II X2 250 3GHz 10.04LTS, onboard Graphics 512MB, C1E off in bios, instances of "gzip -c /dev/urandom > /dev/null" to load up CPUs to 100% 1003210 4730 28967 4005
Asus A7N8X AMD Athlon-XP Barton @2.3GHz Gentoo x86, GeForce2 MX400 nv 2x512MB 1007436 7796 33046 8055
Asus P5P41D Intel Core2Duo E7400 2.8GHz Ubuntu 10.01 Live CD, PNY PCI-E GeForce 7300 256mb 1010178 20111 42055 22584
Asus P5G41-M LE/CSM Intel Core2Duo E6550 2.3GHz Ubuntu 10.04 LTS, 2G DDR2 1066 Ram (2) 1g sticks, Mesa 5i20, onboard Intel GMA X4500 Video, Intel G41 Chipset, Disabled ACPI, everything just worked 1033641 37161 41631 16719
Biostar M7VIG 400, rev. 7.3 AMD Athlon XP 2600+ 512mB RAM, AGP video card running "vesa" driver (STG4000 [3D Prophet Kyro Series] (rev 01)) 1,006,353 9,848 39,247 15,099
Commell FS-97DXG2 Intel Core2Duo E6750 2.66Ghz PICMG CPU card, backplane = 14xISA 4xPCI, 2x1GB DDR2 800 (dual channel), 8GB 266x CF via SATA->CF (DMA active), LVDS+VGA via Intel G35 (onboard), C1E OFF, APIC 1.4 ON, PWR SAV @ MIN, Mesa 5i20, 10.04 LTS with 2.5.4, ISOLCPUS=1, 14 hour run of glxgears x6, "gzip -c /dev/urandom > /dev/null" (thanks for idea), pdfs, firefox video, DVD playing via USB etc. Pleasing numbers, I thought. 1000048 3998 29405 4493
Compaq Deskpro EN 1GHZ Pentium III Onboard video - Di/sable power saving in bios - Nice machine1011400148953574811876
Dell D600 w/SMI fix, Dapper 1.7GHz Firefox, Ooo 3.0, Boot with wireless PCMCIA card seems to give immediate unacceptable results (>1.8ms), requires more checking - should check latency-test after boot 1010992 14770 43575 19270
Dell Dimension 2400
Intel 845GV chipset
BIOS ver.A05
2.66GHz Pentium 4
512KB cache
1GB RAM - Integrated Intel 3D Extreme Graphics 1006298 9905 35597 11875
Dell Dimension 3100 3GHz P4 Intel 915G chipset, BIOS ver.A04, 512MB, Only 2 PCI slots
No Built in Serial or Parallel Ports!!!
Onboard video - must disable SMI
1009636 13135 41260 19167
Dell Dimension XPS T450
Intel 440BX AGPset
BIOS ver.A04
450MHz Pentium III
512KB cache
384MB RAM
ATI Rage 128 AGP
1020462 25170 40680 16375
Dell Dimension 4100 Intel 866 PIII Intel 815 chipset, nVidea NV34 GeForce FX5200 AGP 128mb video(upgrade), Admtek NC100 10/100 network, 512Mb PC133 ram, legacy usb=disabled and PNP OS=YES, COM1=enabled, LPT=Bidirectional in bios 1010073 13863 37657 13352
Dell Inspiron 530S Intel(R) Celeron(R) CPU 450 @ 2.20GHz open glxgears two dozen times and rescaled a small image to 10000 its size 1009695 13833 38635 14386
Dell Inspiron 8500 Intel Pentium Mobile 2GHz FixingSMIIssues 1006175 12080 36855 12735
Dell Optiplex GX270 2.8GHZ Pentium 4 Onboard video - must disable SMI 100636099523597611689
Dell Optiplex 360 E7200 @ 2.53 GHz Intel G31 onboard Video. SMP Kernel 1010913 16443 39908 14966
Dell Optiplex GX240 1.8GHZ Pentium 4 Ati Rage AGP must disable SMI Caveat:- later versions used the 82801BA_12 chipset which is not one of the ones causing SMI problems. Check the chipset by running lspci -vv and run latency tests before automatically trying to load the rtai_smi module 1010203136983887514714
Dell Optiplex GX150 P3 1GHz remote access, NOT using onboard video 1004741 8236 39224 14919
Dell Optiplex 745 Intel Core2 Duo 6300 1.86GHz 3GB RAM, onboard Intel graphics, no bios adjustments or cpu isolation, 1-hour latency-test run from LiveCD?, usual torture tests 163063 63823 49578 24597
Dell D600 1.6GHz + ATI Mobility 2GB Ram; Ubuntu 8.04 installed from LiveCD + SMI Fix + 10*Glxgears + 1hour 1703642 707137 103020 78715
Dell D600 1.6GHz + ATI Mobility 2GB Ram; Ubuntu 8.04 installed from LiveCD + without SMI fix + 10*Glxgears -> unusable 37066563 36070058 36060747 36036442
Dell Optiplex 745 SFFDual Core 2.13 Ghz2 GB Ram, 10.04 Live CD (8.04 gave blank screen)1064158649184961024629
ECS KM400-M2 (V1.0) Sempron 2200 On-board Video 1,005,717 9,460 33,956 9,930
ECS Goal3 AMD Athlon 64 3200+ Ati radeon HD 4650 pci-e video card - on board video seems to work OK for latency but has issue with on screen 'noise' at higher res/color depths 10012535044298676203
eMachines ET1331-45 Athalon II X2 255 dual core - 64 bit (3.1GHz) Asus GeoForce 210 1GB DDR3 (EN210SILENTDI3) video (proprietary driver "current") + PC 3GB DDR2 RAM + PCI parport Manhattan 158220 - 20 hr test max spike numbers 30% more than typical for all numbers. Spike coincides w/ maximizing flash video window in Firefox. Anything else keeps lower numbers. Before installing video card (using on board video), typical numbers were similar, but with spikes ~2X current max numbers. 1008590 14710 36912 13582
Fujitsu-Siemens Green PCPentium 4 2.4 GHzLow profile desktop with mini ATX board and Intel 82801EB/ER (ICH5/ICH5R) chipset & 82865G graphics. Running 8.04 with stock 2.6.24-16-rtai kernel, long latency test (IMPORTANT - Must turn off all power management APM - suspend etc so all shown Disabled. Also set fan to Enhanced - on all the time so no temp sensing- otherwise will have 64 sec spikes like smi, but smi module will not work with this chipset)10033416836339589653
Gigabyte F2A85X-UP4 AMD A8 5600K 3.9GHz Quad Core Gentoo 3.4.55 RTAI, 8GB RAM with PAE, All power management disabled in BIOS, Disabled Spread Spectrum, Turbo Core, APM, C6, Cool'n'quiet, SVM, Cpu Throttle, Suspend to RAM 999004 4978 29532 4981
Gigabyte GA-MA785GM-UD2H Athlon Dual Core 4850e and onboard graphic 6GB Ram + Booted from 8.04 LiveCD + 10*Glxgears + 1hour 1005612 9141 34062 9757
Gigabyte GA-MA785GSM-US2H Phenom II X4 920 2.8GHzOnboard graphics, 8GB Ram, 10.04, 2.6.32 RTAI, All power management disabled in BIOS, Kernel options "isolcpus=1 acpi_irq_nobalance noirqbalance", Upstart script "irq-affinity.conf" to /etc/init 1000452 5492 31920 7046
Gigabyte GA-P35-S3G E4600 Core Duo- 2.4GHz XFX GeForce 8400GS 256mb graphics card10024435982 34275 9970
Gigabyte GA-P35-S3G E4600 Core Duo- 2.4GHz Asus GeForce 8600GT 512mb graphics card10060829577 34775 10580
Gigabyte GA-E350N mini-ITX AMD E-350D/A45/rev3.0 Dual 1.6 GHz 3.2 GB RAM, Integrated AMD HD 6310 graphics with 384 MB, AMD Catalyst Version 10.12., Ubuntu 10.04, 2.6.32-122-rtai kernel, isolcpus=1, 1 hour test 995422 7468 29337 4869
Gigabyte GA-E350N v3.0 mini-ITX AMD E-350D/A45 Dual 1.6 Ghz 4 GB Kingston KHX1600C9D3K2/4GX RAM, 64GB OCZ Agility SSD, applied tweaks for multicore IRQ remapping, tested for 24 hours with 2 glxgears and flash/text firefox browser running 992803 4603 28321 3669
Gigabyte GA-D525TUD mini-ITX Atom D525 1.8Ghz 2 GB RAM, BIOS:CPU MULTI=DISABLED CPU SMARTFAN=DISABLED Azealea and other unused devices=DISABLED, noirqbalance grub mod, 2 glxgears for 2 hours 101128141421539017561
Gigabyte H61M-S2PH Micro-ATX Intel Pentium G860 3.0Ghz 4 GB RAM, BIOS:CPU advance CPU settings all disabled, SMI enabled, no isolcpu used, tested with burnP5 and a big glxgears for 20 minutes99229146153558211887
Gigabyte H61M-S2PH Micro-ATX Intel Pentium G2010 3.0Ghz 4 GB RAM, BIOS:CPU advance CPU settings all disabled, SMI enabled, no isolcpu used, tested with burnP6 and 4 GLX gears, and focing the cpu in other ways with flash, and moving big files 9926295996336169457
Gigabyte P35-DS4 Intel Core 2 Quad CPU Q6600 2.40GHz 2 GB DDR2 800 Mhz. Reducing clock multiplicator from 9 to 8 improved latency. VT enabled. ATI Radeon HD 2600XT, Open Source driver (OpenGL? xserver), isolcpus=3; Load: stress -c 16 -i 1 -m 1 -t 36000, watch dvd and youtube, browse, virtual windows machine (vmware player) 1000079 4079 30494 5632
Gigabyte J1800 and J1900 Mini ITX Intel Atom WARNING - Rev 2 of BIOS does not work with anything but Win 8 and unable to detect any file systems. Even when updated reports of complete incompatibility with rtai kernels, usb does not work etc. etc.    
HP Compaq 8100 Elite CMT PC, HP 304Bh i7-860 @ 2.80GHz 10.04LTS LiveCD, nVidia GT215(GeForce GT 240), HT enabled in BIOS, 8 CPUs shown to OS. many instances of "gzip -c /dev/urandom > /dev/null" to load up CPUs to 100%, ran test for 10-15min 991469 9885 30647 5934
HP Paviliion t3000 on-board graphic (Radeon Xpress G800)AMD2.4 GHzJitter increased dramatically with network use. I won't have a network connection to the machine.1014699176494316818448
HP DC7600P4 3Ghz 4GB RAM, On board video, Ubuntu 10.04 LTS installed from LiveCD?, HT Disabled in BIOS, 2x glxgears running, snd kernel modules disables, SMI disabled10005876107312926430
HP DC5000 Micro TowerP4 3.0 GHz2 GB Ram, Ubuntu 10.041009254148634786623004
HP DC5000 Micro TowerP4 3.0 GHz2 GB Ram, Ubuntu 8.04, same machine as above. Latency was higher than 10.04 but nonetheless it ran the 201 Gecko much better than 10.041021854253496355839253
HP DC5000 Micro Tower #2P4 3.0 GHz1 GB Ram, 8.04 Live CD (wouldn't run 10.04)1045225487206398539680
HP DC5000 Micro Tower #2P4 3.0 GHz1 GB Ram, 8.04 installed to HD1020793242885805233747
HP DC7600 (UK)P4 (531) 3Ghz4GB Ram (same results using 1GB). On-board i915 graphics. LinuxCNC 10.04 installed to 40GB Sata (same results with 8.04 AND Debian Wheezy with custom kernels). BIOS settings: load defaults and set "Idle Power Saving" = Normal and Hyperthreading = Disable and "Device Security > System Audio" = hidden. Disabling ACPI/networking/etc gave no improvement. Tested SMI fix but NOT required on 82801GB chipset. Will run <7K with minimal loading (as reported above). Given a more realistic test by opening/closing Firefox approx 10 - 15 times - this will produce worst-case latency within minutes.100499865985038325423RTAI
HP / Compaq DC7800 SFFCore 2 Duo (E6750) 2,66Ghz4GB Ram. On-board Intel GMA graphics. Disabled all energy saving parameters in BIOS. Disabled Audio and the 2 serial ports. System has onboard parallel port with EPP+ECP set. If you let the Computer run for about 30 min. jitter values will increase (around 5-7%). Disabeling of components doesn't have to much impact. Installed from Live CD (Debian, LinuxCNC 2.6, Sept. 2014). Values are approx.1032000345003600012500
Intel D425KT Mini ITXIntel Atom D425 single core 1.8GHz2GB RAM, disabled Hyperthreading, disabled onboard audio, LinuxCNC liveCD 10.04, 4 x glxgears + firefox running for 10 hours1010059149154376920283
IBM PC 300GL PII 400 MHz 128MB RAM Ubuntu804 S3Trio 3D graphics Networking disabled 1004298 7793 32224 7995
IBM Thinkpad T40 (Type 2373)Intel(R) Pentium(R) M processor 1500MHz 749MB RAM, 6GB HD, port 0x3BC, must boot with lapic option (details http://support.lenovo.com/en_US/detail.page?LegacyDocID=MIGR-58185) 1008062 12822 45352 20955
IBM Thinkpad 600X w/ Bios version 1.11 PIII 500 MHz 320mb RAM. Runs great with Ubuntu 8.04. Lousy with 6.06. 1009205 12700 42175 17870
Intel D201GLY Mini-ITX
Integrated SiS Mirage 1 graphics
SiS662 Northbridge SiS964L Southbridge
Integrated Intel Celeron 215 1.33GHz CPU
w/Heatsink and Fan
Shared video mem set to 128Mb

Marginal for use with
software step generation?
1086886903816652742222
Intel DG33BU E6850 Core 2 Duo, 3 GHz Asus GeForce 8200 graphics card10045548879 3515113099
Intel D945GCLF2 mini-ITX Atom 330 2x 1.6Ghz Specifications:
http://www.intel.com/products/desktop/motherboards/D945gclf2/D945gclf2-overview.htm
Note: Tested using xubuntu
1002816 6484 30998 7148
Intel D525MW mini-ITX Atom D525 1.8Ghz Note: Tested using ubuntu 10.04 1010065155953680011921
Intel D945GCLF2 mini-ITX Atom 330 2x 1.6Ghz
1 GB DDR 667
Linux 2.6.30.5 + RTAI 3.7.1 with SMP support
hyperthreading is disabled from BIOS
2nd core is isolated from GRUB with "isolcpus=1"
Debian Lenny from LiveUSB (no harddisk)
onboard video with Intel driver
996381 5101 30121 5428
Jetway J7F2WE1G 1.0Ghz Via Via Unichrome on-board
256M ram - vesa driver
via driver has opengl issues
10050138902329389020
|| Jetway J7F2WE1G5D mini-ITX|| VIA C7 1.5Ghz || Specifications:
http://www.jetway.com.tw/jetway/system/productshow2

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited September 11, 2014 7:18 am by Aldronaigh (diff)
Search:
Published under a Creative Commons License