RE: sata_sil24 memory fragmentation issues
From: Jonathan Haws
Date: Fri Sep 03 2010 - 10:46:39 EST
> I am having some issues with the sata_sil24 driver. It appears that when memory gets fragmented enough, bad things start to happen. However, this only occurs when I am receiving large amounts of data over the network as well.
>
> Here is my test setup: I am running an AMCC 405EX processor on their Kilauea development board. I have a PCIe SATA controller based on the 3531 single port chip (which uses the sata_sil24 driver). I have a program that simply dumps data out to disk. When I am running that program, I am also running ping -s 8500<some-ip>.
>
> Here is the output:
>
> 8508 bytes from 172.31.22.21: seq=137 ttl=128 time=1.306 ms
> CNT: 129 WRIT: 35651584 RATE: 34.00000 MB/s READ: 0 RATE: 0.00000 MB/s AVG WR: 34.17188 MB/s AVG RD: 0.00000 MB/s
> 8508 bytes from 172.31.22.21: seq=138 ttl=128 time=1.254 ms
> CNT: 130 WRIT: 34603008 RATE: 33.00000 MB/s READ: 0 RATE: 0.00000 MB/s AVG WR: 34.16279 MB/s AVG RD: 0.00000 MB/s
> 8508 bytes from 172.31.22.21: seq=139 ttl=128 time=1.291 ms
> CNT: 131 WRIT: 34603008 RATE: 33.00000 MB/s READ: 0 RATE: 0.00000 MB/s AVG WR: 34.15385 MB/s AVG RD: 0.00000 MB/s
> 8508 bytes from 172.31.22.21: seq=140 ttl=128 time=1.254 ms
> CNT: 132 WRIT: 35651584 RATE: 34.00000 MB/s READ: 0 RATE: 0.00000 MB/s AVG WR: 34.15267 MB/s AVG RD: 0.00000 MB/s
> sata: page allocation failure. order:0, mode:0x22
>sata is the process name, I believe? Not sure the SATA driver is
>involved here at all.
I think it is because if you look at the call trace, the exception occurs down in the kernel. The driver I am using is the sata_sil24 driver and doing some searches online, others have experienced similar problems when the system is under heavy load (such as a high level of network interrupts). Unfortunately the solutions to those problems is to go with different SATA controllers, which is not an option for me.
However, when you mention that the driver is not involved, are you implying that there may be a bug in my program? I will go back and look through my code, but it is a really dumb program - I have a large statically allocated buffer that I write to disk over and over again. I will go back and check to make sure I am not doing anything stupid, but I don't think I am.
Thanks,
Jonathan--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/