* File System Address Space Operations
@ 2006-07-29 7:15 UZAIR LAKHANI
2006-07-29 16:30 ` Martin Jambor
0 siblings, 1 reply; 5+ messages in thread
From: UZAIR LAKHANI @ 2006-07-29 7:15 UTC (permalink / raw)
To: linux-fsdevel
Hello All,
I want to find out the details of the address space
operations. Where can I get the detailed information
about the address space operations. In addition I want
to find out whether these address space operations are
for performance reasons or are mandatory to implement.
For example consider the case that we can avoid
implementing file operations' readv and writev
functions because these are for performance reasons
and instead could implement only simple read and write
functions of file operations.
In addition do distributed file systems on the client
and server side require to implement address space
operations e.g. nfs (client side) implements these
address space operations.
Thanks,
Uzair Lakhani,
Karachi, Pakistan.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: File System Address Space Operations
2006-07-29 7:15 File System Address Space Operations UZAIR LAKHANI
@ 2006-07-29 16:30 ` Martin Jambor
2006-08-01 5:46 ` UZAIR LAKHANI
0 siblings, 1 reply; 5+ messages in thread
From: Martin Jambor @ 2006-07-29 16:30 UTC (permalink / raw)
To: UZAIR LAKHANI; +Cc: linux-fsdevel
On 7/29/06, UZAIR LAKHANI <uzairr_bs1b@yahoo.com> wrote:
> Hello All,
>
> I want to find out the details of the address space
> operations. Where can I get the detailed information
> about the address space operations.
Have a look at
a) Documentation/filesystems/vfs.txt
b) Documentation/filesystems/Locking and
c) some simple fs that uses it (minix?)
> In addition I want to find out whether these address space
> operations are for performance reasons or are mandatory to
> implement.
No, I guess you could access the underlying device (or a remote
server) each time a filesystem object is read or written to. This
approach would be simple but
a) it could be very slow (at least a block device based filesystem
like that would),
b) you basically wouldn't be able to implement mmap unless you wrote
an equivalent of the page cache and
c) when you use the generic functions to handle the file operations
and only code the address space operations, it is not that much
more difficult.
> In addition do distributed file systems on the client
> and server side require to implement address space
> operations e.g. nfs (client side) implements these
> address space operations.
I'm not an expert on network filesystems but it would probably depend
on whether and what kind of client caching you want.
HTH
Martin
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: File System Address Space Operations
2006-07-29 16:30 ` Martin Jambor
@ 2006-08-01 5:46 ` UZAIR LAKHANI
2006-08-01 16:56 ` Bryan Henderson
2006-08-01 16:58 ` Martin Jambor
0 siblings, 2 replies; 5+ messages in thread
From: UZAIR LAKHANI @ 2006-08-01 5:46 UTC (permalink / raw)
To: Martin Jambor; +Cc: linux-fsdevel
--- Martin Jambor <jambormartin@gmail.com> wrote:
> On 7/29/06, UZAIR LAKHANI <uzairr_bs1b@yahoo.com>
> wrote:
> > Hello All,
> >
> > I want to find out the details of the address
> space
> > operations. Where can I get the detailed
> information
> > about the address space operations.
>
> Have a look at
>
> a) Documentation/filesystems/vfs.txt
> b) Documentation/filesystems/Locking and
> c) some simple fs that uses it (minix?)
Hello All,
Thanks for your reply and help. But the (a) and (b)
above don't give me enough details about the
theoretical aspects of address space operations. For
example why these operations are needed. What is their
flow etc. If you please give some more links that help
me understanding address space operations and buffer
cache issues clearly, then I will be thankful to you.
Thanks,
Uzair Lakhani
>
> > In addition I want to find out whether
> these address space
> > operations are for performance reasons or
> are mandatory to
> > implement.
>
> No, I guess you could access the underlying
> device (or a remote
> server) each time a filesystem object is read or
> written to. This
> approach would be simple but
>
> a) it could be very slow (at least a block device
> based filesystem
> like that would),
> b) you basically wouldn't be able to implement
> mmap unless you wrote
> an equivalent of the page cache and
> c) when you use the generic functions to handle
> the file operations
> and only code the address space operations, it
> is not that much
> more difficult.
>
> > In addition do distributed file systems on the
> client
> > and server side require to implement address space
> > operations e.g. nfs (client side) implements these
> > address space operations.
>
> I'm not an expert on network filesystems but it
> would probably depend
> on whether and what kind of client caching you want.
>
> HTH
>
> Martin
> -
> To unsubscribe from this list: send the line
> "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at
> http://vger.kernel.org/majordomo-info.html
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: File System Address Space Operations
2006-08-01 5:46 ` UZAIR LAKHANI
@ 2006-08-01 16:56 ` Bryan Henderson
2006-08-01 16:58 ` Martin Jambor
1 sibling, 0 replies; 5+ messages in thread
From: Bryan Henderson @ 2006-08-01 16:56 UTC (permalink / raw)
To: UZAIR LAKHANI; +Cc: Martin Jambor, linux-fsdevel
>But the (a) and (b)
>above don't give me enough details about the
>theoretical aspects of address space operations. For
>example why these operations are needed.
>What is their flow etc.
It would help to know which part you're stuck on:
The address space operations are the methods of an address space object.
An object obviously needs methods. Or maybe you're asking about the
particular operations?
Are you asking how an address space works, or how and why a filesystem
driver uses address spaces? Address spaces exist independently of
filesystems -- they can be used for things other than files and
filesystems don't have to use them.
The distinction is important, because how an address space works is
primarily a memory manager question, while how filesystems use them is
primarily a filesystem question.
BTW, the term "address space" can be quite misleading. In computers,
"address space" usually refers to something else -- something to do with
the CPU architecture. What the linux kernel calls an address space is
what some other operating systems call a "virtual memory object," and I
find that a lot more descriptive.
--
Bryan Henderson IBM Almaden Research Center
San Jose CA Filesystems
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: File System Address Space Operations
2006-08-01 5:46 ` UZAIR LAKHANI
2006-08-01 16:56 ` Bryan Henderson
@ 2006-08-01 16:58 ` Martin Jambor
1 sibling, 0 replies; 5+ messages in thread
From: Martin Jambor @ 2006-08-01 16:58 UTC (permalink / raw)
To: UZAIR LAKHANI; +Cc: linux-fsdevel
On 8/1/06, UZAIR LAKHANI <uzairr_bs1b@yahoo.com> wrote:
> Martin Jambor <jambormartin@gmail.com> wrote:
> > On 7/29/06, UZAIR LAKHANI <uzairr_bs1b@yahoo.com>
> > wrote:
> > > Hello All,
> > >
> > > I want to find out the details of the address
> > space
> > > operations. Where can I get the detailed
> > information
> > > about the address space operations.
> >
> > Have a look at
> >
> > a) Documentation/filesystems/vfs.txt
> > b) Documentation/filesystems/Locking and
> > c) some simple fs that uses it (minix?)
>
> Hello All,
>
> Thanks for your reply and help. But the (a) and (b)
> above don't give me enough details about the
> theoretical aspects of address space operations. For
> example why these operations are needed. What is their
> flow etc. If you please give some more links that help
> me understanding address space operations and buffer
> cache issues clearly, then I will be thankful to you.
I think both (a) and (b) are rather good. More stuff I can think about
would include:
* Robert Love: Linux Kernel Development, Chapter 15 (page 269)
* Mel Gorman: Understanding the Linux Virtual Memory Manager,
section 4.4 (available online)
* I guess "Understanding the Linux Kernel" would cover it as well but
I have not had a look at it yet.
* Search Google for "Linux Page Cache." (I, for example, within a few
seconds came across http://www.faqs.org/docs/kernel_2_4/lki-4.html
which does not seem very outdated (at a glance).
I personally learnt about the page cacher by reading the source code
of ramfs and minix, especially the generic kernel handlers of
file_operations and address_space_operations. If you want to really
understand the stuff, you simply have to do it. If you have problems
understanding the code, people at #kernelnewbies
(www.kernelnewbies.org) can and often do help.
HTH
Martin
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-08-01 16:58 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-29 7:15 File System Address Space Operations UZAIR LAKHANI
2006-07-29 16:30 ` Martin Jambor
2006-08-01 5:46 ` UZAIR LAKHANI
2006-08-01 16:56 ` Bryan Henderson
2006-08-01 16:58 ` Martin Jambor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).