Improvements to DOSFS
Eugeny Mints
eugeny.mints at auriga.ru
Thu Jul 31 10:15:57 UTC 2003
Hi,
> -----Original Message-----
> From: Chris Johns [mailto:cjohns at cybertec.com.au]
> Sent: Thursday, July 31, 2003 4:09 AM
> To: Thomas Doerfler
> Cc: rtems-users at oarcorp.com
> Subject: Re: Improvements to DOSFS
>
> Thomas Doerfler wrote:
> >
> > today I have added three PRs (439-441) to RTEMS gnatsweb.
> > These PR have patches for the following issues:
> >
> > 1. Adding rename functionality to DOSFS
> >
> > 2. Improvment of data write speed
> >
> > 3. Flush of temporary data buffer when closing a file to make
> > removing of media or poweroff of system without "unmount" more
> > reliable
> >
>
> I have the disk performance test program Bonnie running on RTEMS.
>
> http://www.textuality.com/bonnie/intro.html
>
> I could place a copy on the RTEMS ftp incoming directory if you are
> interested in
> running it with your changes. Let me know and I will upload it.
>
> >
> > 2. Improvement of write data speed
> >
>
> On the subject of performance, I noticed in the ATA driver:
>
>
http://www.rtems.com/cgi-bin/cvsweb.cgi/rtems/c/src/libchip/ide/ata.c
>
> in function:
>
> ata_io_data_request ()
>
> the following code:
>
> areq = malloc(sizeof(ata_req_t));
> if (areq == NULL)
> {
> return RTEMS_NO_MEMORY;
> }
>
> Does this mean each ATA request is performing a malloc ?
Unfortunately, yes. Of course, I had understood (and understand:) how it
is ugly:(. Of course, it was temporary stub which I was going to improve
as soon as possible - but you know: there are no more constant things
than temporary:) So, of course it is necessary to implement some
extendible (at run time) pool of buffers "for ata requests" with
predefined initial size: then
areq = malloc(sizeof(ata_req_t));
will look like:
areq = get_buf_from_ata_req_pool();
Bw,
Eugeny
More information about the users
mailing list