dircache: improve debug messages
Before: Lookup "errno.html/1/2/3/4/5": miss Store: "errno.html/1/2/3/4/5" fd=26 iv=21be6e083d60dcabfe7368264d5082b7 Lookup "errno.html": hit 25 6d68a16d217978915036a3bd55428ae7 Lookup "errno.html/1": hit 25 932a464c299b3430c5e55c924f98ac4d Lookup "errno.html/1/2": hit 25 7d53348b1692d537f017bf86b3cf5feb Lookup "errno.html/1/2/3": hit 25 2aef1c9d1ab2b55b163215053fefe703 Lookup "errno.html/1/2/3/4": hit 25 cb802be53721c46a46247c5e4e0f4ce6 Lookup "errno.html/1/2/3/4": hit 25 cb802be53721c46a46247c5e4e0f4ce6 Lookup "errno.html": hit 25 6d68a16d217978915036a3bd55428ae7 After: Lookup "earlyoom/.git/refs" hit fd=10 dup=17 iv=6ae2cecd269a25e8d946aff6afe9b8b8 Lookup "earlyoom/.git/refs/remotes" hit fd=19 dup=17 iv=f04c2d2a5bcc33ebdeaca664859c980d Lookup "earlyoom/.git/refs/remotes/origin" miss Store "earlyoom/.git/refs/remotes/origin" fd=17 iv=834a64a1697c9f5705455ba6dbed22b5 Lookup "earlyoom" hit fd=7 dup=25 iv=2303a892d6e2357c483574a8070b7679 Lookup "earlyoom/.git" hit fd=11 dup=25 iv=d43ca4aff23720c57789c9f62f0aee00 Lookup "earlyoom/.git" hit fd=11 dup=25 iv=d43ca4aff23720c57789c9f62f0aee00 Lookup "earlyoom/.git/refs" hit fd=10 dup=25 iv=6ae2cecd269a25e8d946aff6afe9b8b8 Lookup "earlyoom/.git/refs/heads" hit fd=13 dup=25 iv=f9245e7c066b9adc768a1a666da9fbc8
This commit is contained in:
parent
bf66da6880
commit
f6088e5008
@ -21,6 +21,8 @@ const (
|
|||||||
enableDebugMessages = false
|
enableDebugMessages = false
|
||||||
// Enable hit rate statistics printing
|
// Enable hit rate statistics printing
|
||||||
enableStats = false
|
enableStats = false
|
||||||
|
|
||||||
|
pathFmt = "%-40q"
|
||||||
)
|
)
|
||||||
|
|
||||||
type dirCacheEntryStruct struct {
|
type dirCacheEntryStruct struct {
|
||||||
@ -64,6 +66,7 @@ type dirCacheStruct struct {
|
|||||||
|
|
||||||
// Clear clears the cache contents.
|
// Clear clears the cache contents.
|
||||||
func (d *dirCacheStruct) Clear() {
|
func (d *dirCacheStruct) Clear() {
|
||||||
|
d.dbg("Clear\n")
|
||||||
d.Lock()
|
d.Lock()
|
||||||
defer d.Unlock()
|
defer d.Unlock()
|
||||||
for i := range d.entries {
|
for i := range d.entries {
|
||||||
@ -91,7 +94,7 @@ func (d *dirCacheStruct) Store(dirRelPath string, fd int, iv []byte) {
|
|||||||
tlog.Warn.Printf("dirCache.Store: Dup failed: %v", err)
|
tlog.Warn.Printf("dirCache.Store: Dup failed: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
d.dbg("Store: %q %d %x\n", dirRelPath, fd2, iv)
|
d.dbg("Store "+pathFmt+" fd=%d iv=%x\n", dirRelPath, fd2, iv)
|
||||||
e.fd = fd2
|
e.fd = fd2
|
||||||
e.dirRelPath = dirRelPath
|
e.dirRelPath = dirRelPath
|
||||||
e.iv = iv
|
e.iv = iv
|
||||||
@ -111,8 +114,9 @@ func (d *dirCacheStruct) Lookup(dirRelPath string) (fd int, iv []byte) {
|
|||||||
if enableStats {
|
if enableStats {
|
||||||
d.lookups++
|
d.lookups++
|
||||||
}
|
}
|
||||||
|
var e *dirCacheEntryStruct
|
||||||
for i := range d.entries {
|
for i := range d.entries {
|
||||||
e := &d.entries[i]
|
e = &d.entries[i]
|
||||||
if e.fd <= 0 {
|
if e.fd <= 0 {
|
||||||
// Cache slot is empty
|
// Cache slot is empty
|
||||||
continue
|
continue
|
||||||
@ -131,7 +135,7 @@ func (d *dirCacheStruct) Lookup(dirRelPath string) (fd int, iv []byte) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
if fd == 0 {
|
if fd == 0 {
|
||||||
d.dbg("Lookup %q: miss\n", dirRelPath)
|
d.dbg("Lookup "+pathFmt+" miss\n", dirRelPath)
|
||||||
return -1, nil
|
return -1, nil
|
||||||
}
|
}
|
||||||
if enableStats {
|
if enableStats {
|
||||||
@ -140,7 +144,7 @@ func (d *dirCacheStruct) Lookup(dirRelPath string) (fd int, iv []byte) {
|
|||||||
if fd <= 0 || len(iv) != nametransform.DirIVLen {
|
if fd <= 0 || len(iv) != nametransform.DirIVLen {
|
||||||
log.Panicf("Lookup sanity check failed: fd=%d len=%d", fd, len(iv))
|
log.Panicf("Lookup sanity check failed: fd=%d len=%d", fd, len(iv))
|
||||||
}
|
}
|
||||||
d.dbg("Lookup %q: hit %d %x\n", dirRelPath, fd, iv)
|
d.dbg("Lookup "+pathFmt+" hit fd=%d dup=%d iv=%x\n", dirRelPath, e.fd, fd, iv)
|
||||||
return fd, iv
|
return fd, iv
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user