linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).