DragonFly BSD
DragonFly kernel List (threaded) for 2006-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: a take at cache coherency

From: "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx>
Date: Mon, 23 Jan 2006 13:32:16 +0100

Csaba Henk wrote:

  - Unidirectonal synchronization. Only upper layers keep a reference to
    lower ones, a lower ("shadowed") layer doesn't need to be aware of
    being overlayed.
  - Namecache API got messed up a bit, too. Some attributes can't be
    accessed directly: you can't use "ncp->nc_vp", you need to do
    "cache_grphead(ncp)->nc_vp". Eventually some kind of wrapper should
    be made around namecache entries, so that you could write eg.
    "NC_VP(ncp)". At this stage I didn't do this.
  - Some attributes of namecache entries were transformed into shadow
    group attributes: these are

      nc_vp, nc_error, nc_timeout, nc_exlocks, nc_locktd, and some of
      the flags:
      -- ie, attributes which refer the underlying vnode, and locking.

i'm sorry but i don't like the patch for those reasons. general vfs code gets cluttered with namecache interal going-ons (the shadow groups) and makes it super-easy to introduce a mistake.

I think if we already carry the fields around in the namecache structs we should also populate them.

    * Unsolved issues. It's not handled properly when the lower layer
      gets unmounted. There are two possible behaviours:

        - keep lower fs busy, don't let it go.
	- let lower fs go; when it's gone, return ENXIO from calls.

+ renames on the lower layer don't trigger namecache renames/invalidations on a higher layer. this is what the coherency should be about, i think.

maybe we should discuss design before actually implementing it? :)


Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]