Hi again.
Perhaps I wasn't clear enough.
Both the page_io and Suspend can cope fine with block size < 4096. The
issue is where they get the information from as to how many blocks per
page they actually need to use when called brw_page. At the moment, they
both assume that i_sb->s_blocksize and blocksize_bits is the place to
go. What you're saying sounds right to me. They should both be looking
at i_blkbits and i_blksize in the struct inode, shouldn't they? I'll
make the change, test and submit a patch to LKML.
Regards,
Nigel
On Sat, 2004-01-10 at 05:16, Christoph Hellwig wrote:
> On Fri, Jan 09, 2004 at 04:55:09PM +1300, Nigel Cunningham wrote:
> > It appears to me that a swapfile on an XFS filesystem will not work, at
> > least some of the time.
>
> XFS sets s_blocksize to the filesystem blocksize and bdev->bd_block_size /
> i_blkbits to the XFS sector size. The first would be 4096 in your
> case and the latter 512. We cannot set a bigger device block size because
> XFS log writes are in 512b units.
>
> I don't think the swap code should do any assumptions about any relation
> of the above two.
--
My work on Software Suspend is graciously brought to you by
LinuxFund.org.
Hi.
Actually, i_sb->s_blocksize and blocksize_bits both reflect a block size
of 4096 too, so that didn't help. What does help is using blksize_size.
I'll prepare a patch for Karol and I to try before submitting it to
LKML.
Regards,
Nigel
On Sat, 2004-01-10 at 22:13, Nigel Cunningham wrote:
> Hi again.
>
> Perhaps I wasn't clear enough.
>
> Both the page_io and Suspend can cope fine with block size < 4096. The
> issue is where they get the information from as to how many blocks per
> page they actually need to use when called brw_page. At the moment, they
> both assume that i_sb->s_blocksize and blocksize_bits is the place to
> go. What you're saying sounds right to me. They should both be looking
> at i_blkbits and i_blksize in the struct inode, shouldn't they? I'll
> make the change, test and submit a patch to LKML.
>
> Regards,
>
> Nigel
>
> On Sat, 2004-01-10 at 05:16, Christoph Hellwig wrote:
> > On Fri, Jan 09, 2004 at 04:55:09PM +1300, Nigel Cunningham wrote:
> > > It appears to me that a swapfile on an XFS filesystem will not work, at
> > > least some of the time.
> >
> > XFS sets s_blocksize to the filesystem blocksize and bdev->bd_block_size /
> > i_blkbits to the XFS sector size. The first would be 4096 in your
> > case and the latter 512. We cannot set a bigger device block size because
> > XFS log writes are in 512b units.
> >
> > I don't think the swap code should do any assumptions about any relation
> > of the above two.
--
My work on Software Suspend is graciously brought to you by
LinuxFund.org.