Re: PUFFS performance on netbsd-6

2012-03-18 Thread YAMAMOTO Takashi
hi,

 Hi
 
 I am runnning my usual perfuse test case on netbsd-6: building the 
 netbsd tree. Performances are much lower than on netbsd-5.
 
 A quick dump of FUSE operations shows that the thing spends most 
 of its time on lookups. It will exhibit behavior like this:
 LOOKUP a
 LOOKUP a/b
 LOOKUP a/b/c
 LOOKUP a/b/c/d
 GETATTR a/b/c/d
 LOOKUP a
 LOOKUP a/b
 LOOKUP a/b/c
 LOOKUP a/b/c/e
 GETATTR a/b/c/e
 
 It seems that while the kernel still knows about a/b/c (it was not
 reclaimed), it still have to lookup from the root. Is that on purpose?
 If it is, then what is the rationale?

if your filesystem is not using namecache and the application is using
full paths to look up files, the trace looks normal.
otherwise, it looks weird.

YAMAMOTO Takashi

 
 I have not yet tested on -current.
 
 -- 
 Emmanuel Dreyfus
 m...@netbsd.org


Re: PUFFS performance on netbsd-6

2012-03-18 Thread YAMAMOTO Takashi
hi,

 YAMAMOTO Takashi y...@mwd.biglobe.ne.jp wrote:
 
 if your filesystem is not using namecache and the application is using
 full paths to look up files, the trace looks normal.
 otherwise, it looks weird.
 
 I only have PUFFS_KFLAG_NOCACHE_NAME set when calling puffs_init
 
 On netbsd-5, the kernel never looked up a node twice without reclaiming
 in between. You could have either this behavior (I ommit lookup and
 reclaim on x/y and x/z for the sake of clarity):
 LOOKUP x
 GETATTR x/y
 RECLAIM x
 LOOKUP x
 GETATTR x/z
 RECLAIM x
 
 Or that one:
 LOOKUP x
 GETATTR x/y
 GETATTR x/z
 RECLAIM x
 
 But never this new behavior I observe on netbsd-6:
 LOOKUP x
 GETATTR x/y
 LOOKUP x
 GETATTR x/z
 RECLAIM x
 RECLAIM x

the behaviour on netbsd-6 is what i expect with PUFFS_KFLAG_NOCACHE_NAME.
probably the flag is broken on netbsd-5?

having said that, the two consecutive RECLAIMs for the same node seems
strange.  it could be a bug in cookie - vnode lookup code, which produces
duplicated vnodes for a cookie.

YAMAMOTO Takashi

 
 -- 
 Emmanuel Dreyfus
 http://hcpnet.free.fr/pubz
 m...@netbsd.org


Re: PUFFS performance on netbsd-6

2012-03-18 Thread Emmanuel Dreyfus
YAMAMOTO Takashi y...@mwd.biglobe.ne.jp wrote:

  LOOKUP x
  GETATTR x/y
  LOOKUP x
  GETATTR x/z
  RECLAIM x
  RECLAIM x
 
 the behaviour on netbsd-6 is what i expect with PUFFS_KFLAG_NOCACHE_NAME.
 probably the flag is broken on netbsd-5?

If netbsd-6 behavvior is right, then indeed the flag was broken on
netbsd-5. Unfortnately this makes netbsd-6 much more slower. I did not
run hard tests, but I would estimates it as 10 times slower.

FUSE LOOKUPs return a TTL for a node. I guess it is time to modify the
PUFFS interface and kernel lookup code so that the kernel can be made
aware of that information.


-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
m...@netbsd.org