From: David Chow <davidchow@shaolinmicro.com>
To: Phillip Lougher <phillip@lougher.demon.co.uk>
Cc: trond.myklebust@fys.uio.no, linux-fsdevel@vger.kernel.org
Subject: Re: fs block size and PAGE_CACHE_SIZE
Date: Tue, 13 May 2003 01:46:05 +0800 [thread overview]
Message-ID: <3EBFDDDD.6030301@shaolinmicro.com> (raw)
In-Reply-To: 3EBF8672.9060706@lougher.demon.co.uk
>
>
>> So it is impossible to do under 2.4? Since all the design of VFS and
>> page cache assumes the underlying fs uses a 4k page or something
>> equivalent less to the size of a PAGE_CACHE_SIZE as the largest unit
>> of a cache. If you read Phillip Lougher's mail which points to the
>> squash fs (read-only), plus the problem of sleeping which really
>> impossible to implement a read/write fs on smp systems (which I
>> suppose to, and the current fs already supported). If it is
>> impossible, I don't bother to think though.
>
>
> Hi,
>
> I think you slightly mis-understood my post. There is no problem doing
> this with SMP or pre-emptive kernels.
>
> What I did say was to point out it was better to use
> grab_page_nowait() rather than read_cache_page. The problem with
> read_cache_page is not to with smp or pre-emptive kernels, it is to do
> with the fact read_cache_page tries to grab the lock of the page it is
> called to fill. If the page is already locked by another process, it
> will sleep on the lock. Grab_page_nowait() doesn't wait if the page is
> locked.
>
> Regards
>
> Phillip Lougher
>
Thanks for your clarifications. But what to do if one page is locked out
of 4 (a 16k block)? It is easy when readpage() so that I just fill the
reset 12k with up-to-date data. But for write, it is likely I need
something to compress, right? If I simply grab the page data without
considering the lock, corruption will likely to occur. I should sleep
and wait for the page lock since it might be never unlocked for some
mmapped and locked pages in different vmarea. Have you consider this at
all? This is where it comes different with rw fs.
regards,
David Chow
next prev parent reply other threads:[~2003-05-12 17:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-06 17:42 fs block size and PAGE_CACHE_SIZE David Chow
2003-05-06 19:34 ` Szakacsits Szabolcs
2003-05-06 21:08 ` Bryan Henderson
2003-05-07 0:59 ` Phillip Lougher
2003-05-12 1:59 ` David Chow
2003-05-06 21:34 ` Trond Myklebust
[not found] ` <3EBE85E8.50906@shaolinmicro.com>
2003-05-12 0:31 ` Trond Myklebust
2003-05-12 2:07 ` David Chow
2003-05-12 10:32 ` Anton Altaparmakov
2003-05-12 11:33 ` Phillip Lougher
2003-05-12 17:46 ` David Chow [this message]
2003-05-07 0:48 ` Phillip Lougher
2003-05-11 17:12 ` David Chow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3EBFDDDD.6030301@shaolinmicro.com \
--to=davidchow@shaolinmicro.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=phillip@lougher.demon.co.uk \
--cc=trond.myklebust@fys.uio.no \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox