Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 May 2000 18:32:38 -0400
From:      Joy Ganguly <joy@niksun.com>
To:        Alfred Perlstein <bright@wintelcom.net>, freebsd-hackers <freebsd-hackers@freeBSD.org>
Subject:   Re: Question about file write????
Message-ID:  <39231E06.31DFB153@falcon.niksun.com>
References:  <20000517160746.12768.qmail@www0a.netaddress.usa.net> <20000517102516.B14968@fw.wintelcom.net> <3922DB0F.9D9095C9@falcon.niksun.com> <20000517135644.D14968@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Alfred Perlstein wrote:

> bcopy should be using the hand optimized code, I think you may have
> to explain more of what you're doing if anyone is going to be able
> to help.

well this is what i am doing:

i have a device buffer in contiguous physical memory. i want to write
that buffer into
a file disk. for that ive written a simple ioctl which works similar to
the syscall
write. except that it transfers from kernel space instead of user
space.  my user
program calls this ioctl with the write file desc....the ioctl calls
fp->f_ops->fo_write after setting up the uio to do the transfer.

earlier the user code looked like:-

fd=open("/dev/mydev",O_RDONLY);
buf=malloc(BUFSIZE);
read(fd,buf,BUFSIZE);
w_fd=open("foo",O_WRONLY|O_CREAT);
write(w_fd,buf,BUFSIZE);

now the user program looks like:

fd=open("/dev/mydev",O_RDONLY);
ioctl(fd, MYDEVREAD, &size);
w_fd=open("foo",O_WRONLY|O_CREAT);
ioctl(w_fd,MYDEVWRITE,size);

as a result of this the copy involved in the first read is eliminated.
but it takes
longer to do the 2nd ioctl than to do the write.

if this does not explain what i am doing please let me know.

thanx in advance

>
> --
> -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
> "I have the heart of a child; I keep it in a jar on my desk."


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39231E06.31DFB153>