open("/dev/cuaaX") is slow

Andrew L. Neporada andr at dgap.mipt.ru
Fri Apr 29 04:23:29 PDT 2005


Hi, hackers!

It seems that reopening /dev/cuaaX devices after close() takes exactly
3 seconds on FreeBSD 4.10 (sorry, I've no 5.x systems available at the 
moment).

Here is output of attached program:
open() time: 155 us
open() time: 2995729 us
open() time: 2999811 us
open() time: 2999608 us
open() time: 2999711 us
open() time: 2999720 us
open() time: 2999713 us
open() time: 2999744 us
open() time: 2999673 us
open() time: 2999706 us

Is this 3 second delay necessary? Can I get rid of it?

				Andrew.
-------------- next part --------------
#include <sys/time.h>
#include <stdio.h>
#include <fcntl.h>

int
main(void) {
	int		fd, i;
	long		us;
	struct timeval	tv1, tv2;

	for (i = 0; i < 10; i++) {
		gettimeofday(&tv1, NULL);
		fd = open("/dev/cuaa0", O_RDWR);
		gettimeofday(&tv2, NULL);
		us = (tv2.tv_sec - tv1.tv_sec) * 1000000 +
		     (tv2.tv_usec - tv1.tv_usec);
		printf("open() time: %d us\n", us);
		if (fd == -1) {
			perror("open");
			exit(1);
		}
		close(fd);
	}
}


More information about the freebsd-hackers mailing list