Skip to content

Commit 558fd5b

Browse files
committed
Add logging around requested bytes vs how many we're actually reading
1 parent e471025 commit 558fd5b

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

pkg/directfile/directfile.go

+18
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"fmt"
55
"io"
66
"os"
7+
8+
"github.com/chia-network/go-modules/pkg/slogs"
79
)
810

911
// DirectFile is a wrapper around os.File that ensures aligned reads for O_DIRECT support,
@@ -48,6 +50,11 @@ func (df *DirectFile) Read(p []byte) (n int, err error) {
4850
return 0, fmt.Errorf("failed to create aligned buffer: %w", err)
4951
}
5052

53+
req := len(p)
54+
act := len(buf)
55+
percent := act/req * 100
56+
safeLog("Read into aligned buffer", "requested", req, "reading", act, "percentage of requested", percent)
57+
5158
// Perform the read
5259
n, err = df.file.Read(buf)
5360
if n > len(p) {
@@ -77,6 +84,11 @@ func (df *DirectFile) ReadAt(p []byte, off int64) (n int, err error) {
7784
return 0, fmt.Errorf("failed to create aligned buffer: %w", err)
7885
}
7986

87+
req := len(p)
88+
act := len(buf)
89+
percent := act/req * 100
90+
safeLog("ReadAt into aligned buffer", "requested", req, "reading", act, "percentage of requested", percent)
91+
8092
// Perform the read at the aligned offset
8193
n, err = df.file.ReadAt(buf, int64(alignedOffset))
8294
if err != nil && err != io.EOF {
@@ -95,3 +107,9 @@ func (df *DirectFile) ReadAt(p []byte, off int64) (n int, err error) {
95107
copy(p, buf[offsetDiff:offsetDiff+copyLen])
96108
return copyLen, nil
97109
}
110+
111+
func safeLog(msg string, args ...any) {
112+
if slogs.Logr.Logger != nil {
113+
slogs.Logr.Debug(msg, args...)
114+
}
115+
}

0 commit comments

Comments
 (0)