12/28/16 [linux-elphel][master] by Mikhail Karpenko: Merge branch 'ahci_datascope'
Merge branch 'ahci_datascope'
12/28/16 [linux-elphel][] by Mikhail Karpenko: Merge branch 'ahci_datascope'
Merge branch 'ahci_datascope'
12/28/16 [linux-elphel][master] by Mikhail Karpenko: Change cmd timer processing to fix a race condition
Change cmd timer processing to fix a race condition
12/28/16 [linux-elphel][] by Mikhail Karpenko: Change cmd timer processing to fix a race condition
Change cmd timer processing to fix a race condition
12/28/16 [imagej-elphel][dct] by AndreyFilippov: cleanup after debugging
cleanup after debugging
12/28/16 [imagej-elphel][master] by AndreyFilippov: cleanup after debugging
cleanup after debugging
12/27/16 [imagej-elphel][master] by AndreyFilippov: re-implemented LMA, found problem in the original one
re-implemented LMA, found problem in the original one
12/27/16 [imagej-elphel][master] by AndreyFilippov: re-implemented LMA, found problem in the original one
re-implemented LMA, found problem in the original one
12/26/16 [linux-elphel][master] by Mikhail Karpenko: Remove dev_dbg from IRQ and save state to buffer, read buffer from sysfs
Remove dev_dbg from IRQ and save state to buffer, read buffer from sysfs
12/26/16 [linux-elphel][] by Mikhail Karpenko: Remove dev_dbg from IRQ and save state to buffer, read buffer from sysfs
Remove dev_dbg from IRQ and save state to buffer, read buffer from sysfs
12/25/16 [imagej-elphel][master] by AndreyFilippov: more experimenting
more experimenting
12/25/16 [imagej-elphel][master] by AndreyFilippov: more experimenting
more experimenting
12/23/16 [imagej-elphel][dct] by AndreyFilippov: got stable convergence of LMA when doing kernel factorization
got stable convergence of LMA when doing kernel factorization
12/23/16 [imagej-elphel][master] by AndreyFilippov: got stable convergence of LMA when doing kernel factorization
got stable convergence of LMA when doing kernel factorization
12/22/16 [imagej-elphel][master] by AndreyFilippov: more trying
more trying
12/22/16 [imagej-elphel][master] by AndreyFilippov: more trying
more trying
12/22/16 [elphel-web-393][master] by Oleg Dzhimiev: index page
index page
12/22/16 [elphel-web-393][master] by Oleg Dzhimiev: index page
index page
Measuring SSD interrupt delays
Sometimes we need to test disks connected to camera and we developed a small test program for this purpose. This program basically resembles camogm (in-camera recording program) in its operation and allows us to write repeating blocks of data containing counter value and then check the consistency of the data written. This program works directly with disk driver and collects some statistics during its operation. Disk driver, among other things, measures the time between two events: when write command is issued and when command completion interrupt from controller is received. This time can be used to measure disk write speed as the amount of data sent to disk with each command is also known. In general, this time slightly floats around its average value given that the amount of data written with each command is almost the same. But long run tests have shown that sometimes the interrupt return time after write command can be much longer then the average time.
We decided to investigate this situation in a little bit more details and tested two SSDs with our test program. The disks used for tests were SanDisk SD8SMAT128G1122 and Crucial CT250MX200SSD6, both were connected to eSATA camera port over M.2 SSD adapter. We used these disks before and they demonstrated different performance during recording. We ran camogm_test to write 3 MB blocks of data in cyclic mode. The program collected delayed interrupt times reported by driver as well as the amount of data written since the last delay event. The processed results of the test are in the following table:
Disk Average IRQ reception time, ms Standard deviation, ms Average IRQ delay time, ms Standard deviation, ms Data recorded since last IRQ delay, GB Standard deviation, GB CT250MX200SSD6 (250 GB) 11.9 1.1 804 12.7 499.7 111.7 SD8SMAT128G1122 (128 GB) 19.3 4.8 113 6.5 231.5 11.5The delayed interrupt times of these disks are considerably different although the difference in average interrupt times which reflect disk write speeds is not that big. It is interesting to notice that the amount of data written to disk between two consecutive interrupt delays is almost twice the total disk size. smartctl reported the increase of Runtime_Bad_Block attribute for CT250MX200SSD6 after each delay but the delays occurred each time on different LBAs. Unfortunately, SD8SMAT128G1122 does not have such parameter in its smartctl attributes and it is difficult to compare the two disks by this parameter.
12/22/16 [elphel-init][master] by Oleg Dzhimiev: 10389 board not present case
10389 board not present case