Addonics SIS3124 Controller and T
Jose Amengual
jose.amengual at gmail.com
Thu Feb 10 07:18:25 UTC 2011
On 2011-02-09, at 4:36 PM, dieterbsd at engineer.com wrote:
> Jose Amengual writes:
>> Strangely enough just switching drives now I can see all ten, weird
>> but is working now.
>
> Perhaps there was a loose connection or something.
I think so
>
>> I'm confused why you are referring to a JMB393s if my card has a
>> siis3124 chip....or are you referring o the PMs?
>
> If I'm reading
> http://www.addonics.com/products/raid_tower/raid_rack.asp
> correctly, it comes with 4 SATA Port Multipliers based on
> the JMB393 chip.
I see....
>
> Do you get something like
>
> PM Product ID: 37261095
I will check
>
> in dmesg? I just got a PM based on the Sil3726. So far so good.
> I've been running some simple speed tests on it and various
> controllers. If you and your machine have a few minutes to spare,
> I'd love to see similar numbers for the siis3124 controller and the
> JMB393 PM.
>
> First I ran one disk at a time:
>
> nforce4-ultra controller chipset ata(4)
> ad4 249.404517 MB/s
> ad6 250.143419 MB/s
> ad8 239.214086 MB/s
> ad10 249.628334 MB/s
>
> SiI 3132 PCIe-x1 siis(4)
> ada0 127.737664 MB/s
> ada1 110.236024 MB/s
> ada2 110.210423 MB/s
>
> JMB363 PCIe-x1 ahci(4)
> ada3 131.443644 MB/s
> Sil3726 Port Multiplier
> ada4 130.895997 MB/s
> ada5 130.259701 MB/s
> ada6 132.400908 MB/s
> ada7 114.306864 MB/s
> ada8 130.986963 MB/s
>
> I need to rerun the tests (machine is busy right now) and see if the
> results are consistant. Some of the differences may be due to the
> different make & model drives.
>
> 2 disks at once - port multiplier drives ada4, ada5
> 48.034694 MB/s and 48.034701 MB/s
> Total: 96.069395 MB/s
>
> 2 disks at once - same card (jmb363) ada3 direct connection, ada5 via PM
> 86.059754 MB/s and 85.664682 MB/s
> Total: 171.724436 MB/s
>
> 3 disks at once - port multiplier drives ada4, ada5, ada6
> 31.728884 MB/s, 31.727878 MB/s, and 31.727715 MB/s
> Total: 95.184477 MB/s
>
> 4 disks at once - port multiplier drives ada4, ada5, ada6, ada8
> 23.657665 MB/s 23.657404 MB/s 23.657416 MB/s 23.657436 MB/s
> Total: 94.629921 MB/s
>
> 5 port multiplier disks at once
> 18.660235 MB/s 18.659920 MB/s 18.659928 MB/s 18.659925 MB/s
> 18.665027 MB/s
> 5 port multiplier disks at once plus the other port of the jmb363
> 105.348778 MB/s 17.821848 MB/s 17.821214 MB/s 17.821113 MB/s
> 17.821120 MB/s 17.821458 MB/s
> PM total (5 drives): 89.106753 MB/s
> Card total (6 drives): 194.455531 MB/s
>
> Neither the 3132 nor the 363 controllers can max out the PCIe-x1 link
> (250 MB/s each direction). Previous testing indicates that both
> achive a higher total with one disk reading and the other writing.
> (not sure why) Port multipliers may be the same, I haven't had time
> to test that case yet. I also want to test the PM with the 3132.
>
> Silicon Image SATA controllers are not the fastest. The JMB363 is
> faster than the 3132, so I wonder if the JMB393 port multiplier is
> faster than the Sil3726? I've read that the 3124 controller is
> fast, the question is how fast?
>
> Below is the small C program I used. It just reads a small amount
> of data over and over again from the drive's RAM cache. This avoids
> limitations of data density on the platters, rpm, seek time, etc.
>
>
I check the raid controler and it doesn't have anything to enable any level of caching but I have a Supermicro sata controller with cache memory and and Intel chip that I will use for some testings.
> /*
> * read_disk_cache_speed.c
> *
> * Read data from a disk's RAM cache buffer.
> * Useful for testing the speed of controllers and port multipliers
> * without the limitation of how fast the disk can read data from the
> * platters. Note that the drive's electronics could still be the
> * limiting factor.
> *
> * Syntax: read_disk_cache_speed device readsize iterations
> * FreeBSD:
> * read_disk_cache_speed /dev/ada0 65536 10000
> * NetBSD:
> * read_disk_cache_speed /dev/rwd0c 65536 10000
> *
> * Original program was by:
> * Manuel Bouyer <bouyer at antioche.eu.org>
> * NetBSD: 26 ans d'experience feront toujours la difference
> * Updated by:
> * Dieter <dieterbsd at engineer.com>
> * Added command line argument for buffer/read size.
> * (originally hard coded at 64 KiB)
> * Read data into drive's RAM buffer before beginning timing.
> *
> */
>
> #include <fcntl.h>
> #include <unistd.h>
> #include <sys/time.h>
> #include <stdio.h>
> #include <stdlib.h>
>
> int
> main(int argc, char **argv)
> {
> int fd; /* file descriptor */
> int i; /* loop counter */
> struct timeval tv0, tv1;
> long t; /* elapsed time */
> char *buffer;
> long buffer_size;
>
> if ( argc != 4 )
> {
> fprintf(stderr, "Syntax: %s device readsize iterations\n",
> argv[0]);
> fprintf(stderr, "Example: %s /dev/ada4 65536 10000\n", argv[0]);
> exit(1);
> }
>
> buffer_size = atoi(argv[2]);
> buffer = malloc(buffer_size);
> if ( buffer == NULL )
> {
> perror("malloc failed");
> exit(1);
> }
>
> fd = open(argv[1], O_RDONLY, 0);
> if (fd < 0)
> {
> perror("open failed");
> exit(1);
> }
> /* Get the data from the platter into the drive's RAM buffer
> * before we start timing.
> */
> if (read(fd, (void *)buffer, buffer_size) != buffer_size)
> {
> perror("read failed");
> exit(1);
> }
> if (lseek(fd, 0, SEEK_SET) < 0)
> {
> perror("lseek failed");
> exit(1);
> }
>
> if (gettimeofday(&tv0, NULL) < 0)
> {
> perror("gettimeofday failed");
> exit(1);
> }
> for (i = 0; i < atoi(argv[3]); i++)
> {
> if (read(fd, (void *)buffer, buffer_size) != buffer_size)
> {
> perror("read failed");
> exit(1);
> }
> if (lseek(fd, 0, SEEK_SET) < 0)
> {
> perror("lseek failed");
> exit(1);
> }
> }
> if (gettimeofday(&tv1, NULL) < 0)
> {
> perror("gettimeofday failed");
> exit(1);
> }
> t = (tv1.tv_sec - tv0.tv_sec) * 1000000;
> t = t + tv1.tv_usec - tv0.tv_usec;
> printf("%ld us, %f MB/s\n", t,
> ((double)buffer_size * (double)i / 1000000) / ((double)t / 1000000));
> exit(0);
> }
I will use your program to test my hds and I will let you know.
>
> Total: 93.305028 MB/s
>
>
> _______________________________________________
> freebsd-hardware at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hardware
> To unsubscribe, send any mail to "freebsd-hardware-unsubscribe at freebsd.org"
More information about the freebsd-hardware
mailing list