Mailinglist Archive: packet-writing (24 mails)
| < Previous | Next > |
Re: [announce] packet-0.0.2l-as2
- From: Peter Osterlund <peter.osterlund@xxxxxxxxxxxxxxxxxx>
- Date: Sat, 9 Jun 2001 21:29:44 +0000 (UTC)
- Message-id: <Pine.LNX.4.33.0106092327280.659-100000@xxxxxxxxxxxxxxxx>
On Sat, 9 Jun 2001, Adam wrote:
> - removed todo notes from pktcdvd.c and put it into TODO file.
The TODO file currently contains this information:
- Currently writing slows down considerably when either a large file or
several files are written to a device (keyword is writing more than
the buffer mem can handle). At this point the internal pktcdvd "elevator"
is not given the opportunity to do proper coalescing of requests, which
means we have to go and read those blocks from disc... We already try
to work around this problem by bringing in data for several requests
before firing them (see the internal buffer pool, and pkt_handle_queue),
but the less data we have to bring in the better. This is my theory,
I may be completely off track and the cause of the lack of "full"
requests lie elsewhere. Increasing FREE_BUFFERS in pktcdvd.h will
improve the current situation at the cost of eating more memory (we
are currently using 256, which means 256*2048 = 0.5MB of memory).
I could not find any references to FREE_BUFFERS in the source. There is a
config option called CONFIG_CDROM_PKTCDVD_BUFFERS, but it doesn't seem to
be used.
Anyway, I think the reason for slow write performance is that we don't try
to find data in the page cache when collecting data for a non-full packet.
We do look in the buffer cache, but I think looking in the page cache
would be much more effective. What's needed is to make the
pkt_get_page_hash() function work and to start using it. Unfortunately, I
don't know how to do that.
--
Peter Österlund peter.osterlund@xxxxxxxxxxxxxxxxxx
Sköndalsvägen 35 http://home1.swipnet.se/~w-15919
S-128 66 Sköndal +46 8 942647
Sweden
> - removed todo notes from pktcdvd.c and put it into TODO file.
The TODO file currently contains this information:
- Currently writing slows down considerably when either a large file or
several files are written to a device (keyword is writing more than
the buffer mem can handle). At this point the internal pktcdvd "elevator"
is not given the opportunity to do proper coalescing of requests, which
means we have to go and read those blocks from disc... We already try
to work around this problem by bringing in data for several requests
before firing them (see the internal buffer pool, and pkt_handle_queue),
but the less data we have to bring in the better. This is my theory,
I may be completely off track and the cause of the lack of "full"
requests lie elsewhere. Increasing FREE_BUFFERS in pktcdvd.h will
improve the current situation at the cost of eating more memory (we
are currently using 256, which means 256*2048 = 0.5MB of memory).
I could not find any references to FREE_BUFFERS in the source. There is a
config option called CONFIG_CDROM_PKTCDVD_BUFFERS, but it doesn't seem to
be used.
Anyway, I think the reason for slow write performance is that we don't try
to find data in the page cache when collecting data for a non-full packet.
We do look in the buffer cache, but I think looking in the page cache
would be much more effective. What's needed is to make the
pkt_get_page_hash() function work and to start using it. Unfortunately, I
don't know how to do that.
--
Peter Österlund peter.osterlund@xxxxxxxxxxxxxxxxxx
Sköndalsvägen 35 http://home1.swipnet.se/~w-15919
S-128 66 Sköndal +46 8 942647
Sweden
| < Previous | Next > |