I use tcdrain to wait until all output written to serial has been transmitted, the time of transmitting(tcdrain) the same data to serial is not equable, my kernel is MontaVista 2.6.18 and cpu is DM368, below is DM368 log
19:33:58 Welcome.
test file: ./test-ptz, console file: /dev/ttyS1
serial.c set_baudrate() set Baudrate: 115200
1: time: 31373
2: time: 20321
3: time: 226031
4: time: 170847
5: time: 18880
6: time: 210992
7: time: 18742
8: time: 189922
9: time: 19853
10: time: 189874
11: time: 19889
12: time: 171008
13: time: 18729
14: time: 210093
15: time: 19655
16: time: 189905
But i use the same code to run on Dell ubuntu D430 (Ubuntu 10.04) the log as following.
13:38:34 Welcome.
test file: hello, console file: /dev/ttyUSB0
serial.c set_baudrate() set Baudrate: 115200
1: time: 925
2: time: 982
3: time: 994
4: time: 1048
5: time: 1030
6: time: 991
7: time: 989
8: time: 990
9: time: 991
10: time: 990
11: time: 988
12: time: 1006
13: time: 916
14: time: 961
15: time: 1013
attanched is test code