mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Block device swamping disk cache
@ 2004-05-11 19:11 marcus hall
  2004-05-11 19:19 ` Christoph Hellwig
  0 siblings, 1 reply; 7+ messages in thread
From: marcus hall @ 2004-05-11 19:11 UTC (permalink / raw)
  To: linux-kernel

I am having problems writing a filesystem image to a device file.

I am running an arm version of the 2.5.59 kernel.

Writing the data to the device file eventually caused ps.nr_dirty to exceed
dirty_thresh in balance_dirty_pages(), yet when writeback_inodes() scans
all the superblocks, the inodes that it finds are all marked as memory_backed
(they are on a ramdisk), and the inode for the block device file doesn't
show up.

I did not see any place where mark_inode_dirty() gets called for the block
device..  Is there some other mechanism for flushing the disk cache allocated
to the device?  I end up with balance_dirty_pages() looping forever.

Just for grins, I added a call to mark_inode_dirty() in blkdev_commit_write()
(similar to generic_commit_write()), but this had no effect that I could
notice.  I did note that in blkdev_commit_write(), if I look at
file->f_dentry->d_inode, I see the inode form the /dev filesystem, yet
page->mapping->host is a different inode!  I don't know if this is a
problem or not, but it did surprise me..

Anyhow, is this a known issue with 2.5.59?  How is the disk cache allocated
to a block device supposed to get flushed?

Thanks!

Marcus Hall
marcus@tuells.org

^ permalink raw reply	[flat|nested] 7+ messages in thread
* Block device swamping disk cache
@ 2004-05-07 23:23 marcus hall
  0 siblings, 0 replies; 7+ messages in thread
From: marcus hall @ 2004-05-07 23:23 UTC (permalink / raw)
  To: linux-kernel

I am now having problems writing a filesystem image to a device file.

I am running an arm version of the 2.5.59 kernel.

Writing the data to the device file eventually caused ps.nr_dirty to exceed
dirty_thresh in balance_dirty_pages(), yet when writeback_inodes() scans
all the superblocks, the inodes that it finds are all marked as memory_backed
(they are on a ramdisk), and the inode for the block device file doesn't
show up.

I did not see any place where mark_inode_dirty() gets called for the block
device..  Is there some other mechanism for flushing the disk cache allocated
to the device?  I end up with balance_dirty_pages() looping forever.

Just for grins, I added a call to mark_inode_dirty() in blkdev_commit_write()
(similar to generic_commit_write()), but this had no effect that I could
notice.  I did note that in blkdev_commit_write(), if I look at
file->f_dentry->d_inode, I see the inode form the /dev filesystem, yet
page->mapping->host is a different inode!  I don't know if this is a
problem or not, but it did surprise me..

Anyhow, is this a known issue with 2.5.59?  How is the disk cache allocated
to a block device supposed to get flushed?

Thanks!

Marcus Hall
marcus@tuells.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-05-13  0:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-11 19:11 Block device swamping disk cache marcus hall
2004-05-11 19:19 ` Christoph Hellwig
2004-05-11 19:48   ` marcus hall
2004-05-12  0:26   ` Andrew Morton
2004-05-12 13:33     ` marcus hall
2004-05-13  0:20       ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2004-05-07 23:23 marcus hall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®